面试中最容易问到的String题

转载 2018年04月16日 21:32:07


1. 如何比较两个字符串?使用“==”还是equals()方法?


简单来讲,“==”测试的是两个对象的引用是否相同,而equals()比较的是两个字符串的值是否相等。除非你想检查的是两个字符串是否是同一个对象,否则你应该使用equals()来比较字符串。


如果你知道interning的概念的话,那就更好了。


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


因为String是不可变的,就是说它一旦创建,就不能更改了,直到垃圾收集器将它回收走。而字符数组中的元素是可以更改的(译者注:这就意味着你就可以在使用完之后将其更改,而不会保留原始的数据)。所以使用字符数组的话,安全保密性高的信息(如密码之类的)将不会存在于系统中被他人看到。


3. 我们可以针对字符串使用switch条件语句吗?


对于JDK 7,回答是肯定的。从JDK 7开始, 我们可以针对字符串使用switch条件语句了;在JDK 6或者之前的版本,我们则不能使用switch条件语句。


// Java 7或者以后的版本
switch (str.toLowerCase()) {
      case "a":
           value = 1;
           break;
      case "b":
           value = 2;
           break;
}


4. 如何将字符串转化成int?


int n = Integer.parseInt("10");


很简单,也经常使用,但经常被忽略。


5. 如何将字符串用空白字符分割开?


我们可以使用正则表达式来做到分割字符。“\s”代表空白字符” “, “\t”, “\r”, “\n”.


String[] strArray = aString.split("\\s+");


6. substring()方法到底做了什么?


在JDK 6中, substring()的做法是,用一个字符数组来表示现存的字符串,然后给这个字符数组提供一个“窗口”,但实际并没有创建一个新的字符数组。要创建一个新的字符串对象由新的字符串数组表示的话,你需要加上一个空字符串,如下所示:


str.substring(m, n) + ""


这会创建一个新的字符数组,用来表示新的字符串。这种方法会让你的代码更快,因为垃圾收集器会收集不用的长字符串,而仅保存要使用的子字符串。


在Oracle JDK 7中,substring()会创建新的字符数组,而不是使用现存的字符数组。点击查看JDK 6和JDK 7中substring()的分别。


http://www.importnew.com/7418.html


7. String vs StringBuilder vs StringBuffer


String vs StringBuilder: StringBuilder是可变的,这意味着它创建之后仍旧可以更改它的值。
StringBuilder vs StringBuffer: StringBuffer是synchronized的,它是线程安全的的,但是比StringBuilder要慢。


8. 如何重复一个字符串


在Python中,我们可以乘一个数值来重复一个字符串。在Java中,我们可以使用Apache Commons Lang包中的StringUtils.repeat()方法来重复一个字符串。


String str = "abcd";
String repeated = StringUtils.repeat(str,3);
//abcdabcdabcd


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


String str = "Sep 17, 2013";
Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
System.out.println(date);
//Tue Sep 17 00:00:00 EDT 2013


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


请使用apache commons lang包中的StringUtils:


int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);

String类

介绍String类的初始化 String类的各种方法 String类的各种应用实例
  • 2017年03月27日 10:26

Java面试中最经常被问到的问题

  • 2009年06月01日 15:26
  • 39KB
  • 下载

.net程序员面试题

  • 2012年12月27日 10:44
  • 126KB
  • 下载

程序员须知:面试中最容易被问到的18个算法题(附答案!)

原创 IT168企业级 2017-09-20 17:21 算法是比较复杂又基础的学科,每个学编程的人都会学习大量的算法。而根据统计,以下这18个问题是面试中最容易遇到的,本文给出了一些基...
  • u011277123
  • u011277123
  • 2017-09-25 09:17:07
  • 856

英语面试中最容易被问到的问题

  • 2008年10月21日 18:50
  • 32KB
  • 下载

java 盲点 应该注意的地方

  • 2010年11月26日 12:33
  • 109KB
  • 下载

面试过程中可能会被问到的问题(答案)

原文地址:http://blog.csdn.net/shave_kevin/article/details/44345927 之前面试中遇到很多面试题下面就把一些面试题的答案分享给大家,欢迎大家批评...
  • Shave_Kevin
  • Shave_Kevin
  • 2015-11-11 11:06:38
  • 981

面试中经常问的三种简单排序方法

/** * 三种简单的排序 * 本类中所有举例都是按照从小到大进行排序 * @author caohaicheng * @time 2014-07-24 */ public class ...
  • hai_cheng001
  • hai_cheng001
  • 2014-07-28 21:26:23
  • 1975

java面试中常问到的集合类问题总结

Java集合框架是最常被问到的Java面试问题,要理解Java技术强大特性就有必要掌握集合框架。这里有一些实用问题,常在核心Java面试中问到。 1、什么是Java集合API Java集合...
  • guomei
  • guomei
  • 2013-08-23 00:11:57
  • 886

软件开发人员面试问题(经典)

想雇到搞软件开发的聪明人可不容易。万一一不小心,就会搞到一堆低能大狒狒。我去年就碰到这种事了。你肯定不想这样吧。听我的,没错。在树上开站立会议门都没有。 问点有难度的问题能帮你把聪明人跟狒狒们分开。我...
  • haha_0011
  • haha_0011
  • 2016-07-01 14:48:35
  • 381
收藏助手
不良信息举报
您举报文章:面试中最容易问到的String题
举报原因:
原因补充:

(最多只允许输入30个字)