1.5.2 编译
Jdk 1.6以后,不再向下兼容,jdk1.6编译器生成的字节码只能在安装了1.6或高于JRE1.6的java平台环境中运行。
1.6 java反编译
通过JDK提供的反编译器 javap.exe,可以将编译器得到的字节码文件还原为源文件
例:javap Hello.class
2.1标识符与关键字
1、标识符由字母、下划线、美元符号、数字组成,长度不受限制
2、第一个字符不能是 数字
2.2.3
1、Char型变量,分配2个字节内存,占16位,最高位不是符号位,没有负数的char。Char型变量的取值范围是0~65535
2、Char x = ‘a’; //内存中存储的是97,97是字符a在Unicode表中的排序位置
Char x = 97; //上下两个式子是同样的意思
3、在java中,可以用字符在Unicode表中排序位置的十六进制转义来表示该字符,一般形式‘\u****’。
例如:‘\u0041表示字符A’
4、如果需要知道一个字符在Unicode表中的顺序位置,可以使用int类型转换
例如:(int)‘A’;
如果需要知道一个0~65535之间数字所代表Unicode表中相对应位置上的字符,可以使用字符类型转换。
例如:(char)65;
2.2.4
Float型
使用float型修饰的时候,必须有后缀f或F。
例如:float x = 22.76f;
对于float类型变量,分配4个字节内存,占32位,8位有效数字
例如:float x = 12345.67891011f; //真正有效的是8位数字,12345.678
Double型
使用double型修饰的时候,可以有d或D后缀,但允许省略该后缀。
对于double类型变量,分配8个字节内存,占64位,16位有效数字。
2.4.1 输入
Import java.util.Scanner;
Scanner reader = new Scanner(System.in);
Double x = reader.nextDouble(); //nextDouble()仅只能接受double类型的,nextLine可以接受String类型的
2.4.2 输出
System.out.println(); //区别换行不换行
System.out.print();
注:System.out.println(“你好,
很高兴认识你”); //输出字符串常量时,不可以出现“回车”。
2.5.1 数组
Java中不允许在 声明 数组中的方括号内指定数组元素的个数。
Int a[12]; //都是错误
Int [12]a;
声明和创建数组一起完成
数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数];
数组是引用类型变量,数组名存放着数组的首元素的地址,称作 数组的引用。
2.2.5 数组的初始化
创建数组后,系统会给数组的每个元素一个默认的值,如float型是0.0。
2.2.6 数组的引用
1、数组引用的输出
int[] a ={1,2,3,4};
System.out.println(“数组a的引用=”+a)
2、对于char型数组a,System.out.println(a)不会输出数组a的引用二是输出数组a的全部元素的值。
例如: char[] a = {‘中’,‘国’,’科’,’大’};
System.out.println(a);
输出结果:中国科大
如果想输出char型数组的引用,必须让数组a和字符串做并值运算。
System.out.println(“”+a);
3.1.7 位运算符
逻辑运算符 && || !
其中,&& ||称作短路逻辑运算符,当op1是false时,&&运算符在运算时不再去计算op2的值,直接得出op1&&op2的结果是false
当op1是true时,||运算符在运算时不再去计算op2的值,直接得出op1||op2的结果是true
位运算符 & | ~(非) ^(异或)
注:与逻辑运算符不同的是,位运算符要计算完op1、op2的值后再给出运算的结果
((y=1)==0)&&((x=6)==6) //x的值仍然是1
((y=1)==0)&((x=6)==6)) //x的值将是6
3.1.8 instanceof运算符
Instanceof是一个二元运算符,左面的操作元是一个对象,右边是一个类。当左边的对象是
右边的类或子类创建的对象时,该运算符的结果是true,否则是false
3.1.9 运算符综述(优先级)
1、在编写程序的时候尽量使用括号()运算符号来实现想要的运算次序
2、当运算符拥有并列的相同级别时,运算符的结合性决定先后顺序
如:加减的结合性是从左到右,8-5+3等于(8-5)+3
逻辑否!的结合性是从右到左,!!x相当于!(!x)