Java编程思想 五六章学习总结
2018-02-08 18:15
204 查看
初始化与清理
在含有方法重载时。如果方法中传入的实际参数类型小于形式参数类型,实际数据类型就会提升,char类型比较特殊,如果找不到参数匹配的方法,就会将char提升为int类型。但是这种事情方法没有重载的时候其实也会发生。如果实际参数类型比较大,就对实际参数进行窄化转换。返回值重载区分方法
this关键字。在必须提出this的时候再提出this关键字,不必要的话没必要提出。例如在需要返回当前对象的引用的时候。return this;
清理时。记住三点:对象可能不被垃圾回收,垃圾回收并不等于“析构”,垃圾回收只与内存有关。
关于清理。Java虚拟机在没有面临内存耗尽的情形时,它是不会浪费时间去执行垃圾回收以回复内存的。
在类里定义一个对象引用时,如果不将其初始化,则会得到一个特殊值null
静态初始化只有在必要时刻才会进行,如果不创建对象或者调用静态变量,那么静态变量永远不会初始化。
初始化的顺序是:静态对象、非静态对象。
数组的特殊初始化。int[] a={1,2}。花括号就等同于new的空间分配。
但是如果不确定数组的大小,就需要动态的创建数组,就可以使用new来动态的创建数组了。
int a; Random rand=new Random(47); a=new int[ran.nextInt(20)];
可以创建一个String对象数组,作为另一个main()函数的参数,比如调用class Other的main函数,可以使用Other.main(new String[]{“aa”,”bb”,”cc”});而在Other的main的函数里面调用args。
for(String s:args) System.out.print(s+"");
可变参数列表。由于所有的的类都间接直接的继承Object,因此可以使用Object去作为参数列表的类型。在JavaSE5中可以使用如下参数类型
static void printArray(Object... args) //定义 printArray(3,4.7F,11.11); //使用 printArray("one","two","three"); //使用
JavaSE5中的enum关键字。
总结
针对C语言的无法正确的初始化导致的错误,Java的构造器能够保证正确的初始化和清理。针对C++中的析构,Java使用了垃圾回收器去自动回收内存。
六章-访问权限控制
包的概念,就是一种访问的权限控制,防止出现名称冲突的情况,而你的操作区域就是包内。Java的访问权限修饰词中,默认的访问权限为包访问权限。protected为继承访问权限。
访问权限的控制常称为 具体实现的隐藏,把数据和方法包装进类中,常共同称之为封装。而这种隐藏在多线程等工作中是非常重要的,因此只要是不必要给外界访问的数据和方法都应该去使用private去隐藏起来,防止非法的访问行为。
而这样访问权限的控制另一个重要的应用是能够让类设计者更改类内部的工作方式,而不必担心对客户端程序员产生重大的影响。这个性质在重构工作的时候非常重要。
相关文章推荐
- JAVA编程思想学习总结:第十一章持有对象
- JAVA编程思想学习总结:第21章第4节终结与协作
- JAVA编程思想学习总结:第五章——初始化与清理
- JAVA编程思想学习总结:第9章接口
- Java编程思想 七八章学习总结
- JAVA编程思想学习总结:第七章——复用类
- JAVA编程思想学习总结:第21章第3节共享受限资源
- Java编程思想 一二章学习总结
- Java编程思想——第六章 访问权限控制 学习总结
- JAVA编程思想学习总结:第八章——多态
- JAVA编程思想学习总结:第十章接口内部类
- JAVA编程思想学习总结:第十三章字符串
- JAVA编程思想学习总结:第21章第1-2节基本的线程机制
- JAVA编程思想学习总结:第十四章类型信息
- java编程思想学习笔记 泛化的class引用
- Java Socket 编程学习(5) TCP UDP总结
- Java:Socket编程学习总结
- Java编程思想学习一——基础概念
- Java 编程思想(第四版)学习笔记(7)复用类
- Go学习笔记 - 关于Java、Python、Go编程思想的不同