下面是面试中最容易问到的有关String的问题。
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()的分别。
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);
原文链接: Programcreek 翻译: ImportNew.com - 唐小娟
译文链接: http://www.importnew.com/9622.html
相关推荐
以下就是10个关于Java String的面试问题,这些问题涵盖了String的基础、性能优化以及一些高级特性。 1. **String是不可变的吗?** 是的,String在Java中是不可变的。这意味着一旦创建了一个String对象,就不能更改...
"Java字符串面试题详解" 在 Java 中,String 是一个非常重要的类,它在实际应用...这 10 个 Java 经典的 String 面试题涵盖了 String 的基本特点、使用方法和常见问题。掌握这些知识点对于 Java 开发者来说非常重要。
以下是对这十个经典Java String面试题的详细解答: 1. **String对象的创建** - 当使用`new`关键字创建String对象时,会在堆内存中分配一个新的对象。 - 字符串字面量(如`"hello"`)会放入字符串常量池中。如果...
以下是对这十个经典Java String面试题的详细解答: 1. **String是基本数据类型吗?** Java的String并不是基本数据类型,而是引用类型。Java有8种基本数据类型,如int、char等,而String属于类,它继承了Object类。...
在求职过程中,C++相关的笔试和面试题目往往要求应聘者不仅具备扎实的理论基础,更要有解决实际问题的能力。因此,“C++笔试面试宝典2009版”成为了广大程序员在求职道路上的有力辅助,它将语言的基础知识点、模板...
在Java编程语言中,`String`与`StringBuffer`是两个重要的字符串处理类,它们各自具有独特的特性和用途,尤其在面试或笔试中常被提及作为考察应聘者对Java基础知识掌握程度的重要知识点。 ### `String`类:不可变性...
整理了网上的一些java面试题目,很全很强大 面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面。抽象并不5. 打算了解全部问题...
因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当...
在本文中,我们将详细讨论框架面试题,涵盖了String、struts2和springmvc等多个方面的知识点。 首先,让我们从IOC容器开始。IOC容器是具有依赖注入功能的容器,是可以创建对象的容器。IOC容器负责实例化、定位、...
JAVA 面试题解惑系列之 String 对象创建机制 本文将深入探讨 JAVA 中 String 对象的创建机制,解答常见的面试题目,并探索 String 对象池的概念和机制。 一、String 对象的创建方式 在 JAVA 中,String 对象可以...
JAVA面试问题总结 JAVA是一种广泛应用的编程语言,作为一名JAVA开发者,需要具备扎实的基础知识和实践经验。本文总结了常见的JAVA面试问题,涵盖了JAVA基础、JSP、Servlet、XML、J2EE、MVC、数据库等方面的知识点。...
在面试中,关于String类的问题往往是必考题。以下是一些在面试中可能会遇到的问题,以及对应的解释和知识点汇总。 1. 在比较两个字符串时,应该使用“==”还是equals()方法? 答案是使用equals()方法。因为“==”...
Java 面试问题整理中涵盖了 Java 基础知识、equals 和 hashCode 的区别、Math 类的使用、String 类的特点等多个方面的知识点。 一、Java 基础知识 * JDK 和 JRE 的区别:JDK(Java Development Kit)是 Java 的...
06 10个Java经典的String面试题!.pdf 07 15道经典的Tomcat面试题!.pdf 08 15道面试常问的Java多线程面试题!.pdf 09 17道消息队列Kafka面试题!.pdf 10 18道非常牛逼的Nginx面试题!.pdf 11 20道顶尖的Spring Boot...
Java面试问题涵盖了各种核心概念,包括面向对象特性、数据类型、异常处理、字符串处理、集合框架、多线程以及企业级Java应用中的组件。以下是针对这些知识点的详细说明: 1. **面向对象的特征**: - **抽象**:...
面试题10:编写类String 的构造函数、析构函数和赋值函数 8.4 拷贝构造函数 面试题11:谈谈对拷贝构造函数和赋值运算符的认识 面试题12:写出当定义#define _INMAIN 0和不定义时代码打印结果 第9章 继承与多态 9.1 ...
JAVA中String介绍及常见面试题小结 Java 中的 String 是一个非常重要的概念,它广泛应用于 Java 编程中。...在面试时,很多问题都会涉及到 String 的使用和特点,掌握这些知识点可以帮助我们更好地应对面试。
Java 面试常见问题 以下是 Java 面试中常见的问题和知识点: 一、基本数据类型和封装类 * Java 中有九种基本数据类型:boolean、byte、char、short、int、long、float、double 和 void * 每种基本数据类型都有...