学习笔记(二)
2015-11-19 20:31
232 查看
第四章 控制执行流程
1、标签
Java里需要使用标签的唯一理由就是因为循环嵌套的存在,而且想从多层嵌套中break,comtinue。
第五章 初始化与清理
1、初始化
创建对象分配空间,调用构造器初始化。Java中,初始化和创建捆绑在一起,不能分离。
2、方法重载
同名,参数类型、个数不同。不建议根据返回值类型进行重载。
3、默认构造器
如果类中没有定义构造器,则编译器会自动帮你创建一个默认构造器(无参构造器)。
如果类中定义了构造器,无论那种类型,编译器都不会再构造默认构造器。
4、this关键字
<span style="font-family: Arial, Helvetica, sans-serif;">Class Demo{</span><pre name="code" class="html"> void add(int i){
}
在main()方法中调用
Demo demo1=new Demo();
Demo demo2=new Demo();
demo1.add(i);
demo2.add(i);
编译器的内部形式是:
add(demo1,1);
add(demo2,1); this关键字只能在方法内使用,表示对“调用方法的那个对象”的引用。
1)在构造器中调用构造器
class Flower{
int a,b,c;
Flower(int a,int b){
... }
Flower(int a,int b,int c){
this.Flower(a,b);
this.c=c;
}
} this只能调用一个构造器,不能调用两个。而且必须放在最上面。
2)static的含义
static方法就是没有this的方法。在static方法的内部不能调用非静态方法,反过来是可以的。
static的方法用途很想全局方法,但是Java禁止使用全局方法,但你在类中置入static方法就可以访问其他的static方法和static域。
5、清理
1)垃圾回收器只知道释放那些有new分配的内存。
2)对于特殊情况,Java允许在类中定义一个finalize()的方法。
原理是:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
3)对象可能不被垃圾回收;垃圾回收并不等于析构。垃圾回收只有内存有关。
6、垃圾回收的工作原理
1)其他系统
引用计数,当对象的引用计数值为0,就对其进行回收。
2)Java采用自“适应、停止-复制、标记-清扫”式垃圾回收器
停止-复制:先暂停程序的运行,将所有存活的对象从当前堆复制到另一个堆(引用修正),没有复制的就全是垃圾。并且新堆中,它们更加紧凑。
标记-清扫:在没有新的垃圾产生,则转换到这种模式。从堆栈和静态存储区出发,遍历所有引用,找出所有存活的对象,进行标记。未被标记的清扫。
7、成员初始化
1)变量定义的顺序决定了初始化的顺序
2)先静态对象,再非静态对象
8、数组初始化
如果创建的是一个非基本类型的数组,那么你就创建了一个引用数组,赋值给引用后,初始化才算结束。
9、枚举类型
1)枚举是个类
2)例子
public enum Spiciness{
NOT,MILD,MEDIUM,HOT,FLAMING
}
使用:
for(Spiciness s:Spiciness.values()){
s.ordinal();
}
第六章 访问权限控制
访问权限 类 包 子类 其他包
public ∨ ∨ ∨ ∨
protect ∨ ∨ ∨ ×
default ∨ ∨ × ×
private ∨ × × ×
1、标签
Java里需要使用标签的唯一理由就是因为循环嵌套的存在,而且想从多层嵌套中break,comtinue。
第五章 初始化与清理
1、初始化
创建对象分配空间,调用构造器初始化。Java中,初始化和创建捆绑在一起,不能分离。
2、方法重载
同名,参数类型、个数不同。不建议根据返回值类型进行重载。
3、默认构造器
如果类中没有定义构造器,则编译器会自动帮你创建一个默认构造器(无参构造器)。
如果类中定义了构造器,无论那种类型,编译器都不会再构造默认构造器。
4、this关键字
<span style="font-family: Arial, Helvetica, sans-serif;">Class Demo{</span><pre name="code" class="html"> void add(int i){
}
在main()方法中调用
Demo demo1=new Demo();
Demo demo2=new Demo();
demo1.add(i);
demo2.add(i);
编译器的内部形式是:
add(demo1,1);
add(demo2,1); this关键字只能在方法内使用,表示对“调用方法的那个对象”的引用。
1)在构造器中调用构造器
class Flower{
int a,b,c;
Flower(int a,int b){
... }
Flower(int a,int b,int c){
this.Flower(a,b);
this.c=c;
}
} this只能调用一个构造器,不能调用两个。而且必须放在最上面。
2)static的含义
static方法就是没有this的方法。在static方法的内部不能调用非静态方法,反过来是可以的。
static的方法用途很想全局方法,但是Java禁止使用全局方法,但你在类中置入static方法就可以访问其他的static方法和static域。
5、清理
1)垃圾回收器只知道释放那些有new分配的内存。
2)对于特殊情况,Java允许在类中定义一个finalize()的方法。
原理是:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
3)对象可能不被垃圾回收;垃圾回收并不等于析构。垃圾回收只有内存有关。
6、垃圾回收的工作原理
1)其他系统
引用计数,当对象的引用计数值为0,就对其进行回收。
2)Java采用自“适应、停止-复制、标记-清扫”式垃圾回收器
停止-复制:先暂停程序的运行,将所有存活的对象从当前堆复制到另一个堆(引用修正),没有复制的就全是垃圾。并且新堆中,它们更加紧凑。
标记-清扫:在没有新的垃圾产生,则转换到这种模式。从堆栈和静态存储区出发,遍历所有引用,找出所有存活的对象,进行标记。未被标记的清扫。
7、成员初始化
1)变量定义的顺序决定了初始化的顺序
2)先静态对象,再非静态对象
8、数组初始化
如果创建的是一个非基本类型的数组,那么你就创建了一个引用数组,赋值给引用后,初始化才算结束。
9、枚举类型
1)枚举是个类
2)例子
public enum Spiciness{
NOT,MILD,MEDIUM,HOT,FLAMING
}
使用:
for(Spiciness s:Spiciness.values()){
s.ordinal();
}
第六章 访问权限控制
访问权限 类 包 子类 其他包
public ∨ ∨ ∨ ∨
protect ∨ ∨ ∨ ×
default ∨ ∨ × ×
private ∨ × × ×
相关文章推荐
- 学习笔记(二)
- 内核态和用户态通讯知识收集
- Android项目-PopupWndow与应用的启动与卸载
- angularjs 验证码60秒倒计时
- XtraReport 实例化 打印
- Emmet插件使用方法总结
- Android项目-快捷方式
- 百度地图工具类封装(包括定位,附近、城市、范围poi检索,反地理编码)
- ”在禁用UAC时,无法激活此应用“问题
- Android进阶-如何避免频繁修改UI代码
- Java 去除字符串中的标点
- RollPitchYaw傻傻分不清
- VMware安装windows XP OS 虚拟机时常见的问题
- UI基础_UITableView
- openfire插件编译
- Android进阶-分页与分批及XUtils的注解来代替findViewById
- linux shell中find的使用
- Android组件之ContentProvider(内容提供者)
- 【Leetcode】Insertion Sort List
- Android进阶-子线程中刷新UI的讨论