Java 相关整理

1.       JDK1.5新增的语言特性

枚举

变参

泛型:由运行时报错转为编译时报错

自动拆装箱:简化代码

Foreach循环:简化代码,避免数组越界

静态导入:可直接使用静态成员,效果为类似于类中存在此方法,直接用

注释:annotation

2.       JDK1.6

简化webservices

Scripting,整合脚本语言,实现了JSR223

Database,绑定derby

Desktop apis

监视和管理

Pluggable annotaitons

Complier api:访问编译器,实现了JSR199

Security:安全性

Instrumentation

http

JMX与系统管理

 

3.       Switchexp),exp是一个整数表达式,因此,传递给switchcase语句的参数应该是intshortbytechar,而longstring不行

4.       java里面参数传递都是按值传递”的意思是

按值传递是传递的值的拷贝

按引用传递的是引用的地址值

 

统称为按值传递

5.       String类提供的字符串数值不可改变

StringBuffer类提供的字符串可修改

6.       String StringBufferStringBuilder的区别

String的长度是不可改变的

StringBuffer的长度是可变的,若经常改变,则用它(线程安全)

StringBuilder是从JDK5开始,为stringBuffer 补充的一个单个线程的等价类,优先使用StringBuilder,因为它支持所有相同操作,但由于它不执行同步,速度更快

 

toStringStringBufferSynchronized,而StringBuilder不是

7.       ArrayList,Vector,LinkedList的存储性能和特性

·  ArrayListVector都是使用数组方式存储数据,此数组元素大于实际存储的数据,以便增加和插入元素。他们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快,而插入数据慢,Vector由于使用了Synchronized方法,通常性能较ArrayList

·  LinkedList使用双向链表实现存储,按序号索引需要向前式遍历,但是插入数据时只需要记录本项记录前后即可,所以插入速度较快

 

8.       SynchronizedLock的异同

相同点:lock能完成Synchronized的所有功能

不同:lock有比Synchronized更加精确的线程语义和性能。Synchronized会自动释放锁,而lock要手动释放,且在finnally中释放

9.       数据库查询很慢的处理方法

建索引

减少表的关联

优化sql

简化查询字段

10.   Hashmaphashtable的区别

继承与实现的差别:HashTable是基于陈旧的Dictionary类,完成了Map接口;HashMapJDK1.2以后引进的MAP接口的一个实现

 

线程安全不同:HashTable是同步的,HashMap是未同步,所以多线程场合需要手动同步HashMap

 

NULL处理不同:HashTable不允许NULL值,keyvalue都不可以,HashMap允许,keyvalue都可以,HashMap中判断是否存在某个键不用get(),用containskey()

 

方法不同:HashTable有一个contains方法,功能与containsValue一样。

 

11.   ConnectionConnections区别

Connectionjava.util下的接口,是各种集合结构的父接口

Connectionsjava.util下的类,它包含各种有关集合操作的静态方法

 Java 相关整理_第1张图片

 

12.   Sleepwait的区别

这两个方法来自不同的类,分别是threadObject

最主要是sleep方法没有释放对象锁,而wait方法释放,使得其他线程可以使用同步控制块或者方法

Waitnotifynotifyall只能在同步控制块或者同步控制方法中使用,而sleep可以在任何地方使用

Sleep必须捕获异常,而wait等不需要

你可能感兴趣的:(Java 相关整理)