zoukankan      html  css  js  c++  java
  • 抽象数据类型:将 不 同 的 数据类型集合组成起来 来描述一种新事物。

    类:由 成员变量方法 组成。

    成员变量:描述对象共同的数据结构。

    方法:描述对象的行为。

    面向对象:以对象为核心来构建系统。

    引用变形对象:对实例化对象进行访问。

    引用对成员变量访问和方法的调用。

    引用类型变量的赋值:

       引用类型变量储存的是对象的地址信息。对引用类型变量的赋值, 除了使用上面的new关键字以外,还可以有另外一种赋值方式, 即:相同类型的引用类型变量之间相互赋值。

      

    1. Emp e1 = new Emp();
    2. Emp e2 = e1; //将e1的值(对象的地址信息)赋给e2,e2和e1指向相同的对象。
    3. e1.name =“黄河大虾”;
    4. e2.name = “白发馍女”;
    5. System.out.println(e1.name);

    该引e1与e2两个引用指向同一个对象。

    方法的重载:方法名相同参数列表不同。

    签名:包含方法名和参数列表。

    构造方法:初始化成员变量。

    1. class Cell {
    2. int row ;
    3. int col ;
    4. public Cell (int row1 , int col1){
    5.         row = row1;
    6. col = col1;
    7. }
    8. }
    9. class TestCell {
    10. public static void main(String args[ ] ){
    11. Cell c1 = new Cell( 15 , 6 );
    12.      printCell(c1);
    13. }
    14. }

     this关键字:this关键字用在方法体中,用于指代调用该方法的当前对象.

    引用类型  数组:

          数组是对象,数组的元素可以看成 数组对象的成员变量。数组对象储存在堆中。

    对象内存管理: 

          在JAVA中,有java程序、虚拟机、操作系统三个层次,其中java程序与虚拟机交互,而虚拟机与操作系统交互。编译好的java字节码文件运行在JVM中。

    程序中无论代码还是数据,都需要存储在内存中,而java程序所需内存均由JVM进行管理分配,开发者只需关心JVM是如何管理内存的,而无需关注某种操作系统是如何管理内存的,这就保证了java程序的平台无关性。

    JVM会将申请的内存从逻辑上划分为三个区域:堆、栈、方法区。这三个区域分别用于存储不同的数据。

       

       对象储存在堆中,引用数据类型储存在栈中。

    1. Cell c = new Cell ();

    成员变量的声明周期:

       

        那么当一个对象没有任何引用时,该对象被视为废弃的对象,属于被回收的范围,同时该对象中的所有成员变量也随之被回收。

    可以这样认为,成员变量的生命周期为:从对象在堆中创建开始到对象从堆中被回收结束。

     垃圾回收机制:    

    垃圾回收器(Garbage Collection,GC)是JVM自带的一个线程(自动运行着的程序),用于回收没有任何引用所指向的对象

    GC线程会从栈中的引用变量开始跟踪,从而判定哪些内存是正在使用的,若GC无法跟踪到某一块堆内存,那么GC就认为这块内存不再使用了,即为可回收的。但是,java程序员不用担心内存管理,因为垃圾收集器会自动进行管理。

    栈:

      栈用来储存方法中的局部变量。

      方法中的变量即为局部变量,是在栈内存中分配,若变量为值类型,则在栈中存储的就是该变量的值。若变量为引用类型,则在栈中存储的是堆中对象的地址。

    局部变量的生命周期;

        JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间称为该方法的栈帧。一个栈帧对应一个正在调用中的方法,栈帧中存储了该方法的参数、局部变量等数据。当某一个方法调用完成后,其对应的栈帧将被清除,局部变量即失效。

    方法区:

        用于储存类的基本信息(属性和方法)

      

    1. Cell c = new Cell();
    2. 程序在执行这句话时,Cell类首先被装载到JVM的方法区,其中包括类的基本信息和方法定义等
    3.  

     

    访问控制符

         

     

    static  修饰成员变量

         当创建对象后,成员变量是存储在堆中的,而static成员变量和类的信息一起存储在方法区, 而不是在堆中。

      在static方法中不能对非static成员(对象成员)进行访问。

         static方法的作用在于提供一些“工具方法”和“工厂方法”  比如工具类

         static块为属于类的代码块,在类加载期间执行的代码块,只执行一次,可以用来在软件中加载静态资源(图像、音频等等)。如下代码演示了static块的执行:

    final关键字

        修饰成员变量:final关键字修饰变量,意为不可改变。final可以修饰成员变量,也可以修饰局部变量,当final修饰成员变量时。

     final关键字修饰的方法不可以被重写。使一个方法不能被重写的意义在于:防止子类在定义新方法时造成的“不经意”重写。

       final关键字修饰的类不可以被继承。使一个类不能被继承的意义在于:可以保护类不被继承修改,可以控制滥用继承对系统造成的危害

    static final 修饰的成员变量称为常量,必须声明同时初始化,并且不可被改变。常量建议所有字母大写。

    实际应用中应用率较广,因为static final常量是在编译期被替换的

  • 相关阅读:
    【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 15—Anomaly Detection异常检测
    【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 14—Dimensionality Reduction 降维
    【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 13—Clustering 聚类
    【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机
    【原】机器学习公开课 目录(课程笔记、测验习题答案、编程作业源码)...持续更新...
    【原】Coursera—Andrew Ng机器学习—Week 11 习题—Photo OCR
    【原】Coursera—Andrew Ng机器学习—Week 10 习题—大规模机器学习
    【原】Coursera—Andrew Ng机器学习—Week 9 习题—异常检测
    【原】Coursera—Andrew Ng机器学习—Week 8 习题—聚类 和 降维
    【原】Coursera—Andrew Ng机器学习—Week 7 习题—支持向量机SVM
  • 原文地址:https://www.cnblogs.com/jcfxl/p/5722245.html
Copyright © 2011-2022 走看看