Java学习笔记一:基本语法:类和对象的介绍、数组、引用类型

来源:互联网 发布:联通网络机顶盒破解 编辑:程序博客网 时间:2024/05/18 01:29

类和对象的介绍

类是Java支持的五种引用类型之一(五种引用类型是:类、数组、枚举、接口、注解)。
类是一种数据类型,而类表示的值是对象
声明对象不会创建这个对象,必须使用new运算符。除此之外,还有一些其它的方式来创建对象:

  • 有些符合特定条件的类很重要,Java定义了专用的字面量句法,用于创建这些类型的对象。
  • Java支持动态加载机制,允许程序动态加载类和创建对象
  • 对象还可以通过反序列化来创建。对象的状态可以保存或序列化到文件中,然后使用java.io.ObjectInputStream类来重新创建。

上面提到了字面量句法,下面进行介绍:

  1. 字符串字面量,方法是把字符放在双引号之间。
  2. 类型字面量,Class类的实例表示一种Java数据类型,而且包含所表达类型的元数据。若想使用Class字面量,要在数据类型后面加上.class。例如:
    Class<?>typeInt = int.class;
    Class<?>typeIntArray = int[].class;
    Class<?>typePoint = Point.class;
  3. null引用,null关键字是一种特殊的字面量,引用不存在的值,或者不引用任何值。

lambda表达式,语法如下:

(paramlist) -> {statements}



数组

Java中,和创建对象一样,使用new关键字创建数组。
每个元素都会自动初始化,初始值和类中的字段的默认值相同:

  • boolean : false
  • char : \u0000
  • 整数元素 :0
  • 浮点元素 : 0.0
  • 引用类型 : null

所有数组类型都实现了Cloneable接口,任何数组都能调用clone()方法来复制自己。(注意,返回值必须校正成适当的数组类型

int[] data = {1,2,3};int[] copy = (int[])data.clone();

clone()方法执行的是浅复制,如果数组元素是引用类型,那么只复制引用。而不复制引用的对象。正因为是浅复制,任何数组都可以被复制。
对整个数组元素进行复制时,使用System.arraycopy()方法,可以假定该方法会在底层硬件中使用高速的块复制方法执行操作。


引用类型

引用类型和基本类型区别:

  • 八种引用类型由Java定义,引用类型由程序员定义
  • 基本类型是单个值,引用类型是聚合类型,可以保存多个基本值或对象
  • 基本值传入方法时,会复制表示这个值的字节;对象传入时,不会复制该对象的内存,而是把这个对象的引用传入
  • 创建对象时会在堆(heap)上动态分配内存,如果不再使用这个对 象,该内存会被自动回收
int x=42;int y =x;

运行上面代码后,整数42会有两个独立的副本。

Point p = new Point(1.0,2.0);Point q = p;

执行上面的代码后,Java虚拟机内部仍然只有一个Point对象副本。

对象比较

相等运算符(==)比较基本值时,只测试两个值是否完全一样。而比较引用值时,比较的是引用而不是真正的对象。也就是说,==测试的是两个引用是否指向同一个对象,而不是两个对象内容是否相同。
所有对象都从Object类继承了equal()方法,但是默认是使用==测试引用是否相等

注:比较数组是否相等可以使用java.util.Arrays.equal()方法


包和Java命名空间

包由一些具名的类、接口和其他引用类型组成,目的是把相关的类组织在一起,并为这些类定义命名空间。
Java平台的核心类放在以java开头的包中。如:基本类:java.lang、实用类:java.util、输入输出:java.io、网络类:java.net


包的声明

Java使用package声明类所属的包。package必须是Java代码的第一个标记。如:

package org.apache.commons.net;

若无package指令,那么这个文件中所有的类都属于一个无名的包。
默认在Java中引用类或接口时,必须使用类型的完全限定名称,即包含包名。不过这个规则有三个例外:

  1. java.lang中的类型很重要也很常用,因此始终可以使用简称引用
  2. p.T类型中的代码可以使用简称引用 p包中定义的其他类型
  3. 已经使用import声明导入命名空间的类型,可以使用简称引用

类型的导入

import声明必须放在Java文件的开头,紧随在package声明之后。
import声明有两种格式:

  1. 导入单个类型:import java.io.File;
  2. 按需导入:import java.io.*;//java.io包中的类都可以使用简称
    注:按需导入的句法对子包无效

导入静态成员

使用import static导入类型中的静态成员,与上述类似,也支持单个导入和按需导入。import static一个重要作用是把常量导入代码,特别是导入枚举。

注:从多个不同类型中导入同名的静态方法也是合法的,只要方法签名不同。


Java文件结构

java文件限制:

  1. 一个文件中最多只能有一个声明为public的顶层类。一个类中,可以有多个声明为public的嵌套类或内部类。
  2. Java文件名必须和文件中顶层public类的名称相同
  3. Java程序入口为一个特殊方法:
    public static void main(String[] args)
0 0