输出结果和解释-java这道题能帮我解答下么?最好能每行注释一下。麻烦各位大神

问题描述

java这道题能帮我解答下么?最好能每行注释一下。麻烦各位大神

public class StaticTest {
static int x=1; int y;
StaticTest(){ y++; }

public static void main(String args[ ]){

StaticTest st=new StaticTest();

System.out.println("x=" + x);
System.out.println("st.y=" + st.y);

st=new StaticTest();

System.out.println("st.y=" + st.y);

}

static { x++;}

}

解决方案

 public class StaticTest {
static int x=1;//静态变量,类加载时执行,只会执行一次
int y; //保存成员变量,没有赋值,默认为0
StaticTest(){ y++; }//构造方法

public static void main(String args[ ]){//main函数,程序执行入口

StaticTest st=new StaticTest();//这里实例化前执行加载,所以x=2.然后执行构造函数y=1

System.out.println("x=" + x);//x=2
System.out.println("st.y=" + st.y);//y=1

st=new StaticTest();//新的类,但是类加载只执行一次,所以x=2.同进,执行构造函数y=1

System.out.println("st.y=" + st.y);//y=1

}

static { x++;}//静态代码端,类加载时执行
}

解决方案二:

为什么没有初始化y的值?

解决方案三:

public class StaticTest {

static int x = 1; //定义静态整形变量x,并初始化赋值为1
int y;//定义变量y,默认值为0

/**
 * 构造方法,给y赋值为1
 */
StaticTest() {
    y++;
}

public static void main(String args[]) {

    //构造StaticTest类的一个实例 st
    StaticTest st = new StaticTest();

    System.out.println("x=" + x);//输出x 值为
    System.out.println("st.y=" + st.y);//输出y

    st = new StaticTest();//这个就没有必要了~~

    System.out.println("st.y=" + st.y);//输出y

}

//静态块,会在类初始话的的时候就加载,所以输出的x会是2
static {
    x++;
}

}

时间: 2024-08-04 04:43:36

输出结果和解释-java这道题能帮我解答下么?最好能每行注释一下。麻烦各位大神的相关文章

java对hbase读取数据时运行代码到new htable就不动了,会的大神们可以加Q

问题描述 java对hbase读取数据时运行代码到new htable就不动了,会的大神们可以加Q 解决方案 有人么 大神们 帮忙看看

java学生信息管理系统在删除信息的时候遇到了问题,代码如下,求大神。

问题描述 java学生信息管理系统在删除信息的时候遇到了问题,代码如下,求大神. 这是代码 主类 public class Main { public static void main(String[] args) throws FileNotFoundException { int i = 0; Manage m=new Manage(); Scanner sc=new Scanner(System.in); ArrayList List=new ArrayList<Student>();

用java实现这个计算器为什么不能用(点击按钮为啥没反应),求大神解答??

问题描述 用java实现这个计算器为什么不能用(点击按钮为啥没反应),求大神解答?? import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JP

java中空字符串可以用indexOf么?如果用了是不是会报错?请教大神

问题描述 java中空字符串可以用indexOf么?如果用了是不是会报错?请教大神 java中空字符串可以用indexOf么?如果用了是不是会报错?请教大神 解决方案 可以啊,只要是非null的字符串类型的变量都可以调用string类的这个方法的. 解决方案二: public class NullStringTest { public static void main(String[] args) { String s1 = null; //空指针异常 // System.out.println

eclipse导入-Java小白,eclipse中导入图形界面包就会出错,程序没有问题,请大神指点。

问题描述 Java小白,eclipse中导入图形界面包就会出错,程序没有问题,请大神指点. Description Resource Path Location Type Access restriction: The type JOptionPane is not accessible due to restriction on required library C:Program FilesJavajre1.8.0_20librt.jar dialog.java /myjava3/src l

图片-java菜鸟的小问题麻烦各位大神了

问题描述 java菜鸟的小问题麻烦各位大神了 解决方案 json需要解析,不能直接转换成字符串 解决方案二: http://suipian1029.iteye.com/blog/2002536 解决方案三: ## 额 冒昧的问一下 那需要怎么做?**** 解决方案四: 有JSONObject.tostring方法的吧

java程序在eclipse运行下出错,但是在cmd可以正常运行,求大神!

问题描述 java程序在eclipse运行下出错,但是在cmd可以正常运行,求大神! 源代码: class Person{ private String name; private String location; Person(String name){ this.name = name; location = "beijing"; } Person(String name,String location){ this.name = name; this.location = loc

java中使用poi导出Excel,在2003版Excel中乱码的问题,求大神解答

问题描述 java中使用poi导出Excel,在2003版Excel中乱码的问题,求大神解答 问题如下.在系统中使用poi导出Excel,在别人的电脑上2010版的Excel中可以正常打开,在我本人电脑上的2003打开就是乱码,一开始查找资料是poi的jar包版本问题.系统上的poi jar包是3.0.整个系统的jar包不敢乱更换,所以只能别的方式修改.在Action中有转码语句: res.setHeader("Content-disposition", "attachmen

java ee-没有C币,第一次提问,这个问题困扰很久了,请大神帮忙协助解决,谢谢!

问题描述 没有C币,第一次提问,这个问题困扰很久了,请大神帮忙协助解决,谢谢! 单独建立项目同样的配置不会出现这个问题,与spring mvc+mybatis框放在一起就会报这个错. <servlet> <servlet-name>Rest Servlet</servlet-name> <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-cl