java编程思想笔记

1.当一个基本数据类型作为类的成员变量时, 如果没有赋予初始化值,java会给它一个默认值  boolean false   char '\uoooo'(null)    byte (byte)0    short (short)0     int 0    long 0L     float 0.0f      double 0.0d

2.String类支持+=操作

3.构造器中只能用this(args...)调用一次其他构造器

4.static方法内部不能调用非static方法(如果将一个对象引用传入static方法,可以通过引用调用非静态方法,和非静态成员),非static方法内可以调用非静态方法;

5.垃圾回收只与内存有关(使用垃圾回收器的唯一原因是为了回收程序不再使用的内存)

6.finalize()方法的使用场景是再特殊情况下创建了特殊对象的时候释放内存空间(特殊情况是指通过非Java的手段创建的对象,例如Java中调用本地方法,本地方法可能是支持c和c++,也可能是其他语言来分配存储空间,除非调用free()函数,否者存储空间得不到释放,从而造成内存泄漏,。而free()是c和c++中的函数,所以需要finalize()中的本地方法调用它。)

所以不要轻易调用finalize()函数。

7.无论是垃圾回收还是终结都不保证一定发生。

8.finalize()可用于验证对象是否处于可回收状态;

9.引用计数垃圾回收技术(简单 速度慢) 每个对象含有一个引用计数器,当有引用连接至对象是,引用计数加1.当引用离开作用域或被置为Null时,引用计数减1,。垃圾回收器再含有全部对象的列表上便利,当计数只变为0时立即释放对象。(缺陷时当对象之间存在循环引用可能会出现“对象应该被回收,但引用计数不为零的情况”)该技术并未被应到Java虚拟机实现

10.enum可以再switch语句内使用

11.public权限任意类都可以访问到,默认权限(不写修饰符)为包保护权限只有被同一个包下的类访问,protected权限可以被继承类访问到也可以被同一包内的任何类访问。

12.private权限可用于特定的构造器,阻止别人直接访问某个特定的构造器

13.访问权限的控制常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是封装

14.继承可以视为对类的复用,类的复用有继承和组合两种方式(还有代理)

15.@Override注解可以防止你在不想重载时意外地进行了重载

16.final使用的三种情况:数据、方法和类。在方法参数列表中将参数声明为final意味着在方法中无法修改参数引用所指向的对象;

17.使用final方法的原因:1.将方法锁定,防止任何继承类修改即被覆盖重写;2.效率,(当然现在已经不推荐使用fianl来提高效率,因为如果方法很大那么你的程序代码会膨胀,因而看不到内嵌带来的任何性能提高,因为所带来的性能提高可能会因为花费与方法内的时间量而被缩减)。最近的java版本中虚拟机对这一情况进行了优化去掉了这些效率反而降低的内嵌调用,fianl关键字主要适用于1情况);

18.类中所有的private方法都隐式地指定为final的。

19.由于final类禁止继承,所以final类中的所有方法都隐式指定为final的。

20.多态的作用是消除类型之间的耦合关系,多态是通过后期绑定(也叫做动态绑定或运行时绑定)知道是调用哪一个对象的方法的。

21.发生向上转型时,任何成员变量访问操作都将由编译器解析,因此不是多态的。

22.发生向上转型时,静态方法不具有多态性,静态方法与类而并非与单个的对象相关联的。

23.构造器不具有多态性,属于隐式static方法,如果要销毁对象,销毁顺序应该和初始化顺序相反

24.构造器内部的具有多态行为,所以基类构造器编写准则之一:用尽可能简单的方法使对象进入正常状态,如果可以的话,避免调用其他方法。构造器中唯一能够安全调用的方法是基类中的final方法(也适用于private方法)

25.在其他任何事物发生之前,将分配给对象的存储空间初始化成二进制的零或者其他对应的初始值

26.java5中添加了协变返回类型,它表示在到处类中的被覆盖方法可以返回基类方法的返回值类型的某种导出类型

27.用继承表达行为间的差异,并用字段表达状态上的变化。

28.一个抽象类可以没有抽象方法,意义在于可以阻止产生这个类的任何对象

29.当实现某个接口是,并不需要实现嵌套在其内部的任何接口,而且,private接口不能在定义它的类之外被实现。

30.当生成一个内部类的对象是,此对象与制造它的外围对象之间就有了一种联系,所以他能访问其外围对象的所有成员方法,而不需要任何特殊条件,此外还拥有其外围类的所有元素的访问权。

31.可以在一个方法里面或者是在任意的作用域内定义内部类

32.设计模式总是将变化的事物与保持不变的事物分离开

33.任何实现iterable的类,都可以将它用于foreach语句中;Iterable接口被foreach用来在序列中移动;foreach语句可以用于数组或iterable类,但数组中并不包含iterable

34.未完待续刚看到281页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值