1、String x = “abc” 和 String x = new String(“abc”)有什么区别?
String x = “abc”; x变量引用的是数据段中的字符串常量对象。
String x = new String(“abc”); x变量引用的是堆空间中的字符串对象。在堆空间中产生字符串对象之前,需要以数据段中的字符串常量对象作为模版,将内容拷贝在堆空间中。所以,这样的创建方式可能产生两个字符串对象。
2、正则表达式中,+、*、?、\d、\s、\w各代表什么含义?
+:等价于{1,}。最少出现一次,没有上限限制
*:等价于{0,}。可以不出现,也可以出现多次
?:等价于{0,1},可以不出现,要出现只能出现一次
\d:等价于[0-9]。匹配数字。
\s:匹配空格和回车。
\w:等价于[a-zA-Z0-9_]。匹配合法标识符。
3、String和StringBuffer的区别?
String具有长度不可改变的特性。对字符串进行添加、删除、替换时,不会改变字符串对象的内容,而是产生新的字符串对象。在需要对字符串频繁操作时,效率很低。
StringBuffer是缓冲区中的对象,对StringBuffer进行添加、删除、替换时,不会产生新对象,而是改变StringBuffer中的内容,效率较高,线程安全。
在开发中,如果需要对字符串频繁操作时,一般使用StringBuffer进行操作,如果最后需要使用字符串时,调用StringBuffer的toString方法转化为字符串。
4、如何将字符串转化为基本数据类型?
int x = Integer.parseInt(“20”);
5、如何将日期对象进行"2011-12-10"格式化输出?
SimpleDateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd”);
String str = dateFormat.format(Date日期对象);
6、javaBean规范有哪些内容?
1)必须提供公有的无参构造方法。
2)私有属性+get/set方法,进行属性的访问和设置。
3)实现序列化接口Serializable
7、集合的作用是什么?集合框架的API结构是怎样的?
集合用于存储、检索、操作、传输对象。
Collection是父接口,有两个子接口:List和Set。另外还有一个单独的Map接口
8、List、Set、Map集合各自有什么特点?
List:线性(存入顺序和取出顺序一致),元素可重复(多个元素可以引用同一个对象)
Set:元素不可重复。
Map:键值对,一个元素可以存放两个对象。键对象不重复。
9、集合元素如何添加?如何删除?如何遍历?
添加:List、Set---------add()
Map---------------put()
删除:remove()
遍历:
List、Set:
for(Object obj : List或Set集合){
}
Map:
Set kset = map集合.keySet();
for(Object key : kset){
Object value = map集合.get(key);
}
10、List接口实现类ArrayList、Vector、LinkedList的区别?
ArrayList:底层采用数组实现,遍历元素、追加元素速度快,中间插入和删除元素速度慢,线程不安全。
Vector:与ArrayList类似,底层也用数组实现。但Vector是线程安全的,性能要低于ArrayList。
LinkedList:采用双向链表实现,元素空间不连续。遍历元素速度慢,中间插入和删除元素速度快。一般用于需要在集合的中间位置,频繁增加或删除元素时使用。