1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用类型。因为字符串常量池。
2.什么情况下会用到Static关键字?
1.静态变量:
当分析对象中所具备的成员变量的值都是相同的。这时这个成员就可以被静态修饰。
只要是数据在对象中都是不同的,就是对象的特有数据,必须存储在对象中,是非静态的。
如果是相同的数据,对象不需要做修改,只需要使用即可,不需要存储在对象中,是静态的。
2.静态函数。
函数是否用静态修饰,就参考一点,就是该函数功能是否有访问到对象中特有的数据。
简单来说,从源代码看,该功能是否需要访问非静态的成员变量,如果需要,该功能就是非静态的。如果不需要,就可以将该功能定义成静态的。当然,也可以定义成非静态,但是非静态需要被对象调用,而仅创建对象是没有意义的。 3.静态代码块。 随着类的调用或创建实例而执行,而且只执行一次。 作用: 用于给类进行初始化。
3.静态代码块会在什么时候执行? 随着类的调用或创建实例而执行,而且只执行一次。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建? 两个对象。“adc”在堆内存的字符串常量池,s在堆内存中。 String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
一个。在堆内存的字符串常量池中。
|