Java来源
Java是建立在C语言之上的,在最底层,数据是通过使用操作符来操作的。
别名问题
在Java中,将一个对象赋值给另一个对象,实际是将“引用”从一个地方复制到另一个地方
你不知道的Random类
要生成随机数字,程序会首先创建一个Random类的对象。如果在创建过程中没有传递任何参数,那么Java就会将当前时间作为随机数生成器的种子,并由此在程序每一次执行时都产生不同的输出。但是通过在创建Random对象时提供种子(用于随机数生成器的初始化值,随机数生成器对于特定的种子值总是产生相同的随机数序列),就可以在每次程序执行时都生成相同的随机数。
关系操作符
比较两个对象的实际内容是否相同,必须使用所有对象都适用的特殊方法equals();但是equals默认行为是比较引用。自定义类型要想使用equals必须覆盖equals方法。Java中类库基本都实现了equals方法,以便比较对象内容。
逻辑运算符
当使用逻辑运算符时,会遇到“短路”现象。即一旦明确无误的确定整个表达式的值,就不在计算表达式余下的部分了
直接常量
直接常量后面的字符标识了它的类型。
类型转换操作符
在适当的时候,Java会将一种数据类型自动转换成另一种。
窄化转换-将能容纳更多信息的数据类型转换成无法容纳那么多信息的类型,有可能面临信息丢失的危险。此时,编译器会强制我们进行类型转换。
扩展转换-补习显示地进行类型转换,因为新类型肯定能容纳原来类型的信息,不会造成任何信息的丢失。
截尾和舍入
在执行窄化转换时,总是对该数字执行结尾。如果想要得到舍入的结果,需要使用Math.round();
提升
通常,表达式中出现的最大数据类型决定了表达式最终结果的数据类型。
控制执行流程
zaiJava中,涉及流程的关键字包括if-else、while、do-while、for、return、break以及选择语句switch。
Math类库中的静态random()方法,产生0和1之间(包括0,但不包括1)的一个double值。
逗号操作符
Java里唯一用到逗号操作符的地方就是for循环的控制表达式。
标签
标签是后面跟有冒号的标识符,就像下面这样:
label1:
在Java中标签起作用的唯一的地方刚好是在迭代语句之前。设置标签的理由是:我们希望在其中嵌套另一个迭代或者一个开关。