zoukankan      html  css  js  c++  java
  • java面试题(1):

    最近准备面一家新的公司。总结了一下之前的java面试题,具体内容如下,大家共同学习。

    class A{

      static int id0;  //静态成员变量id0;

      int  id1 ;    //非静态成员变量id1

      //静态代码块

      static{

      }

      //构造代码块

      {

      }

      //静态方法

      static void xxx(){

      }

      //非静态方法

      void xxxxx(){

      }

      //构造函数

      public A(){

      ....

      }  

    }

    对于一个java类,类加载的时候,首先是将字节码文件加载进入JVM虚拟机中去。静态代码块是在类加载的时候就进行初始化调用了,静态成员变量在加载的时候也是对所有的字段进行赋默认值。

    public class SingleTon{

      private static SingleTon singleTon = new SingleTon();

      private static int count1 ;

      private static int count2= 0 ;

      private SingleTon(){

      count1++;

      count2++;

      }

      public static SingleTon getInstance(){

        return singleTon;

      }

    }

    1.加载到虚拟机的时候,第一阶段是对静态成员变量赋默认值

    -----------------------------------------

      singleTon = null;

      count1=0;

      count2=0;

    2.静态代码块和静态成员变量的赋值操作,整个执行过程从上到下执行

    --------------------------------------------------------------------------------------------

      private static SingleTon singleTon = new SingleTon();

      上面这句话分为两个动作:1.static {  singleTon = new SingleTon();

        }

      [singleTon=new SingleTon();]

      count1=1;//调用了构造函数,所以count1=1;

      count2=1;//同样的调用了构造函数,所以count2=1

      [count2=0]

      count2=0;

    最后返回值为1,0

      

  • 相关阅读:
    4.2 省选模拟赛 流浪者 容斥dp
    4.2 省选模拟赛 旅行路线 广义SAM
    4.2 省选模拟赛 摆棋子 网络流 最大流/上下界最小流
    bzoj 4316 小C的独立集
    CF R630 div2 1332 E Height All the Same
    C++多线程の条件变量
    c++多线程のunique和lazy initation
    c++多线程の死锁与防止死锁
    c++多线程の数据竞争和互斥对象
    c++的多线程和多进程
  • 原文地址:https://www.cnblogs.com/stone-learning/p/9257296.html
Copyright © 2011-2022 走看看