API
81.==和equals的区别?
答:“==”是比较运算符,既能比较基本数据类型,又能比较引用数据类型。基本数据类型比较的是数值,引用数据类型比较的是地址值。
equals是一个方法,只能比较引用数据类型。所有的类都会继承Object的equals方法。重写equals方法比较的是对象的内容,如果没有重写将调研Object的equals方法,比较的是地址值。
82.String str = null 和String str = ""的区别?
答:String str = null只是声明了引用,但是没有创建对象,没有为其开辟空间,不能操作方法。String = “”是创建了一个长度为0的字符串,并在内存中分配了空间。
83.String s1= "abc", String s2= new String(“abc”),s1==s2结果是什么?s1.equals(s2)结果是什么?
答:s1==s2结果为false。s1指向的常量池中的对象,s2指向的是堆内存中的对象,两者的地址值不同。s1.equals(s2)结果是true。String重写了equals方法,比较的是内容。
84.String,StringBuffer、StringBuilder的区别?
答: String是一个特殊的引用数据类型,是一个长度不可变的字符序列,没有缓冲区,一旦创建就不会发生变化了。即使重新赋值不是在原来对象的基础上改变的,而是创建了一个新的对象,将引用指向这个新的对象,浪费空间,效率比较低。
StringBuffer、StringBuilder是容器,是可变的字符串序列。StringBuffer是JDK1.0版本的,线程是安全的,效率比较低。StringBuilder是JDK1.5出现的,线程不安全,效率高。
85.StringBuilder的底层是什么?
答:底层是字符数组,原始长度为16。通过append添加元素的时候,会自动扩容,扩容规则:大字符串的长度= 小数组长度*2+2.
86.为什么出现基本数据类型包装类?
答:将基本数据类型封装为对象的好处能在对象中封装更多的功能操作数据。
87.String 和int直接的转换?
答:将int类型转为String类型的方法:(1)基本数据类型+""(2)Integer.toString(int num)(3)String.valueOf(int i)
将String转为int:Integer.parseInt(String s)
88.基本数据类型包装类的自动拆装箱是什么?
答:是JDK1.5版本出现的新特性,自动装箱就是把基本数据类型转为为包装类型。拆箱就是把包装类转换为基本数据类型。
89.Object类中的常见方法有哪些?
答:hashCode():返回值是int,是该对象的哈希玛值。
equals():返回值是boolean,比较的是地址值。
toString():返回该对象的字符串表现形式。
getClass():返回值类型是Class。返回的是创建该对象所属类对应的字节码文件。
这些方法都需要对象调用,在开发的过程中要重写。
地址值的组成:类名@十六进制的哈希值。
90.获取当前时间毫秒值有哪几种方式?
答:(1)new Date().getTime();(2)System. currentTimeMillis()(3)Calendar.getInstance().getTimeInMillis()
91.正则表达式常用的;
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
(X)表示分组
\\1表示和前面的相同
. 任何字符
X? ,一次或一次也没有
X* ,零次或多次
X+ ,一次或多次
X{n} ,恰好 n 次
X{n,} ,至少 n 次
X{n,m} ,至少 n 次,但是不超过 m 次
92.日历类和日期类相互转换:
Calendar c = Calendar.getInstance(); c.setTime(date); c.getTime()
93.Date和String类型的转换?
Date类型转为String 是格式化:format
String转Date是解析;parse |
|