JAVA笔记-String笔记(常量池)
来源:互联网 发布:云计算的案例 编辑:程序博客网 时间:2024/06/08 02:54
测试代码及注释如下:(仅供学习)
package day01;/** * 字符串在创建对象时,推荐使用字面量形式 * 创建。因为在使用字面量创建时,若创建内容 * 相同的字符串时会重用对象,减少内存开销。 * 由于内容相同的字符串会重用对象,所以java * 要求字符串对象是不变对象,即:字符串对象 * 一旦创建,内容不可改变。若要改变字符串内容 * 则会创建新对象。 * @author Administrator * */public class StringDemo1 { public static void main(String[] args) { /* * 使用字面量形式创建字符串才会 * 重用对象 */ String s1 = "123abc"; String s2 = "123abc"; String s3 = "123abc"; System.out.println(s1==s2);//true s1 = s1+"!"; System.out.println(s1);//123abc! System.out.println(s2);//123abc System.out.println(s1==s2);//false String s4 = new String("123abc");//新建了对象 System.out.println(s2==s4);//false /* * 编译器在编译程序时,若发现一个 * 计算表达式计算符两边的内容都是 * 字面量,会直接进行计算,并将结果 * 编译到class文件中,所以下面代码 * 在class文件中的样子是: * String s5 = "123abc"; */ String s5 = "123"+"abc"; System.out.println(s2==s5);//true String s = "123"; String s6 = s+"abc";//变量s System.out.println(s2==s6);//false final String s7 = "123"; String s8 = s7 + "abc"; //因为因为s7是final的String,所以在编译时是可以确定的 //所以编译器会直接将s7替换成"123"> /*4.final修饰属性,当final变量是基本数据类型以及String类型时,> 如果在编译期间能知道它的确切值,则编译器会把它当做编译期常量使用。> */ System.out.println(s8 == s2);//true }}
0 0
- JAVA笔记-String笔记(常量池)
- java 常量池笔记
- Java 多线程学习笔记(七)数据类型String的常量池特性
- String Java常量池
- JAVA--String常量池
- Java堆.栈和常量池 笔记
- Java堆.栈和常量池 笔记
- Java堆.栈和常量池 笔记
- Java堆.栈和常量池 笔记
- Java堆.栈和常量池 笔记
- Java笔记之常量池浅析
- Java笔记(变量&常量&数据类型)
- java中String常量池
- java String的常量池
- Java 常量池与String
- JAVA中的String常量池
- java : String 与常量池
- JAVA 常量池与String
- Android设置背景色
- 史上营销的五大案例思想
- C#控制台 要使用TextWriter 要使用using System.IO
- Python学习笔记8:Python条件和循环
- ubuntu 12.04编译全志 SDK——FAQ
- JAVA笔记-String笔记(常量池)
- C语言中的static
- Python 元组 (教程 1)
- IOS常用代码总结 - 第三方库部分
- LeetCode题解:4. Median of Two Sorted Arrays
- ln 命令使用参数详解(ln -s 软链接)
- ffmpeg compile
- Microsoft HoloLens 技术解谜(上)
- 图片搜索网站大全