1. 判断定义为String类型的s1和s2是否相等

String s1 = "ab";
String s2 = "abc";
String s3 = s1 + "c";
System.out.println(s3 == s2); //true
System.out.println(s3.equals(s2)); //true

解答:

false  //s1是变量,s2与常量"c"相加
true

2. String与StringBuffer传递

 /**
* 基本数据类型的值传递,不改变其值
* 引用数据类型的值传递,改变其值
*/
private static void test4() {
String s = "heima";
System.out.println(s);
change(s);
System.out.println(s); System.out.println("------------------");
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("heima");
System.out.println(stringBuffer);
change(stringBuffer);
System.out.println(stringBuffer);
} /**
* 调用该方法时实际参数的sb和形式参数的sb指向的是同一个对象(StringBuffer容器)
* 方法内部又在该容器里添加了"itcast",所以方法结束时,局部变量的sb消失,但是
* 实际参数的sb所指向的容器的内部的内容已经发生了改变
* @param stringBuffer
*/
private static void change(StringBuffer stringBuffer) {
stringBuffer.append("itcast");
} /**
* 因为str是属于局部变量,在调用该方法是实际参数s和形式参数str指向的是同一个对象,但是
* 在方法内部将str又指向了一个新的字符串对象,而此时s还是指向的原来的字符串对象
* 该方法执行完毕,局部变量str消失,方法内部产生的新的字符串对象称为垃圾,但是s还是指向
* 原有的字符串对象,并没有改变
* @param str
*/
private static void change(String str) {
str += "itcast";
}

3. Integer的面试题

     private static void test5() {
Integer i1 = 97;
Integer i2 = 97;
System.out.println(i1 == i2);
System.out.println("-----------------"); Integer i3 = 199;
Integer i4 = 199;
System.out.println(i3 == i4); /**
* -128到127是byte的取值范围,如果在这个取值范围内,自动装箱就不会新创建对象,
* 而是从常量池中获取,如果超过了byte取值范围就会再新创建对象
* 源码分析:
*/
public static Integer valueOf(int i) {
if (i >= -128 && i <= 127)
return Integer.IntegerCache.cache[i + (-Integer.IntegerCache.low)];
return new Integer(i);
}
}

4. 为什么针对安全保密高的信息,char[]比String更好?

  因为String是不可变的,就是说它一旦创建,就不能更改了,直到垃圾收集器将它回收走。而字符数组中的元素是可以更改的。这就意味着可以在使用完之后将其更改,而不会保留原始的数据)。

所以使用字符数组的话,安全保密性高的信息(Eg. 密码之类的)将不会存在与系统中被他人看到。

5. 如何将字符串转换成时间

     private static void test6() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String today = simpleDateFormat.format(new Date());
ParsePosition position = new ParsePosition(0);
Date date = simpleDateFormat.parse(today, position);
}

6. 如何计算一个字符串某个字符的出现次数?

     private static void test7() {
int n = StringUtils.countMatches("111122233333111", "1");
System.out.println(n);
}

7. 如何重复一个字符串

     private static void test8() {
String str = "abcd ";
String repeated = StringUtils.repeat(str, 3);
System.out.println(repeated);
}

最新文章

  1. LINQ系列:LINQ to DataSet的DataView操作
  2. NSOperation操作依赖和监听
  3. Linux下使用ping快速检测存活主机
  4. C++的一些小的知识点
  5. SqlServer 2008 R2定时备份数据库,并且发送邮件通知
  6. 记一个奇怪的python异常处理过程
  7. IDEA 14快捷键
  8. ByteArray
  9. Android线程和线程池
  10. 转发 Mongodb 和 Hbase的区别
  11. 1010 [HNOI2008]玩具装箱toy
  12. 【HDOJ】Power Stations
  13. 使用lock_sga和pre_page_sga参数保证SGA常驻物理内存 .
  14. Kali命令集
  15. RBAC打造通用WEB权限
  16. jquery-post get 同步问题
  17. mac下通过mdfind命令搜索文件
  18. JSP标签JSTL(5)--常用的标签函数
  19. MySQL Error Number 1005 Can’t create table(Errno:150)
  20. C/C++读写二进制文件

热门文章

  1. ~/.bashrc的常用alias设置,30 个方便的 Bash shell 别名
  2. VS2010-MFC(对话框:消息对话框)
  3. HTML基本案列
  4. 网络安全系列 之 MySQL数据库安全
  5. Walk Through Squares HDU - 4758 AC自动机+简单状压DP
  6. 在Eclipse中修改Jsp页面的新增模板
  7. 转为win64后, MS的lib问题
  8. gdb调试工具的使用
  9. docker 个人遇到问题日志记录
  10. 第二章计算机网络ios 模型