一、几乎全部的操做符都只能操做“基本类型”。例外的操做符是“=”,“==”,“!=”,这些操做符能操做全部的对象,除此以外,String类支持“+”和“+=”。java
一、最简单的规则是先乘除,后加减dom
二、用括号明确规定计算顺序性能
一、右值能够是任何常数,变量或者表达式(只要它能生成一个值就行)。但左值必须是一个明确的、已命名的变量。测试
二、别名现象大数据
class Tank{ int level; } public static void main (string[] args){ Tank t1 = new Tank(); Tank t2= new Tank(); t1.level = 9; t2.level = 47; print(t1.level);//9 print(t2.level);//47 t1=t2; print(t1.level);//47 print(t2.level);//47 t1.level=27; print(t1.level);//27 print(t2.level);//27 }
避免以上问题能够用:t1.level =t2.level ;code
3.4.1 方法调用中的别名问题对象
将一个对象传递给方法时,也会产生别名问题:字符串
class Letter { char c; } public class PassObject { static void f(Letter y) { y.c = 'z'; } public static void main(String[] args) { Letter x = new Letter(); x.c = 'a'; print("1: x.c: " + x.c);//x.c: a f(x); print("2: x.c: " + x.c);//x.c: z } }
一、整数除法直接去掉结果的小数位,而不是四舍五入的圆整结果。编译器
二、(1)Random类的对象。若是在建立过程当中没有传递任何参数,那么java就会将当前时间做为随机数生成器的种子,并由此在程序每一次执行时都产生不一样的输出。随机数生成器对于特定的种子值老是产生相同的随机数序列。string
(2)经过Random类的对象,程序可生成许多不一样类型的随机数,可调用如下方法: nextInt(),nextFloat(),nextLong(),nextDouble()
3.5.1一元加、减操做符
一、一元加好惟一地做用仅仅是将较小类型的操做数提高为int
3.7.1测试对象的等价性
一、必须使用全部对象都适用的特殊方法equals()方法比较两个对象的实际内容是否相同。但这个方法不适用于“基本类型”,基本类型直接使用==和!=便可。 (1)
public class EqualsMethod { public static void main(String[] args) { Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1.equals(n2)); } } /* Output: true
(2)
class Value { int i; } public class EqualsMethod2 { public static void main(String[] args) { Value v1 = new Value(); Value v2 = new Value(); v1.i = v2.i = 100; System.out.println(v1.equals(v2)); } } /* Output: false
(3)以上的结果是由于equals()默认的行为是比较引用。因此除非在本身的新类覆盖equals()方法,不然不可能表现出咱们但愿的行为。
一、可将整数类型替换成布尔类型之外的其余任何基本数据类型。
3.8.1短路
一、若是全部的逻辑表达式都有一部分没必要计算,那将得到潜在的性能提高。
3.9.1指数计数法
编译器一般会将指数做为双精度数处理。
一、按位操做:因为位是很是“小”的,因此按位操做符仅使用了一个字符。
二、&=,|=,|=都是合法的
三、按位操做符具备与逻辑操做符相同的效果,只是他们不会中途“短路”
一、移位操做符只可用来处理整数类型。
3.15.1截尾和舍入
一、将float和double转型为转型值时,老是对该数字执行截尾。若是想要获得舍入的结果,就须要使用java.lang.Math中的round()方法。
3.15.2提高 一、表达式中出现的最大数据类型决定了表达式最终结果的数据类型。若是将一个float值与一个double值相乘,结果就是double。
一、由于全部数据类型在全部机器中的大小都是相通的。
一、若是两个够大的int值执行乘法运算,结果就会溢出。
二、除boolean之外,任何一种基本类型均可以经过类型转换变为其余基本类型。