java编程思想
1、==和!= 比较的是对象的引用,引用存在于栈内,保存的是对象的地址;对象存在于堆内。
2、equals默认比较的也是引用,即对象的地址,若要比较对象实际的值,需要重写Object的equals方法;
java中如String,Integer等类已经重写了equals方法,因此比较的不再是对象在内存的地址,而是对象实际包含的值。
3、在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型。
从Java5开始,java中引入了枚举类型,即enum类型。
从Java7开始,exper还可以是String类型。
4、任何基本数据类型都可以转换成别的基本数据类型,boolean除外。
如double d=1,float f=(float)1.23,short s=(short)34545454;
5、java基本数据类型变量存的是值,并且在栈中,因此更加高效;
表达式中出现的最大数据类型,就是表达式最终结果的数据类型。
6、this关键字只能在方法内部使用,表示对“调用该方法的当前对象”的引用。
7、进制:int a=031; //8进制,以数字0开始。
十六进制:int b=0x1B; //16进制,以0x开始。
8、System.gc()函数的作用只是提醒虚拟机:程序员希望进行一次垃圾回收。
但是它不能保证垃圾回收一定会进行,而且具体什么时候进行是取决于具体的虚拟机的,不同的虚拟机有不同的对策。
9、初始化的过程:
1>首次使用new,或者类的静态块、静态方法首次被访问时,虚拟机会去查找类路径,定位该类的.class文件;
2>载入class文件(创建一个Class对象),执行静态初始化,包括静态代码块,静态域等,并且只进行一次;
注:若该类有基类,则先执行基类的静态初始化,再执行子类的
3>使用new时,在堆上为对象分配内存,并将内存空间初始化为二进制零,
即对象的基本数据类型执行默认初始化(数字类型置为0,布尔型为false),引用类型被置为null;
4>按照声明顺序执行字段定义处的初始化
5>执行构造器;
注:若该类有基类,先执行基类的4>,5>,再执行子类的4>,5>;
10、可变参数列表获得的其实是一个数组,平时多练习使用,如下:
public void print(String... str){
for(String s:str)
System.out.println(s);
}
11、import static静态导入的使用
12、接口中的属性默认是static final 的
13、状态模式P165
14、策略模式P175
创建一个能够根据所传递参数对象的不同而具有不同行为的方法
15、适配器模式P177
16、工厂方法模式P186
17、使用接口的好处:能够向上转型为基类型,使得方法调用更加灵活
18、迭代器模式P192
作者:不安于现状的码农
来源链接:https://www.cnblogs.com/paoqi/p/8942483.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。