JAVA基础讲解
JAVA编译器
字节码(.class文件)
没有在内存中 解释时放入内存中
Windows
UNIX
其他操作系统
源文件
必须指明所占内存的大小
字节码(.class)
数据类型
数据类型
基本数据类型
整型 浮点型 字符型 布尔型
复合数据类型
数组 类 接口 字符串
基本数据类型
• JAVA中的数据类型是按在内存中所站空间大 小区分的.
}
课后练习
int x=3; int y=20; int m=5; int z=y%8/3*++x; boolean b=x>3 || y--<=19 && ++m>6; System.out.println(z); System.out.println(m); System.out.println(y); System.out.println (b);
• ++ -自加1和自减1运算符 x++是先运算在加1 ++x是先加1在运算.
• 例:
int x=3; int y=x+++4; int z=++x+5; System.out.println(y); System.out.println(z);
• 例:
int x=3; int y=(x++)+x; int z=++x+5+x++; int m= (x--)+(++y)+z+(++y)-(--x); System.out.println(y); System.out.println(z);
Class A{ void a(){} void b(){ a(); }
}
• 方法的调用结果就是方法中的语句的执行 结果.
int aa(){ return 3;
}
Void bb(){ System.out.println(“***”);
}
aa()相当于3
bb()相当于直接输出***
练习:方法的调用,实现老师讲课
基础数据类型之间的转换
一、自动类型转换(隐式转换): • boolean 不可以转换成其他类型 • 实数默认为double 整数默认为int • 在混合运算时容量小的自动转换成容量大的.如float
f=3+4.0f; byte,char,short<int<long<float<double byte,char,short三者之间并列不相互转换,在运算时首先转换 成int • 多种数据类型运算时,先把所有数据转换成最大的
• class LaoShi{//老师类
•
ZhiShi zs;
•
ZhiShi jiangke(){
•
return zs;
•
}
•}
• class ZhiShi{//知识类
•
String name;
•
String neirong;
•}
• class XueSheng{//学生类
•
void ting(ZhiShi zs){
《运算符列表.docx.doc》
• 赋值运算符:= A=3+2-1;把右边表达式的结果赋给左边的变量 符合赋值运算符:以前有优化效率高 x+=2 相当于x=x+2 X*=8 相当于x=x*8 复合赋值运算符会自动强制转换类型 普通赋值运算符不会
int x=3; x=x-32.0;-------错误 x-=3单元 • 本质:内存中的一小块区域 • 变量的基本要素:名称,类型,作用域 1、名称:标识该变量的 2、类型:表示内存分配的大小 3、作用域:表示变量的有效区间-----一会讲
变量的使用步骤
• 变量使用时必须先声明 语法: 类型 变量名;
例:int x;
xy
值
值
float y; int m,n,z;同种类型的变量可以一起声明
• 变量在使用前必须得先初始化 初始化:第一次往变量里放值的过程。
int x;
x=66;
• 生明和初始化可以同时进行:int x=66;
• 变量的使用:往变量里放值 从变量里获得值
变量的分类
class A{
类里
int x=44;
void a(){ 方法里
int x=66;
}
方法的参数
void b(int y){
二、强制数据类型转换(显示转换)
把容量较大的数据类型转换成容量较小的数据类型 语法:(类型)数值 如:(int)4.5 1、如果数值过大超出范围,强制转换后会产生益出 2、double强制转换成float时,如果过大产生无限益出
(int)false (float)”asdfasdf”
下面标识符哪些是合法的
• 算术运算符 + - * / %
2、/ 当两个数是整数时,将舍弃小数部分,直接取整。 当两个操作数中有一个为小数时,结果为小数
int z=8/3; double x=8/3.0; double y=6.0/3.3; System.out.println(z); System.out.println(x); System.out.println(y);
false false true true false false
• 练习: true && false 4<5 && 3>2 true && 44<22 4>2 || 5<3 4<2 && true || 33<3 && false 4+5>2 && 8<9 || 3+6>3
• && || 短路运算符 && 短路与 当&&前面表达式为false时,
例: class A{
int x=3; void b(){
int x=4; x=9; System.out.println(x); } void c(){ System.out.println(x); } }
• 最终变量 用final修饰的变量 在程序运行的过程中其值不可变。 final int X=66;
public int jia(){ return 3; } 当方法有返回值类型时,必须写return
当方法没有返回值类型时,一定不能写return
遇到return 方法将终止运行,后面的语句不会被执 行到。在JAVA中return后不可以出现任何语句
方法的使用
• 方法被创建后,仅仅是段代码,电脑是不 会执行方法,只有程序员调用方法时,方 法内部的语句才会被执行到.
无论后面表达式为什么,结果都为false, 所以此时后面表达式不被执行,被短路
|| 短路或 当||前面表达式为true时, 无论后面表达式为什么,结果都为true,
• int x=4; boolean y=x++>4 && ++x<9; System.out.println(x);
• int x=4; boolean y= ++x>x++-3 || x++>4; System.out.println(x);
•
System.out.println();
•
System.out.println (zs.neirong);
•
}
•}
class Main{//主类 public static void main(String args[]){ ZhiShi zs1=new ZhiShi(); ="JAVA"; zs1.neirong="桌面级开发!!!!"; LaoShi ls1=new LaoShi(); ls1.zs=zs1; XueSheng xs1=new XueSheng(); xs1.ting(ls1.jiangke()); }
&& 两个操作数同时为真才为真,否则为假 || 两个操作数,同时为假才为假,否则为真 !真的非为假,假的非为真
x
y
!x
!y x && y x || y
true true false false true true
true false false true false true
false true true false false true
}
标识符与关键字
标识符:程序员对程序中各种元素加以命名时使用的记 号.(凡是自己起名字的地方). 规则: 1 必须以字母,下划线(_),美元符($)开头,后面跟字母,下 划线,美元符或数字. 2 区分大小写 3 不可以跟关键字或保留字相同. 4支持中文变量名,但不建议使用.
原则:见名知意.
如:helloWord---初学者程序 abcdef------不明白
• int x=4; boolean
y=4>x++-3+x++*8%2 && x-->2+x-- && false System.out.println(y);
public static void main(String args[]){ int x; int y=x+2; System.out.println(y);
class A{ public static void main(String args[]){ B b=new B(); b.bb(); b.aa(); }