`
阿尔萨斯
  • 浏览: 4192801 次
社区版块
存档分类
最新评论

Java的String经典笔试题付注解

 
阅读更多



测试一
publicclassStringTest{
publicstaticvoidmain(String[]args){
Strings1=newString("abc");//此句代码产生后在内存中会产生几个对象?
//执行完第一句代码后,在内存中创建两个对象。
//分析:首先Java会根据"abc"在StringPool(字符串池)中查找"abc",如果没有该
//字符串则在StringPool中创建一个对象。然后在通过new关键字在Java内存堆栈中创建
//一个"abc"对象,并且由s1变量指向它。
Strings2="abc";//此句代码产生后在内存中会产生几个对象?
//在执行第二句代码时,Java会依据上面的顺序首先在StringPool中查找"abc",如果
//找到有此项,则变量s2指向StringPool中的"abc"。
Strings3=newString("abc");//此句代码产生后在内存中会产生几个对象?
//在执行第三句代码时,Java首先也会在StringPool中查找"abc"对象,然后在内存堆栈
//中创建一个新的对象"abc"并且s3变量指向它。

System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s2==s3);
/*
publicStringintern()返回字符串对象的规范化表示形式。
一个初始时为空的字符串池,它由类String私有地维护。
当调用intern方法时,如果池已经包含一个等于此String对象的字符串
(该对象由equals(Object)方法确定),则返回池中的字符串。
否则,将此String对象添加到池中,并且返回此String对象的引用。
*/
System.out.println(s1==s1.intern());
//s1.intern()会返回s2的内存地址。所以此句代码会打印false。
System.out.println(s2==s2.intern());
System.out.println(s1.intern()==s3.intern());
}
}
内存示意图:

测试二
publicclassStringTest2{
publicstaticvoidmain(String[]args){
Stringhello="hello";
Stringhel="hel";
Stringlo="lo";

System.out.println(hello=="hel"+"lo");
//在"+"两边都是常量字符串,则将两个字符串合并并且在StringPool中查找"hello"
//并返回在StringPool中的内存地址正好也是hello变量的内存地址,所以第一句代码会输出true。
System.out.println(hello=="hel"+lo);
//如果在"+"两边有一边是引用类型变量,Java会将合并成一个字符串并且在堆栈中创建一个
//新的对象并且返回内存地址,所以这句代码是输出false。
}

}
分享到:
评论

相关推荐

    java基础String类选择题练习题

    java基础String类选择题练习题,文档包含了答案与分析,适合学习用,本文档仅仅用于学习分享,不得用于商业用途

    java笔试题大汇总

    最常用java笔试题,n多年都在用. 1、面向对象的特征有哪些方面 1.抽象: 2.继承: 3.封装: 4. 多态性: 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short...

    java面试笔试题String 和StringBuffer的区别

    java面试笔试题String 和StringBuffer的区别

    java面试笔试题大汇总

    java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置...

    java面试笔试题大汇总.pdf

    java面试笔试题大汇 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当...

    JAVA_笔试题

    JAVA_笔试题,是本人整理的java面试和笔试经常用到的题目,要面试或笔试的朋友可以看看。

    Java就业面试笔试题资料-264道.zip

    Java就业面试笔试题资料-264道: 1. JAVA的基本数据类型有哪些 ? String 是不是基本数据类型 ? Java 有8种基本数据类型: byte int short long double float Boolean char byte int short long 都属于整数类型. ...

    java面试笔试题集合

    java面试笔试题集合4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2...

    Java基础的笔试题

    Java基础的笔试题 String 和StringBuffer 的区别 运行时异常与一般异常有何异同? Collection 和 Collections 的区别 sleep() 和 wait() 有什么区别? Overload 和Override 的区别。Overloaded 的方法是否可以改变...

    java笔试题

    3、String 是最基本的数据类型吗? 4、float f=3.4;是否正确? 5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗? 6、Java有没有goto? 7、int和Integer有什么区别? 8、&和&&的区别? 9、解释...

    Java经典例题集,Java,笔试题

    太经典的Java笔试题,共勉。 1,下面程序的运行结果是 public class J_test { public static void main(String[] args) { int i = 0; while (true) { if(i++ > 10){ break; } //i++的考查,在右边时是先执行...

    Java String对象的经典问题

    Java String对象的经典问题,有关String类的介绍

    5.javaString类.zip

    5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5....

    java String 使用详解

    java String 使用详解,看完对String 的用法完全掌握

    c c++ 笔试 面试题 超多超经典

    c c++ 笔试 面试题 超多超经典c c++ 笔试 面试题 超多超经典c c++ 笔试 面试题 超多超经典c c++ 笔试 面试题 超多超经典c c++ 笔试 面试题 超多超经典

    javastring赋值笔试题-jsoo:杰苏

    string赋值笔试题 JavaScript Object-Oriented Programming: Principles and Practices 面向对象JavaScript编程:原理与实践 1. 简介 初衷 笔者早年编写代码使用过 Motorola 68000 和 x86汇编、C/C++、Pascal、...

    java面试或者笔试题精选

    关于Java面试或者笔试试题 String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个...

    企业java面试题(笔试+面试)

    HP笔试题 (时间30分钟,顺序有出入,答案仅供参考) 以下为问答题,每题3分 1. Java的基本类型 boolean,char,byte,short,int,long,float,double 2. String 和StringBuffer的区别 JAVA平台提供了两个类:String和...

    java中String类型转换方法.pdf

    java中String类型转换方法.pdf

Global site tag (gtag.js) - Google Analytics