一些关键词语,一些知识点的理解
-
final 表示该值被创建并初始化后具有不可被更改性。被final修饰的类不可被继承,被final修饰的类不可被子类覆盖。被final修饰的类所有方法自动成为final方法,但是域不会自动变成final域。
static 表示该值从实例域变为静态域,并具有唯一性(一般static和final一起使用的时候,static在final前面)
- 静态方法:不能对对象实施操作,不能访问实例域;没有this参数;可以访问自身类中的静态域。两种情况使用静态方法:1.一个方法不需要访问对象状态,其所需参数都是通过显式参数提供(例如,
Math.pow(x, a);
,用于计算幂x^a,x的a次幂,不使用任何Math对象);2.一个方法只需要访问类的静态域。
- 非public类和public类都可以有main方法,常用于对类进行单元测试。如果要运行整个工程,可以用java Application来运行,非public类的main方法不会运行。
- 实例域如果不显式初始化,系统会自动赋值默认值:数值型为0,布尔值为false,对象引用为null等。而方法里的那些局部变量如果不显式初始化,系统不会自动赋值,而是一些随机值。
- 构造器的执行处理过程
1) 所有数据域被初始化为默认值(0,null,false)
2) 按照在类声明中出现的顺序,依次执行所有域初始化语句和初始化块
3) 如果构造器第一行调用了第二个构造器,则执行第二个构造器主体
4) 执行这个构造器主体
- javadoc从下面几个特性中抽取信息:
1)包
2) 公有类和接口
3) 公有的和受保护的构造器和方法
4) 公有的受保护的域
如果文档中有其他文件的链接,比如图像文件(用户界面的组件的图表或图像等),就应该将这些文件放到子目录doc-files中。
- java.lang包是被默认导入的。
- 出现超类对象的任何地方都可以用子类对象置换。
如:(new Manager() 创建的对象代替了new Employee()创建的对象)
Employee e;
e = new Employee();//Employee object expected
e = new Manager();//Manager can be used as well
但是在具体应用中,还是要遵守继承的规则。
- 动态绑定/方法表
对象调用非private,staitc,final方法时所用的一种生成调用指令的方式。当程序运行,并采用动态绑定调用方法时,为了减少搜索方法的时间开销,虚拟机会为每个类创建一个方法表,其中列出了所有方法的签名和实际调用的方法。
比如,Manager类中有三个继承来的方法,一个重写的方法,一个新增的方法。
Manager:
gerName()->Employee.getName()
getSalary()->Manager.getSalary()
getHireDay()->Employee.getHireDay()
getSalary(double)->Employee.getSalary(double)
getBonus->Manager.getBonus()
在运行的时候,调用e.getSalary()的解析过程:
1) 首先,虚拟机提取e的实际类型的方法表。既可能是Employee、Manager,也可能是Employee类的其他子类的方法表。
2) 接下来,虚拟机搜索定义getSalary签名的类。
3) 最后,虚拟机调用方法。虚拟机会调用与e所引用对象的实际类型最合适的那个方法。假如e的实际类型是D,C是D的父类。如果是D定义了e,就调用它;否则,在C中查找e,以此类推。
一些词汇
- abbreviation 省略,简化,缩写词
- annotation 注释
- associated 关联(的),联合(的),合伙人
- binary 二进位的,二进制数
oct 八进制数
decimal 十进位的,小数的,小数
hex 十六进制数
- cannot be resolved 不能被识别(未声明等)
- collaboration 协作
- capacity 容量
size 大小
- defined 已被定义的
- definitive 最后的,不可更改的
- demonstrate 演示,证明
- diagram 图表,图解,示意图
- dynamic 动态(的)
- execute/execution 执行,完成
- executive 【计算机】执行指令;总经理,行政部门(的)
- generic 一般的,泛型
- handler 处理器
- hierarchy 【计算机】层次;等级制度
- implicit/explicit 隐式/显式
- invoke 请求,祈求
- javadoc (文档提取工具,从源文件中生成一个HTML文档)
- merge 混合,融入
- mutable/immutable 可改变的/不可改变的
- notification 通知,布告
- overloading resolution 重载解析
- polymorphism 多态性,多机组合形式
- primitive 基本的,原始的
- propose 建议,打算,计划
- reflection 反射
- signature 签名
- snapshot 快照
- spreadsheet 电子表格程序
- statement 声明
- submit 提交
- utility 实用程序
一些类
Random random = new Random();
int id = random.nextInt(1000);//nextInt(n) 返回0~(n-1)中的任一整数数
- indexOf
java子字符串的查找方法:
int indexOf(String b)
:返回指定子字符串第一次出现的索引
int indexOf(String b, int startIndex)
:返回给定位置之后第一次出现指定子字符串的索引
int lastIndexOf(String b)
:返回出现指定子字符串的最后一个索引
int lastIndexOf(String b, int startIndex)
:从指定索引出开始向后搜索,返回在此字符串中出现制定子字符串的最后的索引
如果在字符串中不含有指定子字符串,返回-1
类的设计技巧
- 一定要保证数据私有
- 一定要对数据初始化
- 不要在类中使用过多的基本类型
- 不是所有的域都需要独立的域访问器和域更改器
- 将职责过多的类进行分解
- 类名和方法名要能够体现它们的职责