java的特点
可移植性
.java 文件----编译成为.class文件
.class文件是字节码文件不是机器码文件不能直接读取,半成品。
JVM将字节码文件转换成机器码文件,可以平台运行
java为各个平台都提供了对应版本的JVM,所以可移植性。
面向对象、自动回收、健壮性、简单性
对象:万物皆对象
类:对象的蓝图,对象是类实例化产生
引用:类似于指针的概念
类组成:
【访问权限修饰符】【修饰符】class类名{
类体
}
属性、方法
方法重载:同名不同参数,增强可读性
构造方法:名字与类名相同、无返回值
无参的构造方法只有没有手动生成构造方法的时候才默认存在
包:
物理上是文件夹,逻辑上是有逻辑关系的类的集合
作用:避免类重名、控制访问权限
访问权限修饰符
权限: 本类 同包 子类 任意
public 1 1 1 1
protect 1 1 1
default 1 1
private 1
封装:
信息隐藏技术
含义:将属性和方法结合在一起、隐藏对象的内部结构
做法:private声明属性 public 方法操作属性(getter、setter)
static
static属性是类的所有对象共享的。可以使用对象调用也可以类名调用
static方法多了一点:不能直接使用非静态的属性和方法
由于非静态的方法和属性都是与哪个对象相关联的,要保证程序正常运行,要保证调用的每一个非静态的属性和方法都明确其隶属于哪个对象。而静态方法不属于任何一个对象,所以静态方法不能直接使用非静态的属性和方法。
final
编译器常量: final声明常量的同时给常量赋值,后面就不能更改了
运行期常量:final声明,第一次赋值后不能更改了。
党法生重名现象,java采用就近原则,即默认情况下使用最近的变量。
可以使用this关键字区分同名属性和局部变量
数据类型:
整形:byte short int long (整数默认以int形式存储) 长度:8 16 32 64
浮点型:float double 长度:32 64
布尔型: boolean
字符型: char
不是基本数据类型的就是引用数据类型
强转: float f=(float)3.2;
使用=赋值与使用new关键字赋值的区别:
使用=赋值,不会每次都创建新的对象,而是从实例池中查找实例相同的序列赋值给引用,如果不存在序列相同的实例,初始化新的实例并放入实例池中
new 创建新的对象,即使序列相同,也会分配不同的内存空间,初始化不同的对象。
包装器类型:
对应前面的8大基本数据类型:Byte、Short、Integer、Long、Float、Double、Boolean、Character
值传递:基本数据类型传递的是值的拷贝,即value;引用类型传递的是虚地址,即reference