《Java编程思想》读后总结(二)

Java里的数据类型

Java里的对象是引用,就像C的指针。对引用的赋值实际就是对指针的赋值,对象自己并无被赋值。java

对象的存储数组

  1. 寄存器-程序没法感知寄存器的存在。经过CPU对寄存器操做。
  2. 堆栈-存放对象引用
  3. 堆-存放对象
  4. 常量存储-存不变常量
  5. 非RAM存储-存持久化数据

基本数据类型:markdown

基本类型 大小 最小值 最大值 包装器类型
boolean - - - Boolean
char 16bit Unicode 0 Unicode 2e16-1 Character
byte 8bit -128 +127 Byte
short 16bit -2e15 +2e15-1 Short
int 32bit -2e31 +2e31-1 Integer
long 64bit -2e63 +2e63-1 Long
float 32bit Float
double 64 Double
void - - - Void

类由字段和方法构成ide

static关键字

对于类的字段,经过new对象的方式为这个字段分配存储空间,这样才能对字段及方法进行访问。用static对类的字段和方法进行修饰后,这样的字段和方法称为静态字段和静态方法。静态字段和静态方法与类的对象不存在绑定关系,便可以在没有建立对象的状况下,经过类直接访问静态字段和静态方法。这是因为静态对象和静态方法在编译期就为它们建立了存储空间。函数

编写一个Java程序

编译器:ideal工具

一些规则

java程序文件的后缀为.javathis

每一个.java文件名最多包含一个public类,也能够没有public类idea

当指定某个类为public时,该类的类名必须与文件名相同spa

关于import

写代码时,须要用到其余类库,最经常使用的就是java自带的类库。使用import来引用类库。一个import的例子:指针

import my.example.java.Test

import的行为是,在classpath中指定的路径里查找my/example/java/Test.class文件,并加载

package

多个java代码能够经过package关键字申明成一个工具包

初始化与清理

构造器

经过new来建立类的对象。每当调用new来建立对象时,java会调用构造器对象进行初始化。初始化完毕,意味着这个对象已经准备好对外提供服务了。

若是一个类没有显式提供构造器,则编译器会为该类自动生成一个默认构造器。

构造器采用与类名相同的名称。

class Rock {
    Rock() { //This is the constructor
        System.out.println("This is the constructor");
    }
}
复制代码

重载

Java支持构造器和方法的重载(不是重写override)

区分重载

方法的签名:方法名+参数列表

经过方法的签名来区分重载,因此返回类型不做为区分重载的因素。

this关键字

对当前对象的引用

有了this关键字能够实如今构造器中调用其余重载构造器,如:

class Rock {
    public int id;
    Rock(int id) {
        this.id = id;
    }
    Rock() {
        this(1);
    }
}
复制代码

初始化

对类变量的初始化有两种方法:

  • 在申明时直接初始化
  • 显式初始化
  • 在构造器内进行初始化

初始化顺序:

经过new建立对象时,对象的初始化顺序:

  1. 对申明的变量进行变量的默认值的初始化:变量的申明能够散落在类的定义的不一样位置,但初始化时,会按申明的前后顺序,完成初始化而后调用构造函数进行初始化;
  2. 调用构造器:若是变量未在申明时就完成初始化,则能够经过构造器完成初始化;
  3. 静态数据的初始化优先于非静态数据;

初始化例子

public class Rock {

    public int id = 1; //initialization when define 
    public String name;
    public static String greeting1;
    public static String greeting2;
    public static int age = 1000;
    static{
        greeting1 = "Hello"; //explicitly initialization
    }

    Rock(String name) {
        this.name = name; // initialization in constructor
        greeting2 = "Hi";
    }

    public String location1 = "Shanghai";

    public String getName(){
        return name;
    }

    public String location2 = "China";

    public String getLocation(){
        return location1 + " - " + location2;
    }

    public void greeting(){
        System.out.println(this.greeting);
    }

    public static void main(String[] args){
        Rock r = new Rock("Robin");
        System.out.println("Name: " + r.getName());
        System.out.println("Location: " + r.getLocation());
        r.greeting();
    }
}
复制代码

数组初始化

可变参数列表
相关文章
相关标签/搜索