1.基本数据类型
字节型 | byte | 1 | 0 |
布尔型 | boolean | 1 | false |
短整型 | short | 2 | 0 |
字符型 | char | 2 | null |
整型 | int | 4 | 0 |
单精度浮点型 | float | 4 | 0.0F |
双精度浮点型 | double | 8 | 0.0 |
长整型 | long | 8 | 0L |
2.私有修饰符
在类的外部无法访问到类内部的私有成员,可通过创建公共成员——同类中public所修饰的方法,用于对私有变量进行操作
3.方法的重载:
重载是指在同一个类内具有相同名称的多个方法,这多个同名方法或参数个数不同或参数个数不同,不允许参数个数或类型完全相同而只有返回值类型不同的重载
4.构造方法:
它是在对象被创建时初始化对象成员的方法,构造方法的名称必须与它所在的类名完全相同。构造方法没有返回值但在定义构造方法时,方法名前不能用void来修饰,这是因为一个类的构造方法的返回值类型就是该类本身,构造方法一般不能由编程人员显式调用,而是用new来调用,在创建一个类的对象的同时,系统会自动调用该类的构造方法为新对象初始化。//public Cylinder(如果class前有public修饰则默认的构造方法也会是public的)
在某一个构造方法内调用另一个·构造方法时,必须使用this()语句来调用且this()语句必须写在构造方法内的第一行位置
私有构造方法则无法在该构造方法所在的类以外的地方被调用
5.实例静态
static可以修饰类中成员。被static修饰的成员称为静态成员,也称为类成员,而不用static修饰的成员称为实例成员:
实例
在类定义中如果成员变量或成员方法没有用static来修饰,则该成员就是实例成员。所创建的对象有各自存储空间来保存自己的值,不与其他对象共享——这种特性的成员变量称为实例变量
必须先创建对象,再利用对象来调用方法,而无法不通过对象而直接去调用方法——具有此特性的方法称为实例方法由此可知,实例成员属个别对象所有,彼此之间不能共享
静态
用static修饰的成员变量称为静态变量,静态变量是隶属于类的变量,而不属于任何一个类的具体对象,静态变量不是保存在某个对象实例的内存空间中,而是保存在类的内存空间的公共存储单元中。对于类的任何一个对象访问它时,取到的都是一个相同的值,同样类的任意对象去修改它,也都是在对同一个内存单元做操作。静态变量不是私有的就可在类外部进行访问,此时不需要创建一个实例化对象就能使用
类名.静态变量名
对象名.静态变量名
类中若含有静态变量,需独立于方法之外相当于全局变量
用static修饰的成员方法称为静态方法,静态方法的实质是属于整个类的方法,而不加static修饰符的方法是属于某个具体对象的方法,非static方法是属于某个对象的方法,在创建这个对象时,对象的方法在内存中有属于自己专用的代码段;被修饰的方法是属于整个类的,所以它不能操纵和处理属于某个对象的成员,只能处理整个类的成员,即static方法不能访问实例变量和实例方法;不能使用this或super,因为this是代表调用该方法的对象;可以用类名直接调用,也可用某具体对象名调用
静态方法可以在不产生对象的情况下直接以类名调用
main方法:由于java虚拟机需要在类外调用main方法,所以该方法的访问权限必须是public;又因为java虚拟机运行时,系统在开始执行一个程序之前,并没有创建main()方法所在类的实例对象,所以它只能通过类名来调用main方法作为程序入口,因而必须有static修饰
类是在第一次被使用的时候才被装载的,而不是程序启动时就装载程序中用到的所有类,静态初始化器的作用是对整个类完成初始化操作,包括给static成员变量赋值,它在系统内存加载时自动调用一次
6.对象
对象是一种引用型变量,而引用型变量实际上保存的是对象在内存中的首地址,就类型而言它属于类类型的变量。没有运行用new运算符产生新对象,仍然可以对声明的对象进行赋值//volu2=volu1 引用型变量赋值后,这两个引用型变量指向了同一个对象,即同一个地址
当参数是基本数据类型时,是传值方式的调用;当参数是引用变量时,则是传址方式的调用
若要方法返回类类型的变量,只需在方法声明的前面加上要返回的类名即可
类类型的数组:1)声明类类型的数组变量,并用new运算符分配内存空间给数组//Person[ ] per=new Person [3];
2)用new创建新的对象,分配内存空间给它,并让数组元素指向它//per [0]=new Person("张三“,20);
在一个方法中接受类类型数组的形式参数的格式为“类名[ ]数组名”,传递数组时的实参只需给出其数组名即可
7.垃圾回收
java运行环境提供了一个系统的垃圾回收器线程,负责自动回收那些没有被引用的对象所占用的内存
计数器加减到0可回收,不能通过程序强迫垃圾回收器立即执行
java语言具有垃圾自动回收的功能