⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringexample.java

📁 主要是java书上的一些代码
💻 JAVA
字号:
//: StringExample.java

//package g3ds.joop.ch3;

public class StringExample{
	public static void main(String[] args) {
		//字符串快速创建方式,直接访问字符串常量池
		String hello = "Hello", lo = "lo";
		
		System.out.println("使用字符串常量池中对象的情况:");
		//同一个类中快速创建的字符串引用池中同一对象
		System.out.print((hello == "Hello") + " ");
		//同一个包中快速创建的字符串引用池中同一对象
		System.out.print((Other.hello == hello) + " ");
		//不同包中快速创建的字符串引用池中同一对象
		System.out.print((g3ds.joop.ch3.otherPackage.StringCase.hello == hello) + " ");
		//快速创建的字符串连接在编译时即计算为一个字符串,也引用池中同一对象
		System.out.print((hello == ("Hel"+"lo")) + " ");
		//String.intern()方法可以引用池中与当前字符串内容相同的String对象
		System.out.println(hello == ("Hel"+lo).intern());
		
		System.out.println("不是使用字符串常量池中对象的情况:");		
		//用常规new创建字符串对象,不引用池中相应的对象
		String helloNew=new String("hello");
		System.out.print((hello == helloNew) + " ");
		//快速创建的字符串与字符串变量连接,其结果在运行时计算,等同于用new创建
		System.out.println((hello == ("Hel"+lo)) + " ");
		
		System.out.println("字符串内容不可被改变的例子:");
		//声明helloCopy引用池中字符串"hello"对象
		String helloCopy = hello;
		System.out.println("改变hello内容之前helloCopy的内容:"+helloCopy);
		//改变hello的内容
		hello="Hello World";
		//如果是池中字符串对象的内容被改变,则helloCopy的内容也应跟着改变,实际并非如此
		System.out.println("改变hello内容之后helloCopy的内容:"+helloCopy);
		//可以再声明一个变量helloWorld引用池中字符串"Hello World"对象,其引用与hello相同
		String helloWorld="Hello World";
		System.out.println("在池中创建一个新的对象:"+(hello==helloWorld));
		//一种更像更改String对象内容的写法如下,实际上也是创建一个新的对象
		helloCopy+=" World";
		System.out.println("运行时运算创建一个新的对象,不从池中引用:"+(helloCopy!=helloWorld));
	}
}

class Other { 
	//如果在同一个JVM中调用快速创建的String对象,都从一个池中引用
	static String hello = "Hello"; 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -