暑假过了一大半,刚结束实训回来休息了一个多星期才开始看书学习,争取在开学前把三本砖头书能啃多一点是一点。 由于没把编程思想带回来,于是买了本Java核心技术看看,刚开始看确实有不少收获,虽然说做过项目,但是对于一些基础只是或者细节还是不知道的,借此假期也好好研究一下。
1.Java语言的发展状况 首先看看Java的发展
版本年份语言新特性类与接口的数量1.01996语言本身2111.11997内部类4771.21998strictfp修饰符15241.32000无18401.42002断言27235.02004泛型类、“for each”循环、可变元参数、自动装箱、元数据、枚举、静态导入327962006无379372011基于字符串的switch、钻石操作符、二进制字面量、异常处理改进402482014lambda表达式、包含默认方法的接口、流和日期/时间库4240有些同学面试时被问到jdk7.0和8.0的区别,看一下这个发展的状况还是蛮有用的,我认为区别应该就是语言新增加的特性了。
2.数据类型 Java有8种数据类型,其中4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。 需要注意的是Java为了保证在所有机器上都能得到相同的结果,规定了各种数据类型的取值范围必须固定。 如整型的取值范围:
类型存储需求取值范围int4字节-2147483648~2147483647short2字节-32768~32767long8字节-9223372036854775808~9223372036854775807byte1字节-128~127浮点类型的取值范围:
类型存储需求取值范围float4字节大约正负3.40282347E+38F(有效位数为6-7位)short2字节大约正负1.79769313486231570E+308(有效位数为15位)float类型的数值有一个后缀F或者f,如1.23f,没有后缀的话就默认为double。 有三种特殊的浮点数值:
正无穷大负无穷大NaN(不是一个数字,Not a Number)这三种数值是用于表示溢出和出错情况的,例如一个正浮点数除以0的结果为正无穷大(Infinity),而负浮点数除以0的结果为负无穷大(-Infinity)。计算0.0/0或者负数的平方根结果为NaN。 正无穷大通过Double或FLoat的POSITIVE_INFINITY表示;正无穷大通过Double或FLoat的NEGATIVE_INFINITY表示;正无穷大通过Double或FLoat的NaN表示。需要注意的是所有正无穷大数值都是一样的,所有负无穷大数值都是一样的,但是NaN不与任何数值相等,即便是自身也不相等,要判断一个特定值是否是NaN只能用Double.isNaN方法。下面是代码示例: 正无穷大:
double x=1.0/0; double y=3.0/0; System.out.println(x); System.out.println(x==y);结果: 负无穷大:
double x=-1.0/0; double y=-3.0/0; System.out.println(x); System.out.println(x==y);结果: NaN:
double x=0.0/0; double y=0.0/0; System.out.println(x); System.out.println(x==y); System.out.println(x==x); System.out.println(Double.isNaN(x));结果: 可以看出最后一段代码的x是NaN但是x==x也是false。 boolean类型有两个值:false和true,用来判定逻辑条件的,整型值和布尔值之间不能进行相互转换。所以对于if(x=0)在Java中是不能通过编译的,但是在C++中是可以的并且这个判断结果总是为false。
3.关键字final 在Java中,利用关键字final指示常量,例如:
final double PI = 3.1415926;关键字final表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上常量名使用全大写。我尝试过对PI再次赋值,发现会提示语法错误并建议我把final去掉,即把PI不设置为final。
4.运算符 算数运算符+、-、*、/,即加、减、乘、除,用来进行算数运算,当参加/运算的两个操作数都是整数时,表示整数除法,否则,表示浮点除法,这也解释了为什么浮点数除以0没有报错,而整数除0会报错,因为浮点数除以0会被处理成除以0.0,所以会得到正无穷或者负无穷,所以整数除以0.0也会得到无穷大,查了资料,大家都说因为0.0是浮点数,并不精确,所以只是一个非常接近0的数。
今天就先写到这里了,晚安!