zoukankan      html  css  js  c++  java
  • Java学习第五天

    一、内存分析

    内存分析:指数据的存储,理解程序执行过程,运行期的行为,不是编译期。

    分类

    栈: 方法栈存储方法的局部变量|形参后进先出

    堆: 对象堆存储new的对象散列存储

    方法区: 特殊的堆,类方法区,存储类的信息,存储不变的信息共享的信息,散列存储

    内存示例:

    publicstaticvoid main(String[] args) {     

            //创建对象

            Pig pig =new Pig();

            pig.color="黑色";

            pig.weight=1000;

            pig.gongDi(); //带了自己的数据

           

            //一个人

            Person p =new Person();

            p.name ="王志勇";

            p.age =18;

            p.gender =true; //true-->男

            p.height =1.92;    

            p.laugh();

           

            //一个人

            Person p2 =new Person();

            p2.name ="老裴";

            p2.laugh();

        }

    引用

    引用名在左边,对象在右边,通过引用访问、改变对象。

    “引用指向了谁?””对象被谁所指向?”

    1、  JAVA一切皆为值传递 (地址的副本)

    2、  一个对象可以有多个引用所指向,当其中一个引用对该对象发生了变化,其他的引用也可见。

    3、  一个引用在同一个时刻只能指向一个对象

    二、构造器

    构造器也成为构造函数,特殊的方法,用于初始化对象信息,为new服务(其他地方不能调用)。创建对象类名引用 =new 构造器;

    1、格式

    修饰符类名([形参列表]){

     }

    注意点

     1)、没有返回值类型|void,可以存在return ,跳出方法

     2)、作用: 初始化对象信息的

     3)、new 创建时调用构造器,与new一起

    2、空构造

    没有参数的构造器,如果没有编写任何构造器,javac自动加入空构造

    一旦加入构造器,javac不再加入,建议,手动加入空构造

    3、构造器重载

    存在多个构造器,构造器之间存在重载,注意: 就近原则,如果方法的局部变量|形参与属性同名,使用 this.区分

     

     

     

    三、this

    1、this:代表调用者本身,在成员方法、构造器中形参隐式传递this,避免发生就近最优原则。

    2、this([实参])构造器首行,调用其他构造器。

    This的用法:1、哪个对象在调用This所在的函数,那么This就等于哪个对象

    2、当定义类功能时,该函数内部需要调用该函数的对象时,用This代表这个对象。

    3、但凡本类功能内部使用了本类对象,都用this表示。

    4、this能调用构造函数,而且只能放在第一行。

    四、static

    是一个修饰符,只能修饰成员(成员变量。成员函数)

    静态的,凡是静态的就是跟对象无关,属于类的;都是对象们共享。修饰以下

    1、  属性–>静态变量类变量

    2、  方法 -->静态方法类方法

    3、  静态块 :在使用类之前加载,仅加载一次

    4、 当成员被静态变量修饰后,就多了一中调用方法,除了可以被对象调用外,还可以直接被类名调用,方法为 类名.静态成员

    5、 随着类的加载而加载

    6、 优先与对象的存在

    7、 被所有对象共享

    需要注意 静态方法只能访问静态成员。非静态方法可以访问静态也可以访问非静态

    静态方法中不可以定义this,super等。

     

    类变量随着类的加载而存在于方法区中,随着类的消失而消失

    实例变量随着对象的建立,存在与堆中。随着对象的消失而消失

     

    主函数是静态的。

    静态的方法|块: 不能直接访问成员信息

    publicclassTestStatic {

        public static inta; //静态变量 类变量

        public int b; //成员变量 实例变量

        publicvoid t(){

           System.out.println("成员方法");

        }

        //静态方法

        publicstaticvoid test(){

           System.out.println("静态方法。。。。。");

           /* 静态的不能直接访问非静态信息

           b =100;

           t();

           */

        }

       

        //静态块: 在使用类之前加载,仅加载一次

        static{

           a =100;

           System.out.println("静态块,加载类信息,初始化类的信息");

        }

       

        publicstaticvoid main(String[] args) {

           inta=200;

           System.out.println(TestStatic.a);

           TestStatic.a =100; //当前类中类.可以省略

           /*TestStatic.*/test(); //调用静态方法

          

          

        }

    }

     

  • 相关阅读:
    最难的事
    性格决定命运,习惯决定未来
    系统构架师之路
    时间是经不起浪费的
    如何投资自己,增加自身价值!
    最好的程序员大多是自学成才的
    杂记
    Win7启动Oracle出错
    推荐代码生成器工具排行
    Hibernate 与 Oracle 11g 的问题
  • 原文地址:https://www.cnblogs.com/yuyufeng/p/5308785.html
Copyright © 2011-2022 走看看