Java知识复习(二)

如何格式化日期

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Date dat=new Date();

//把日期转化为字符串

String str=sdf.format(dat);

System.out.println(str);

//将字符串转化为日期

Java.util.Date d1=sdf.parse(“yyyy-mm-dd”);

 

String s = new String("xyz");创建了几个String Object?

 

两个,New了一个,”XYZ”本来又是一个

 

String s=new String(x+y+z); 创建了几个String Object?

6个

编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。

//重构字符串

String a=new String("中".getBytes("gb2312"),"iso-8859-1");

String a=new String("中".getBytes("iso-8859-1"));

java中实现多态的机制是什么?

静态的多态:重载、重写

动态的多态:

父类 接收 子类的实例

接口 接收 实现类的实例

 

static关键字的用法?

 

1 静态方法中是不能调用非静态的属性或者方法,

 

2 非静态的方法中是可以调用静态的成员和方法的

垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

动态内存 存放类实例

静态内存 类本身

垃圾收集主要针对的是动态内存,一般当内存不够用时会进行垃圾收集。

或通过System.gc()手动收集,但不保证一定执行。

 

写clone()方法时,通常都有一行代码,是什么?

 

Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。

String and StringBuffer的区别

String:String由final关键字修饰,所以长度是不可变

StringBuffer:可变可修改的

 

集合的通用方法有那些?通用方法是什么?(操作)

 

集合List 的遍历方法有:

 

Iterator:

 

Enumeration

 

For

 

Get

 

set

 

Collection的通用方法有:

 

Iterator()

 

Add()

 

Clear();

 

remove()

ArrayList与Vector的区别

一.同步性:

   Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的。

二.操作:

    由于Vector支持多线程操作,所以在性能上就比不上ArrayList了。

三.数据增长:

       ArrayList和Vector都有一个初始的容量大小,当存储进去它们里面的元素个数超出容量的时候,就需要增加ArrayList和Vector的存储空间,每次增加存储空间的时候不是只增加一个存储单元,是增加多个存储单元。

       Vector默认增加原来的一倍,ArrayList默认增加原来的0.5倍。

       Vector可以由我们自己来设置增长的大小,ArrayList没有提供相关的方法。

LinkedList与ArrayList的区别

两者都实现的是List接口,不同之处在于:

(1)、ArrayList是基于动态数组实现的,LinkedList是基于链表的数据结构。

(2)、get访问List内部任意元素时,ArrayList的性能要比LinkedList性能好。LinkedList中的get方法是要按照顺序从列表的一端开始检查,直到另一端

(3)、对于新增和删除操作LinkedList要强于ArrayList,因为ArrayList要移动数据

       LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。

       注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:

List list = Collections.synchronizedList(new LinkedList(…));

HashMap和Hashtable的区别

HashMap不是线程安全的,HashMap是map接口的子类,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。

HashTable是线程安全的,HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差别

 

posted @ 2017-09-12 16:40  时光与我恰经过  阅读(173)  评论(0编辑  收藏  举报