Java的scjp_java scjp

String str1=

"abc"

;

String str2=

"abc"

;

String str3=

"ab"

+

"c"

;

String str4=

new

String(str2);

str1 ==

str3

str3通过编译优化,与str1引用自同一个对象

/str4因为是在堆中重新分配的另一个对象,所以它的引用与str1不同

str1 ==

str4

@SuppressWarnings("deprecation")

public class A {

{

System.out.println("A");

}

static{

System.out.println("X");

}

A(){

System.out.println("1");

}

}

public class B extends A {

String  aaaString ="aa";

{

System.out.println("B");

}

static{

System.out.println("Y");

}

B(){

System.out.println("2");

}

public static void main(String[] args) {

A  a  = new  B();  // XYA1B2

B  b   = new B();  // A1B2

}

}

static代码块

static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,

它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,

JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次

类的初始化顺序:

父类静态语句块

子类静态语句块

父类普通语句块

父类构造方法

子类普通语句块

子类构造方法

public class A {

public A() {

p();

}

protected void p() {

System.out.println("A");

}

}

class B extends A {

@Override

protected void p() {

System.out.println("B");

}

public static void main(String[] args) {

new B();

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-04-18 16:25

浏览 520

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值