A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

转载的  感觉简单明了
  1. /**
  2. 假如有外部类调用了该类,代码为:new StaticTest();
  3. 那么下面是类属性的加载顺序
  4. */
  5. public class StaticTest{

  6. public int dsd=2;//第3 //多个对象会有多次分配内存
  7. public awds() {
  8. int sdsfsd=2;//第4 //多个对象会有多次分配内存
  9. }


  10. //静态代码块
  11. static{
  12. System.out.println("静态代码块正在加载...");//第1
  13. }
  14. public static int d=2;//第2 内存只被分配一次
  15. public final static int u = 3; //内存只被分配一次 且不可修改值
  16. public void test() {//不会被加载
  17. int sdsfsd=2;//不会被加载
  18. new String ("kjj");//不会被加载 多次调用会有多次分配内存
  19. }

  20. String s1 = "a";//内存只被分配一次
  21. String s2 = "b"; //内存只被分配一次
  22. String s3 = "ab"; //内存只被分配一次
  23. String s4 = s1 + s2; // 多次调用会有多次分配内存
  24. String s5 = "a" + "b"; //内存只被分配一次
  25. String s6 = s1 + "b"; // 多次调用会有多次分配内存
  26. StringBuffer s7 = new StringBuffer("abc"); // 多次调用会有多次分配内存


  27. String s8 = s7.substring(3);
  28. StringBuffer s9 = new StringBuffer("abc");

  29. System.out.println((s3 == s4));//false
  30. System.out.println(s3 == s5);//true
  31. System.out.println(s3 == s6);//false
  32. System.out.println(s4 == s6);//false
  33. System.out.println((s4 == s8));//false
  34. System.out.println((s7.toString() == s9.toString()));//false

  35. System.out.println((s1 + s2)==(s1 + s2));//false
  36. System.out.println((s1 + "b")==(s1 + "b"));//false

  37. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马