Java学习笔记一:基本语法:类和对象的介绍、数组、引用类型
来源:互联网 发布:联通网络机顶盒破解 编辑:程序博客网 时间:2024/05/18 01:29
类和对象的介绍
类是Java支持的五种引用类型之一(五种引用类型是:类、数组、枚举、接口、注解)。
类是一种数据类型,而类表示的值是对象。
声明对象不会创建这个对象,必须使用new运算符。除此之外,还有一些其它的方式来创建对象:
- 有些符合特定条件的类很重要,Java定义了专用的字面量句法,用于创建这些类型的对象。
- Java支持动态加载机制,允许程序动态加载类和创建对象
- 对象还可以通过反序列化来创建。对象的状态可以保存或序列化到文件中,然后使用java.io.ObjectInputStream类来重新创建。
上面提到了字面量句法,下面进行介绍:
- 字符串字面量,方法是把字符放在双引号之间。
- 类型字面量,Class类的实例表示一种Java数据类型,而且包含所表达类型的元数据。若想使用Class字面量,要在数据类型后面加上.class。例如:
Class<?>typeInt = int.class;
Class<?>typeIntArray = int[].class;
Class<?>typePoint = Point.class;
- 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中引用类或接口时,必须使用类型的完全限定名称,即包含包名。不过这个规则有三个例外:
java.lang
中的类型很重要也很常用,因此始终可以使用简称引用p.T
类型中的代码可以使用简称引用 p包中定义的其他类型- 已经使用
import
声明导入命名空间的类型,可以使用简称引用
类型的导入
import
声明必须放在Java文件的开头,紧随在package
声明之后。 import
声明有两种格式:
- 导入单个类型:
import java.io.File;
- 按需导入:
import java.io.*;//java.io包中的类都可以使用简称
注:按需导入的句法对子包无效
导入静态成员
使用import static
导入类型中的静态成员,与上述类似,也支持单个导入和按需导入。import static
一个重要作用是把常量导入代码,特别是导入枚举。
注:从多个不同类型中导入同名的静态方法也是合法的,只要方法签名不同。
Java文件结构
java文件限制:
- 一个文件中最多只能有一个声明为
public
的顶层类。一个类中,可以有多个声明为public的嵌套类或内部类。- Java文件名必须和文件中顶层public类的名称相同
- Java程序入口为一个特殊方法:
public static void main(String[] args)
- Java学习笔记一:基本语法:类和对象的介绍、数组、引用类型
- Java学习笔记(一)synchronized、volatile、环境变量、package、基本数据类型、值类型和引用类型、访问控制、对象引用和对象、static和final
- Kotlin 学习笔记(一) 基本类型和基本语法
- 基本引用类型和对象引用类型的区别
- Java的基本类型和引用类型
- javascript基本语法2 引用类型------数组
- 从零开始的Java学习笔记(一):Java的变量,对象,和引用
- JavaScript学习笔记——基本类型和引用类型
- js学习笔记:基本类型和引用类型
- JAVA IO流实现字节数组与任何基本类型和引用类型的相互转换
- Python学习笔记一 基本语法、变量类型、时间处理
- 常见对象StringBuffer、Arrays类和基本类型包装类+JAVA学习笔记-DAY13
- 面向对象的学习(一)—基本类型和对象类型的区别
- JAVA学习笔记一:数组的基本操作
- c# 学习笔记一 值类型和引用类型
- java中基本数据类型与对象引用类型的默认初始化值学习
- java为基本类型和对象的引用采用的是“值调用”机制
- c++ Premier 学习笔记(unit2 变量和基本类型 -引用
- 和学生们的合影-20160417-wangdongs-wangx
- 4.内存非连续分配管理方式
- 链表的逆序
- 二分法求数组中比X小的元素个数
- Strange fuction
- Java学习笔记一:基本语法:类和对象的介绍、数组、引用类型
- 数据通信基础(物理层)学习笔记
- BCGControlBar使用方法
- AngularJS学习笔记—事件指令
- POJ3176-Cow Bowling
- 第八周项目三 指向学生类的指针
- ibatis 中的#与$
- WebSocket(1)-- WebSocket API简介
- Five-People:常用控件及其属性(RadioButton,CheckBox,align,margin,padding)使用方法