java程序员面试金典--i++
下列程序的输出结果是什么
public class program2 { static { int x = 5; } static int x,y; public static void main(String[] args) { x--; myMethod(); System.out.println(x + y++ + x); } private static void myMethod() { y=x++ + ++x; } }
结果是2。这道题如果不懂以下知识点很难做对啊,不信可以运行试试
static变量(全局变量)的特性 各种属性的加载顺序 i++,++i的区别
static变量的特性
一.静态成员变量 1.属于整个类而不是某个对象实例,所以可以直接通过类名和对象名去调用。 2.静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收 二.属性加载顺序 一般的,执行顺序如下: 父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造方法、 子类非静态变量、子类非静态代码块、子类构造方法。 三.i++,++i的区别 这个就百度吧 接下来说说代码流程 public class program2 { static { int x = 5;//声明一个局部变量,对后面没有影响 } static int x,y;//默认0 public static void main(String[] args) { x--;//x=-1 myMethod(); System.out.println(x + y++ + x);//1+0+1 } private static void myMethod() { y=x++ + ++x;//等价于y=(x++)+(++x)从右向左y = 0+ 0 x = 1; } }
<br /><br /><strong>欢迎加入学习交流群569772982,大家一起学习交流。</strong>
相关推荐
willowwgx 2020-07-27
jkzyx 2020-02-02
零 2020-09-18
Crazyshark 2020-09-05
弱思 2020-08-02
choupiaoyi 2020-07-28
Jaystrong 2020-07-28
zhaowj00 2020-07-05
D先生 2020-07-04
igogo00 2020-06-28
wzxxtt0 2020-06-25
CSSEIKOCS 2020-06-25
THEEYE 2020-06-25
程序员之怒 2020-06-23
harddays 2020-06-21
亦碎流年 2020-06-18
D先生 2020-06-16
tuxlcsdn 2020-06-13