zoukankan      html  css  js  c++  java
  • 作业

    public class Num {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    N n1=new N();   //申请对象n1;
    N n2=new N(); //申请对象n2;
    }

    }
    class N{
    static int num=0;    //用来保存申请个数
    public N()
    {
    num=num+1;
    System.out.println("已经创建对象个数为:"+num);
    }
    }

    public class InitializeBlockDemo {

    /**
    * @param args
    */
    public static void main(String[] args) {

    InitializeBlockClass obj=new InitializeBlockClass();
    System.out.println(obj.field);

    obj=new InitializeBlockClass(300);
    System.out.println(obj.field);
    }

    }

    class InitializeBlockClass{
    //下面这句在初始化块之前与之后,会影响到field字段的初始值
    public int field=100;

    {
    field=200;
    }
    //public int field=100;
    public InitializeBlockClass(int value){
    this.field=value;
    }
    public InitializeBlockClass(){

    }
    }

    java 字段初始化声明一个变量后,最终输出的的结果是最近一次赋值的结果。

    2.

    class Root
    {
    static{
    System.out.println("Root的静态初始化块");
    }
    {
    System.out.println("Root的普通初始化块");
    }
    public Root()
    {
    System.out.println("Root的无参数的构造器");
    }
    }
    class Mid extends Root
    {
    static{
    System.out.println("Mid的静态初始化块");
    }
    {
    System.out.println("Mid的普通初始化块");
    }
    public Mid()
    {
    System.out.println("Mid的无参数的构造器");
    }
    public Mid(String msg)
    {
    //通过this调用同一类中重载的构造器
    this();
    System.out.println("Mid的带参数构造器,其参数值:" + msg);
    }
    }
    class Leaf extends Mid
    {
    static{
    System.out.println("Leaf的静态初始化块");
    }
    {
    System.out.println("Leaf的普通初始化块");
    }
    public Leaf()
    {
    //通过super调用父类中有一个字符串参数的构造器
    super("Java初始化顺序演示");
    System.out.println("执行Leaf的构造器");
    }

    }

    public class TestStaticInitializeBlock
    {
    public static void main(String[] args) 
    {
    new Leaf();

    }
    }

    初始化中首先执行静态初始化,假如存在继承关系则先初始化父类静态函数,在执行子类静态函数,初始换完毕后。执行父类的普通函数和无参构造函数,在执行子类的普通函数和无参构造函数,假如存在有参构造函数,在无参函数执行结束后执行。

    3.

    public class Ceshi {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Jingtai n=new Jingtai();
    n.fangf();

    }

    }
    class Jingtai{
    public int num=1;
    int getNum(){ //用来返回num的值
    return num;
    }
    static void fangf(){
    Jingtai n=new Jingtai();
    System.out.println("静态方法调用成员函数:"+n.getNum());

    }
    }

    可以通过一个方法得到成员函数的值,然后在静态方法中调用即可。

    4.

    public class StrangeIntegerBehavior 
    {


    public static void main(String[] args)
    {


    Integer i1=100;

    Integer j1=100;

    System.out.println(i1==j1);


    Integer i2=129;

    Integer j2=129;

    System.out.println(i2==j2);

    }

    }

    经过javap 对class文件执行并在jdk源文件中发现

    public static Integer valueOf(int i) {

    if (i >= IntegerCache.low && i <= IntegerCache.high)

    return IntegerCache.cache[i + (-IntegerCache.low)];

    return new Integer(i);

    }

    Integer把-128到127的整数都提前实例化了。 导致输出结果一个是true一个是false。

  • 相关阅读:
    [0] RUP、FDD、SCRUM
    [0] Visual studio 2010 快捷键大全
    [0] Node.js
    Laravel开发:Laravel核心——服务容器的细节特性
    Laravel开发:Laravel核心——Ioc服务容器
    Composer的Autoload源码实现2——注册与运行
    Composer的Autoload源码实现1——启动与初始化
    PHP自动加载功能原理解析
    Lumen开发:phpunit单元测试
    php闭包简单实例
  • 原文地址:https://www.cnblogs.com/wmy-666/p/7697759.html
Copyright © 2011-2022 走看看