首页 > 代码库 > Java知识点整理——(2)编程基础

Java知识点整理——(2)编程基础

一、Java命名规则

  1. 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。

  2. 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。

二、Java数据类型

  1. 基本数据类型(内置数据类型)

    byte8位、有符号、-128—127,默认值0
    short16位、有符号、-32768—32767,默认值0
    int32位、有符号、-2,147,483,648—2,147,483,647,默认值0
    long64位、有符号、-9,223,372,036,854,775,808—+,默认值0L
    float32位、有符号、符合IEEE 754标准的浮点数,默认值0.0F
    double64位、有符号、符合IEEE 754标准的浮点数,默认值0.0
    boolean1位,true/false,全是小写
    char16位Unicode字符,常量用‘ ‘
    1. Java对Unicode支持采用的是UTF-16的编码实现;在UTF-16下,Java的一个Unicode字符由1或2个char(代码单元)表示。

      UTF-32和Unicode码表基本一一对应,固定四个字节。
      Unicode定义的范围太大了,其实99%的人使用的字符编码不会超过2个字节,所以如果统一用4个字节,数据冗余太大,16位是最好的。遇到超过16位才能表示的字符,可以通过代理技术,采用32位标识。所以现在绝大部分机器实现Unicode采用UTF-16的方案
    2. 整数默认为int型,浮点数默认为double型。

    3. 基本类型的取值范围,已经以常量的形式定义在对应的包装类中。如Byte.SIZE、Byte.MIN_VALUE、Byte.MAX_VALUE。"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。

  2. 引用数据类型

    1. 对象、数组都是引用数据类型。

    2. 所有引用类型的默认值都是null。

    3. 一个引用变量可以用来引用任何与之兼容的类型。

  3. 类型转换

    (1)自动类型转化

           整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级。

    低  ------------------------------------------------------------>  高

    byte、short、char—> int —> long—> float —> double

    (2)强制类型转化

          把容量大的类型转换为容量小的类型时必须使用强制类型转换。

    格式:(type)value

    注:转换的数据类型必须是兼容的;不能对boolean类型进行类型转换。

三、常量

  1. 变量作用域

    (1)局部变量

    1. 局部变量声明在方法、构造方法或者语句块中;

    2. 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;

    3. 访问修饰符不能用于局部变量;

    4. 局部变量只在声明它的方法、构造方法或者语句块中可见;

    5. 局部变量是在栈上分配的。

    6. 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

        (2)成员变量(实例变量)

    1. 实例变量声明在一个类中,但在方法、构造方法和语句块之外;

    2. 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;

    3. 实例变量可以声明在使用前或者使用后;

    4. 访问修饰符可以修饰实例变量;实例变量具有默认值;

    5. 数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。

    6. 实例变量可以直接通过变量名访问。

        (3)类变量(静态变量)

    1. 在类中以static关键字声明,但必须在构造方法和语句块之外。

    2. 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。

    3. 静态变量除了被声明为常量外很少使用。静态变量储存在静态存储区。

    4. 静态变量在程序开始时创建,在程序结束时销毁。

    5. 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。

    6. 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。

    7. 静态变量可以通过:ClassName.VariableName的方式访问。

    8. 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

四、变量

五、修饰符

  1. 访问修饰符

    修饰符用来定义类(接口)、方法或者变量,通常放在语句的最前端。

    修饰符当前类同一包内子孙类
    其他包类
    public
    YYYY
    protected
    YYY
    defaultY

    Y



    privateY


    注:上表空单元行代表N。

    (1)访问控制继承关系

    1. 父类中声明为 public 的方法在子类中也必须为 public。

    2. 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。

    3. 父类中声明为 private 的方法,不能够被继承。

  2. 非访问修饰符

    1. static:用来创建类方法和类变量

      静态变量
      声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被成为类变量。局部变量不能被声明为 static 变量。
      静态方法
      声明独立于对象的静态方法。静态方法不能使用类的非静态变量。
      对类变量和方法的访问可以直接使用classname.variablename 和 classname.methodname 的方式访问。
    2. final:final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

      final 变量
      final 变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象,但是 final 对象里的数据可以被改变,也就是说 final 对象的引用不能改变,但是里面的值可以改变。final 修饰符通常和 static 修饰符一起使用来创建类常量。
      final方法
      类中的 final 方法可以被子类继承,但是不能被子类修改,声明 final 方法的主要目的是防止该方法的内容被修改。
      final类
      final 类不能被继承,没有类能够继承 final 类的任何特性。
    3. abstract:用来创建抽象类和抽象方法。

      abstract方法
      抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成 final 和 static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。抽象方法的声明以分号结尾,例如:public abstract sample();。
      abstract类
      抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类。抽象类可以包含抽象方法和非抽象方法。
    4. synchronized

    5. transient



Java知识点整理——(2)编程基础