打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java 编程思想 笔记
1.比较对象和基本类型
==和!= 比较的是对象的引用。equals()比较的是对象的内容。 基本类型可以直接用==和!=比较
  如果在自己写的类中。必须覆盖equals() 因为equals()默认比较的是引用
  大多数的java类库都实现了equals()方法,以便用来比较对象的内容,而非比较的引用。

2. 标签,break,continue

demo:  label1:
       outer-iteration{
       inner-iteration{
       break; // (1)
       continue; //(2)
       continue label1;(3)
       break label1;(4)    
}
}


在(1)中,break中断内部迭代,回到外部迭代。在(2)中,continue使执行点移回内部迭代的起始处。
在(3)中,continue label1 同时中断内部迭代以及外部迭代,直接转到label1处,继续从外部迭代继续迭代过程。
在(4)中,break label1 中断所有迭代,并回到label1处但并不重新进入迭代,完全中止了两个迭代。

3.对象创建过程
1)首次创建对象时,或者类的静态方法/静态域首次被访问时,java解释器必须炒作类路径,定位类.class文件。(构造器可以看成静态方法)
2)然后载入类.class文件,有关静态初始化的所有动作都会执行,因此,静态初始化只在class对象首次加载的时候进行一次。
3)当用new 类()创建对象的时候,首先将在堆上为类对象分配足够的存储空间。
4)这块存储空间会被清零,这就自动地将类对象中的所有基本类型数据都设置成了默认值,而引用则被设置成为null.
5)执行所有出现于字段定义初的初始化动作
6)执行构造器

4.构造器的调用顺序
基类的构造器总是在导出类的构造过程中被调用,而且按照继承层次逐渐向上链接,以使每个基类的构造器都能得到调用。
1)调用基类构造器。这个步骤会不断地反复递归下去,首先是构造这种层次结构的根,然后是下一层导出类,等等,知道最底层的导出类。
2)按声明顺序调用成员的初始化方法。
3)调用导出类构造器的主体。

5.编写构造器的准则
用尽可能简单的方法使对象进入正常状态;如果可以的话,避免调用其他方法。(在构造器内唯一能够安全调用的那些方法是基类中的final方法,也适用于private方法,这些方法不能被覆盖。因此是安全的。)

6.内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类。
内部类的作用:
1)隐藏名字和组织代码
2)当生成一个内部类的对象时,此对象与制造它的外围对象之间就有了一种联系,所以它能访问其外围对象的所有成员,而不需要任何特殊条件。此外,内部类还拥有其外围类的所有元素的访问权。
内部类如何做到自动拥有对其外围类所有成员的访问权:
当某个外围类的对象创建了一个内部类对象时,此内部类对象必定会秘密地捕获一个指向那个外围类对象的引用。然后,在你访问此外围类的成员时,就是用那个引用来选择外围类的成员。编译器会帮你处理所有的细节。

使用.this与.new
如果你需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟圆点和this.这样产生的引用自动地具有正确的类型。
有时你可能想要告知某些其他对象,去创建其某个内部类的对象。要实现此目的,你必须在new表达式中提供对其他外部类对象的引用,这时需要.new   .

7.嵌套类:
如果不需要内部类对象与其外围类对象之间有联系,那么可以将内部类声明为static.这通常称为嵌套类。
普通的内部类对象隐式地保存了一个引用,指向创建它的外围类对象。然而,当内部类是static时,就不这样了。
嵌套类意味着:
1)要创建嵌套类的对象,并不需要其外围类的对象。
2)不能从嵌套类的对象中访问非静态的外围类对象。
嵌套类与普通的内部类还有一个区别。普通内部类的字段与方法,只能放在类的外部层次上,所以普通内部类不能有static数据和static字段,也不能包含嵌套类。但是嵌套类可以包含所有这些东西。
内部类的特性:
1)内部类可以有多个实例,每个实例都有自己的状态信息,并且与其外围类对象的信息相互独立。
2)在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或基础层同一个类。
3)创建内部类对象的时刻并不依赖于外围类对象的创建。
4)内部类并没有令人迷惑的is-a 关系,它就是一个独立的实体。

8.数组
无论使用哪种类型的数组,数组标识符其实只是一个引用,指向在堆中创建的一个真实对象,这个(数组)对象用以保存指向其他对象的引用。
对象数组和基本类型数组在使用上几乎是相同的;唯一的区别就是对象数组保存的是引用,基本类型数组直接保存基本类型的值。

9.枚举类型
关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。
switch语句中的enum.
enumMap是一种特殊的map,它要求其中的键(key)必须来自一个enum.由于enum本身的限制,所以enumMap在内部可由数组实现。因此enumMap的速度很快,我们可以放心地使用enum实例在enumMap中进行查找操作。不过,我们只呢将enum实例作为键来调用put()方法,其他操作与使用一般m
ap差不多。

10.注解
注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化方法,使我们可以在稍后某个时刻非常方便地使用这些数据。
@Override:表示当前的方法定义将覆盖超类中的方法。拼写错误和方法对不上,编译器会发出错误提示。
@Deprecated: 如果程序员使用了注解为它的元素,编译器会发出警告信息。
@SuppressWarinings: 关闭不当的编译警告信息。

 

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java 语言中 Enum 类型的使用介绍
enum使用详解
「每日知识点」深入理解 Java 枚举类型
Java中不可或缺的50个小技巧,好用!
java工程师求职面试准备(1)
java基础有关的面试题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服