Java中两种String对象创建和初始化…
来源:互联网 发布:js cookie 自动登录 编辑:程序博客网 时间:2024/05/17 23:30
在Java中,初始化String分为两种:
1. String s1 = "11";
2. String s2 = new String("11")
区别:
方法1中,先在内存中查找有没有"11"这个字符串对象存在,如果存在就把s1指向这个字符串对象;
方法2中,不论内存中是否已经存在"11"这个字符串对象,都会新建一个对象。
前者会在栈中创建一个对象引用变量str,然后查看栈中是否存在“11”,如果没有,则将“11”存放进栈,并令引用变量str指向它;如果已经有“11”,则直接令str指向它;后者是java中标准的对象创建方式,其创建的对象将直接放置到堆中,每调用一次就会创建一个新的对象。这样充分利用了栈的数据共享优点,当然也可能是一个陷阱,对象很有可能没有创建,只不过指向一个先前已经创建的对象;而new()方法则能保证每次都创建一个新的对象。
true
false
总结:
1.
String
String
if(str1==str2)
else if (str1.equals(str2))return true;
else return false;
2.
String
String
if (str1==str2) return false;
else if (str1.equals(str2)) returntrue;
else return false;
ava堆与栈 javaString分配内存空间(详解)
栈内存
堆内存
基础类型,对象引用(
由new
存取速度快
相对于栈内存较慢
数据大小声明周期必须确定
分配的内存由java
共享特性
栈中如果有字符串,则直接引用
如果没有,开辟新的空间存入值
每new
创建之后值可以改变
String
一、栈内存
基础类型
栈的共享特性
String str1 = "abc";
String str2 = "abc";
System.out.println(str1==str2); //true
1
2
二、堆内存
new
三、
String str1 = "abc";
String str2 = "abc";
System.out.println(str1==str2);//true
String str3 = "abc";
String str4 = new String("abc") ;
System.out.println(str3 ==str4);
String hello = "hello" ;
String hel = "hel" ;
String lo = "lo" ;
System.out.println(hello == "hel" + "lo") ;//true
//
System.out.println(hello == "hel" + lo);
System.out.println(hello == hel + lo);
将此字符串与指定的对象比较。当且仅当该参数不为
String str6 = new String("abc") ;
System.out.println(str5.equals(str6));
Public String intern()
当调用
1
2
String s7 = new String("abc") ;
String s8 = "abc" ;
System.out.println(s7 == s7.intern());//flase
System.out.println(s8 == s7.intern());//true
1.
2.
- Java中两种String对象创建和初始化…
- Java中两种String对象创建和初始化方式比较
- Java中两种String对象创建和初始化方式比较
- Java:对象创建和初始化过程
- Java:对象创建和初始化过程
- JAVA中对象创建和初始化过程
- JAVA中对象创建和初始化过程
- JAVA中对象创建和初始化过程
- JAVA中对象创建和初始化过程
- Java:对象创建和初始化过程
- java对象的创建和初始化
- Java:对象创建和初始化过程
- Java:对象创建和初始化过程
- Java:对象创建和初始化过程
- java string 创建对象
- Java String 创建对象
- java创建对象时初始化
- [转]JAVA中对象创建和初始化过程
- 配置windows OpenSSH
- fckeditor编辑转换成json出错
- Java的小数点后精度计算
- 简易四则运算,利用中缀转后缀表达…
- Java值传递还是引用传递
- Java中两种String对象创建和初始化…
- js操作json的一些方法以及注意点及清缓存的方式
- 加密工具类(持续更新中....)
- chenckbox与后面文字联合点击
- qianrushikaifawangzhan
- 图像处理之小波变换
- android 限帧
- 最近建了一个专门做个ApkDemo的技术博客【ApkDemo.com】
- LeetCode 120 Search in Rotated Sorted Array