package com.swift; import java.util.Date; public class Getclass_Test extends Date { public static void main(String[] args) { new Getclass_Test().test(); } public void test() { System.out.println(new String("abc").equals(new String("abc"…
不可变类的意思是创建该类的实例后,该实例的实例变量是不可改变的.Java提供的8个包装类和String类都是不可变类.因此String和8个包装类都具有不可变性. 就拿String类来说,通过阅读String类的源码我们可以发现其实整个String类是被final所修饰,而其用来存储值的底层实际上是一个私有final类型的字符数组,因此在JVM运行的时候是把“hello”当成常量存储在运行时常量池内部. public class UnChange { public static void m…
一些常见的面试题: String a = "hello2"; String b = "hello" + 2; System.out.println(a == b); a == b输出true.很明显b在编译时就被优化成"hello2",因此在运行期间,a和b指向的是统一对象 String a = "hello2"; String b = "hello"; String c = b + 2; System.o…
笔试题: String strA = new String("123123");这一行中创建了几个String对象?? public class StringHeapCountTest { public static void main(String[] args) { String strA = new String("123123"); System.out.println(1); } } 这个题主要考察应试者对java内存结构(堆.非堆.栈.本地方法栈).堆中…
1.String类概念 (1)String是final的,不可被继承.public final class String.String是的本质是字符数组char[], 并且其值不可改变.private final char value[]; (2)Java运行时会维护一个String Pool(String池).String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复.而一般对象不存在这个缓冲池,仅仅存在于方法的堆栈区. (3)创建字符串的方式很多,归纳起来有三类:(1)使用…
1 String 基础 想要了解一个类,最好的办法就是看这个类的源代码,String类源代码如下: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for t…
一.String类是什么 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for the string */ private int hash; // Def…