《Java 编程思想》-第5章 初始化和清理 笔记
来源:互联网 发布:java ftp多线程 编辑:程序博客网 时间:2024/05/16 14:51
第5章 初始化与清理
一,默认构造器
默认构造器是没有形式参数,如果你写的类没有构造器,则编译器会自动帮你创建一个默认构造器。但是,如果已经定义一个构造器(无论是否有参数),编译器就不会帮你自动创建默认构造器。
二,方法重载
(一),区别重载的方法是根据参数列表的不同,参数的类型不同,参数的顺序不同(会使代码难以维护)。
(二),如果传入的数据类型小于方法中声明的形式参数类型,传入的数据类型会被提升,char类型略有不同,如果无法找到恰好接受char参数的方法,就会把char提升为int。反之,就会对传入数据类型进行窄化转化。
三,this关键字
(一), this可以认为是“当前对象”的引用,用法与其他对象的引用并无不同。如果在方法内调用同一个类的另一个方法时,可以直接调用,
(二),this可以调用一个构造器,但却不能在同一个构造器中调用两个构造器,并且要放在构造器最起始处,此外,不能在其他方法内调用构造器。
四,清理
(一),说到Java的垃圾回收前,要说说Java中的堆和堆栈的区别:
栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。
1,栈(stack):是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量。在java中,所有基本类型和引用类型都在栈中存储,栈中数据的生存空间一般在当前scopes内(就是由{…}括起来的区域)。
2,堆(heap):是一个可动态申请的内存空间(其记录空闲内存空间的链表由操作系统维护),C中的malloc语句所产生的内存空间就在堆中,在java中,所有使用new xxx()构造出来的对象都在堆中存储,当垃圾回收器检测到某对象未被引用,则自动销毁该对象,所以,理论上说java中对象的生存空间是没有限制的,只要有引用类型指向它,则它就可以在任意地方被使用。
3,栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存储分配需要更多时间。
(二),垃圾回收机制详解
http://blog.csdn.net/zsuguangh/article/details/6429592
五,可变参数列表
代码:
public class Test4 { public static void f(int i,String...trailing) { System.out.print("require: "+i+" "); for(String s:trailing) { System.out.print(s+" "); } System.out.println(); } public static void main(String[] args) { f(1,"one"); f(2,"one","two"); f(0); }}
在重载时使用可变参数列表,要小心,会出现错误
public class Test4 { public static void test(String... args) { System.out.println(args.getClass()); for (String arg : args) { System.out.println(arg); } } public static void test(String arg, String... args) { System.out.println(arg); System.out.println("----------------"); for (String s : args) { System.out.println(s); } } public static void main(String[] args) { test(); test("aaa"); test("aaa", "bbb"); test("aaa", "bbb", "ccc"); }}
错误提示:The method test(String[]) is ambiguous for the type Test4,方法类型有歧义。
- 《Java 编程思想》-第5章 初始化和清理 笔记
- 《Java编程思想》--初始化和清理--第5章
- Java编程思想第5章:初始化与清理
- Java编程思想 第5章 初始化与清理
- Java编程思想学习笔记(四) 第5章 初始化与清理
- [学习笔记][Java编程思想]第5章:初始化与清理
- 《JAVA编程思想》笔记-初始化与清理
- JAVA编程思想笔记--初始化与清理
- 【Java】《Java编程思想》笔记-第五章 初始化与清理
- 《Java编程思想》(第二版)第4章:初始化和清理
- java编程思想学习笔记(5)--初始化与清理
- 《Java 编程思想》005 初始化和清理
- 《java编程思想》要点-第四章 初始化和清理
- 《java编程思想》第五章:初始化和清理
- Java编程思想笔记——第五章 初始化和清理
- 控制执行流程,初始化与清理-java编程思想-第4、5章
- 5初始化与清理-Java编程思想
- 五.初始化与清理——Java编程思想第4版学习笔记
- 芜湖县红杨镇兴塘村七甲吴简介(整理中待续)
- 通过命令行cl.exe编译Windows程序--预编译跟踪宏定义
- Xcode清理垃圾文件
- PyQt5的学习之路(六)
- 电路图上部分符号的含义
- 《Java 编程思想》-第5章 初始化和清理 笔记
- Android四大基本组件介绍与生命周期
- 8.1数组
- Elasticsearch 地理位置范围查询
- cf 8VC Venture Cup 2017 A
- ppp/pppd/chat关系及数据收发流程
- Eric Lippert推荐的C#书单
- 回车和换行的来历与区别
- 风险管理对你的项目到底有多重要?