黑马程序员技术交流社区

标题: Java学习笔记--基础语法 [打印本页]

作者: 沐子松/kf    时间: 2014-6-13 11:43
标题: Java学习笔记--基础语法

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