1.最终类就是被final修饰的类,最终方法就是被final修饰的方法。最终类不能被继承,最终方法不能被重写。
2.subset(form,true,to,true)是Treeset的非静态方法,该方法返回从form元素到to元素的一个set集合,两个boolean类型是确认是否包含边境值用的。
3.super关键字
1)子类构造函数调用父类构造函数用super
2)子类重写父类方法后,若想调用父类中被重写的方法,用super
3)未被重写的方法可以直接调用。
4.ASCII码和ANSI码
1)标准ASCII只使用7个bit,扩展的ASCII使用8个bit。
2)ANSI通常使用 0x00~0x7f 范围的1 个字节来表示 1 个英文字符。超出此范围的使用0x80~0xFFFF来编码,即扩展的ASCII编码。不同 ANSI 编码之间互不兼容。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。
3)ANSI通常使用 0x00~0x7f 范围的1 个字节来表示 1 个英文字符,即ASCII码。
4)ASCII码包含一些特殊空字符。
5)在简体中文的Windows系统中,ANSI就是GB2312。
6)ASCII码是ANSI码的子集。
4.除了jre中的JVM不是用java实现的,jdk的开发工具包应该都是用java写的。
5.wait()、notify()和notifyAll()是 Object类 中的方法 ;Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、 notify(),使用Condition1的await()、signal()这种方式实现线程间协作更加安全和高效。
6.一个java文件可以包含多个java类,但是只能包含一个public类,并且public类的类名必须与java文件名相同。
7.java继承中对构造函数是不继承的,只是显式或者隐式调用。
8.Ant和Maven都是基于Java的构建(build)工具。理论上来说,有些类似于(Unix)C中的make ,但没有make的缺陷。Ant是软件构建工具,Maven的定位是软件项目管理和理解工具。
1)Ant特点
没有一个约定的目录结构 ,必须明确让ant做什么,什么时候做,然后编译,打包 没有生命周期,必须定义目标及其实现的任务序列 ,没有集成依赖管理。
2)Maven特点
拥有约定,知道你的代码在哪里,放到哪里去 ,拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程 ,只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情 ,拥有依赖管理,仓库管理。
9.父类静态域——》子类静态域——》父类成员初始化——》父类构造块——》父类构造方法——》子类成员初始化——》子类构造块——》。
10.接口修饰符
1)接口中字段的修饰符:public static final(默认不写)。
2)接口中方法的修饰符:public abstract(默认不写)。
11.方法的重写(override)两同两小一大原则:
方法名相同,参数类型相同;
子类返回类型小于等于父类方法返回类型;
子类抛出异常小于等于父类方法抛出异常;
子类访问权限大于等于父类方法访问权限;
12.常用ASCII码值:空格为32;数字0为48;“A”为65;“a”值为97。
13.访问权限
14.字节流、字符流分辨
字符流:reader、writer后缀。
字节流:stream后缀。
15.Arraylist默认数组大小是10,扩容后的大小是扩容前的1.5倍,最大值小于Integer 的最大值减8,如果新创建的集合有带初始值,默认就是传入的大小,也就不会扩容。
16.Python是解释执行的,其他语言都需要先编译。
17.servle是单例的 Struts2是多例的。
18.ClassLoader
默认情况下,Java应用启动过程涉及三个ClassLoader: Boostrap, Extension, App。
类装载器需要保证类装载过程的线程安全。
ClassLoader的父子结构中,默认装载采用了父优先。
19.子类可以继承父类的全部数据域和方法,但是这里继承代表的是“拥有”,即:只是拥有父类的全部数据域和方法,但不具备对某些私有数据域或私有方法的使用权(调用)。
20.JAVA反射机制主要提供以下功能
1)在运行时判断一个对象所属的类;
2)在运行时构造一个类的对象;
3)在运行时判断一个类所具有的成员变量和方法;
4)在运行时调用一个对象的方法;
21.类之间的关系
USES-A:依赖关系,A类会用到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。
关联关系:A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码中的表现为:A类的成员变量中含有B类。
HAS-A:聚合关系,拥有关系,是关联关系的一种特例,是整体和部分的关系。比如鸟群和鸟的关系是聚合关系,鸟群中每个部分都是鸟。
IS-A:表示继承。父类与子类,这个就不解释了。
要注意:还有一种关系:组合关系也是关联关系的一种特例,它体现一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分的关系,但这种整体和部分是不可分割的。
22.native关键字表名修饰的方法是由其它非Java语言编写的。
23.jre 判断程序是否执行结束的标准是所有的前台线程执行完毕。
24.Math类中提供了三个与取整有关的方法:ceil,floor,round,这些方法的作用于它们的英文名称的含义相对应,例如:ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11;floor的英文是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12;最难掌握的是round方法,他表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果是12,Math.round(-11.5)的结果为-11.
25.客户端通过new Socket()方法创建通信的Socket对象 ,服务器端通过new ServerSocket()创建TCP连接对象 ,accept接纳客户端请求。
26.threadlocalmap使用开放定址法解决hash冲突,hashmap使用链地址法解决hash冲突。