package com.test;
public class stringTest {
/**
* @param args
*/
public static void main(String[] args) {
//这里生成两个对象,一个是"abc",一个是 new String("abc")
//原因:要new一个对象,首先要去string pool中看看有没有这个对象,如果有,就使用里面的
//那个对象,如果没有就放一个进去。
//执行下面这句代码的时候,string pool中没有"abc",所以在string pool中加入对象"acb",
//然后再new一个"abc",所以就有两个对象了
//s不是对象,它只是一个引用
String s = new String("abc");
//这里没有生成对象。
//原因:执行这句代码的时候,会先去string中找到上面已经放进去的"abc",所以不会再生成对象。
String s1 = "abc";
//这里生成一个对象:new String("abc")
//原因:执行这句代码的时候,会先去string中找到上面已经放进去的"abc",
//然后才new String("abc").
String s2 = new String("abc");
System.out.println(s == s1);//false
System.out.println(s == s2);//false
System.out.println(s1 == s2);//false
//intern()是返回String pool中的对象
System.out.println(s == s.intern());//false
System.out.println(s1 == s1.intern());//true
System.out.println(s1.intern() == s2.intern());//true
String hello = "hello";
String hel = "hel";
String lo = "lo";
//执行这句代码时,先执行"hel" + "lo",然后在String pool里找到了已经存在的"hello"
//所以返回true
System.out.println(hello == "hel" + "lo");//true
//执行这句代码时,先执行"hel" + lo,但生成的"hello"是存在堆中的,
//所以与String pool中的"hello"不同,返回false
System.out.println(hello == "hel" + lo);//false
}
}
分享到:
相关推荐
│ Java面试题08.String.mp4 │ Java面试题09.讲一下java中的集合.mp4 │ Java面试题10.ArrayList LinkedList.mp4 │ Java面试题11.HashMap和HashTable的区别.mp4 │ Java面试题12.实现一个拷贝文件的类使用字节流...
1.2 JAVA面试题解惑系列(二)——到底创建了几个String对象? 1.3 JAVA面试题解惑系列(三)——变量(属性)的覆盖 1.4 JAVA面试题解惑系列(四)——final、finally和finalize的区别 1.5 JAVA面试题解惑系列(五...
主要介绍了JAVA面试题 String s = new String("xyz");产生了几个对象?,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java面试题08.String Java面试题09.讲一下java中的集合 Java面试题10.ArrayList 和LinkedList的区别 Java面试题11.HashMap和HashTable的区别 Java面试题12.实现一个拷贝文件的工具类要使用字节流还是字符串 Java面试...
JAVA面试题解惑系列(二)——到底创建了几个String对象-JAVA程序员JAVA工程师面试必看.pdf,这是一份不错的文件
Java面试题08.String Java面试题09.讲一下java中的集合 Java面试题10.ArrayList 和LinkedList的区别 Java面试题11.HashMap和HashTable的区别 Java面试题12.实现一个拷贝文件的工具类要使用字节流还是字符串 Java面试...
整理了网上的一些java面试题目,很全很强大 面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面。抽象并不5. 打算了解全部问题...
java 面试题 资料 包括 面向对象的特征、String 和StringBuffer的区别、ArrayList,Vector, LinkedList的存储性能和特性、SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别等等
new String(“abc”)创建了几个对象 String变量做“+”运算时的编译优化 "=="和equals方法究竟有什么区别 String,StringBuffer,StringBuilder有什么区别 java中的数组是不是对象 数组初始化的方式有哪几种 length...
学会这些java面试题让你吊打面试官!面试前看看,让你充满自信,不再惧怕面试官各种刁难。1.Java中内存管理及各区域内存储数据的生命周期? 2.JVM堆内存的分代管理以及垃圾回收流程? 3.面向对象三大特征及详细理解? 4...
答案参考:java常见面试题 1、面向对象的特点有哪些? 2、接口和抽象类有什么联系和区别? 3、重载和重写有什么区别? 4、java有哪些基本数据类型? 5、数组有没有length()方法?String有没有length()方法? 6、Java支持的...
1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出...
java开发岗企业常考面试题目 1.GC垃圾回收处理器,回收内存 托管资源: 非托管资源:手动释放资源 2.堆内存:new出来的 栈内存:基本数据类型的变量,方法的返回值,对象的引用(对象的引用地址) 3.static:存放...
面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...
1、面向对象的特征有哪些方面 2 2、String是最基本的数据类型吗? 2 3、int 和 Integer 有什么区别 3 4、String 和StringBuffer的区别 3 5、运行时异常与一般异常有何异同? 3 6、说出Servlet的生命周期,并说出...
2、到底创建了几个String对象;3、变量(属性)的覆盖;4、final,finally,finalize;5.传了值还是传了引用;6.String杂谈;7.日期与时间的处理;8.基本类型总结;9.继承,多态,重载,重写;10.多线程;11.运算符...
1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括...
面试题目: 1-10题: 1、java中==和equals和hashCode的区别 2、int与integer的区别 3、String、StringBuffer、StringBuilder区别 4、什么是内部类?内部类的作用 5、进程和线程的区别 6、final,finally,...
而StringBuffer/StringBuilder类表示的字符串对象可以直接进行修改。StringBuilder是Java 5中引入的,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized...