1.基础数据类型--四类八种
整数:byte,hort,int,long
浮点型:float,double
逻辑型:boolean
字符型:char
Ps: String不属于四类八种
2.数据类型的转换
实数类型默认:int
浮点类型默认:double
byte,short,char->int->long->float->double
可以直接将int类型赋值给byte,short,char只要不超过范围
例如:byte = 128(错误)
byte,short,char之间不会互相装换,
Ps:这三者在计算时自动转换成int
例如:
byte a = 1;byte b = 2;
byte c = (byte)(a + b);
低类型->高类型:隐式转换
高类型->低类型:需要强制转换
char a = 20--可以
byte a = 20--可以
int b = 20;
char a = (char)b--必须强制类型转换
3.运算符
异或^:相异为true,相同为false
逻辑与&:前后均要判断
短路与&&:前面条件可以判定全式后面就不用判断
4.-8在内存的表示
(1)8 在内存表示 :0000 1000
(2)取反: 1111 0111
(3)+1 1111 1000 --存储表示
+8 内存表示:0000 1000 存储表示:0000 1000
-8 内存表示:负数没有内存表示,只有存储表示:从+8的内存表示取反+1得到 1111 1000
事例2:
int i = 257 //存储表示:0000 0000--- 0000 0000---0000 0001---0000 0001
byte b = (byte)i //因为byte类型是1个字节,8位,所以从int类型强转时,要把多余的位数去掉 //b的内存表示:0000 0001
转换存储表示,符号位是0,所以是正数
所以最后 b的值是 1
int i =- 257 //存储表示:从257 转换过来 1111 1111---1111 1111---1111 1110---1111 1111
byte b = (byte)i //去掉多余位数 1111 1111
转换存储表示,符号位是1,是负数,所以转换成 1000 0001
最后b是-1
总结:强制转换时,存储表示去掉多余位数后的二进制码,是内存表示,需要看符号位,如果是1,说明是负数,需要转换
5.任意字符异或两次还原源文
源文:0101
密钥:1111
加密:0101 ^1111 = 1010
解密:1010 ^1111 = 0101
6.int[][]这里的int指定的是第二维数组的类型,因为第一维数组里存储的都是二维数组的首地址。
7.
javac -d d:\a Hello.java 将编译后的class文件存在d:\a目录下
java -classpath d:\a Hello.java 执行指定目录下的class文件
javadoc -d d:\a Hello.java 在指定目录下生成帮助文档,文档注释只能注释类和方法
8.Java编译器把源代码编译成.class文件,再由虚拟机解释成机器码
9.JDK的结构
JDK包含1.工具包,编译器等exe文件 2.JRE
JRE包含1.java类库和本地程序 2.JVM
10.在100次的for循环里 int i,由于编译器的优化,内存里只有一个i,不会造成冗余,可是如果是new的话就有100个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |