第三章 操作符
1.Java操作符
操作符“=”、“==”和“!=”可以操作所有的对象。
2.赋值
对基本数据类型的赋值很简单,基本数据类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将一个地方的内容复制给另一个地方。
基本类型存储了实际的数值, 且并非指向一个对象的引用, 所以再赋值的时候, 直接将一个地方的内容复制到了另一个地方,这就是所谓的基本类型是值传递,而对象,String等是地址传递。
3.random类
Random random = new Random();//不带种子数
int randomNumber1= random.nextInt(100);//0–100 ,随机数范围
Random random1 = new Random(100);//带种子数的,但每次产生的随机数序列都是一样的,是伪随机数 。
4.递增递减
++i:先运算, 在生成值
i++: 先生成值, 在运算.
和C++一样,不过多赘述。
5.测试对象的等价性
“==”和 equals()的区别:
==只能比较相同类型,否则编译会出错而equals()则可以正常比较,因为equals()
方法是所有对象的特殊方法(继承自Object
类),而且equals()
方法默认行为是比较引用。
总的来说:基本类型直接使用 == 和 != 判断,所有对象可以用equals()来比较两个对象的实际内容是否相同
6.短路:
&&如果有一个flase后面就不会计算,同样的||有一个true后面也不会计算。
7.直接常量:
有时直接常量的类型是模棱两可的,这就需要与直接常量相关的某些字符来额外增加一些信息以“指导”编译器,使其能够准确地知道要生成什么样的类型。如果编译器能够正确地识别类型,就不必在数值后增加字符。
long后先面L(小写也可以),float后面写F(小写也可以),double后面写D(小写也可以),十六进制0X(0x)为前缀,八进制用0以及后续的0~7数字表示。
在C、C++或者Java中,二进制数没有直接常量表示方法。但是,在使用十六进制和进制的记数法时,以二进制形式显示结果将非常有用。通过使用Integer和Long类的静态方法toBinaryString()可以很容易地实现这一点。注意,如果将比较小的类型传递给Integer.toBinaryString()方法,则该类型将自动转换为int。
8.指数计数法:
指数计数法。在C、C++以及Java中,e
代表“10的幂次”,与科学与工程领域中“e”代表自然对数的基数
9.类型转换:
java允许我们把任何基本数据类型转换成别的基本数据类型,除了布尔型外,布尔型不允许进行任何类型的转换处理。
将float和double转型为整型值时,总是对该数字执行截尾。
如果想要得到舍入的结果,就需要使用java.lang.Math
中的round()
方法。
10.提升:
表达式中出现的最大的数据类型决定了表达式最终结果的数据类型。如果一个float值与一个double值相乘,结果就是double,如果将一个int和一个long值相加,则结果就为long。
11.Java没有sizeof():
所有数据类型在所有机器中的大小是相同的。我们不必考虑移植问题——它已经被设计在语言中了。
12.溢出:
如果对两个足够大的int值执行乘法运算,结果就会溢出。编译器不会发出错误或警告信息,运行时也不会出现异常。
第四章 loading....