被static修饰的静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量。
String类中toLowerCase()方法是将所有的英文字符串转为小写字母。
访问权限比较: public(类内、类外都可以) private(只能在类内使用) protected(在类内、继承的子类使用) 默认(包访问权限,只能在所属类的包)
public > protected > 同包(default) > private
mock对象:伪对象,在测试中利用mock对象来代替真实对象进行测试。
java的封装性:将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,通过该类提供的方法实现对内部信息的操作访问。
反射机制:在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性。
mock对象通过反射树,所以反射破坏了面向对象语言的封装特性。
Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;而采用UTF-8编码方式时,一个中文字符会占3个字节。
一个类文件中可以同时包含多个平行的类,但最多只能有一个类用public修饰,文件名需与该类名相同。
在同一个java文件中,可以有多个class类,但是只能有一个公共类——public class
-Xmx:最大堆大小 -Xms:初始堆大小 (最小内存值) -Xmn:年轻代大小 -XXsurvivorRatio:年轻代中Eden区和Survivor区的大小比值(年轻代中Survivor区有两块)
非静态方法,必须通过对象名去调用。
例如,class A{
static void method1(){}
void method2(){}
}
其中方法1可以直接用类名或对象名调用,eg——A.method1() 或者Math.max()等等,而方法2必须通过对象名调用,eg——A a = new A(); a.method2;
<<表示左移位;<<=是左移复制;>>表示带符号右移位;>>>表示无符号右移;>>>=表示无符号右移赋值
接口里的非静态方法没有方法体:interface A{ void print(); } print()方法没有方法体{}
接口里可以有静态方法,但是该静态方法必须要有方法体:interface A{ static print(){} }
| :不具备短路功能,会检查每一个条件,表达式中只要一个true 就整体返回true
|| :具备短路功能,一遇到true,就返回true;
&:不具备短路功能,会检查每一个条件,表达式中所有都为true才返回true
&& :具备短路功能,同上;