转自:http://www.iteye.com/topic/
- String s1 = “china”;
- String s2 = “china”;
- String s3 = “china”;
- String ss1 = new String(“china”);
- String ss2 = new String(“china”);
- String ss3 = new String(“china”);
这里解释一下黄色这3个箭头,对于通过new产生一个字符串(假设为”china”)时,会先去常量池中查找是否已经有了”china”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”china”对象的拷贝对象。这也就是有道面试题:String s = new String(“xyz”);产生几个对象?一个或两个,如果常量池中原来没有”xyz”,就是两个。
- int i1 = 9;
- int i2 = 9;
- int i3 = 9;
- public static final int INT1 = 9;
- public static final int INT2 = 9;
- public static final int INT3 = 9;
- class BirthDate {
- private int day;
- private int month;
- private int year;
- public BirthDate(int d, int m, int y) {
- day = d;
- month = m;
- year = y;
- }
- 省略get,set方法………
- }
- public class Test{
- public static void main(String args[]){
- int date = 9;
- Test test = new Test();
- test.change(date);
- BirthDate d1= new BirthDate(7,7,1970);
- }
- public void change1(int i){
- i = 1234;
- }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199455.html原文链接:https://javaforall.net

