一、
1.非基本数据类型数据中定义基本数据类型,该基本数据类型会进行默认初始化
2.基本数据类型参数是值的传递,非基本数据类型参数传递的是指针或引用
3.参数数组传递的是引用
4.main(String[] args),主函数调用时,可直接传递参数,例:
d:\>java Test Red Green Blue
5.函数:是为了实现某一特定功能而封装起来的一些语句,具有很强的复用性。
6.定义数据
long型数据定义: long l=123L;
float型数据定义: float f=1.23f;
二、
1.八进制:0开头
2.十六进制:0x开头
3.数据类型
|-基本数据类型
|-数据型
|-整数类型(byte, short, int ,long)
|-浮点类型(float, double)
|-字符型(char)
|-布尔型(boolean)
|-引用数据类型
|-类(class)
|-接口(interface)
|-数组([])
注:
1.整数默认 int
(char 加'', short 直接定义, long 加l)
2.小数默认 double
(float 加f)
3.short
short s = 1;
s += 1; // 正确
s = s + 1; // 错误
三、面向对象
1.局部变量和成员变量
(1)局部变量存在于栈内存
(2)成员变量存在于堆内存
2.参数的传递
(1)基本数据类型传递的是指
(2)引用数据类型传递的引用
3.对象特征
(1)封装
(2)继承
(3)多态
4.对象属性初始化步骤
(1)默认初始化(基本数据类型有默认值,引用数据类型为null)
(2)显示初始化(字段的直接赋值值)
(3)构造函数初始化
5.构造代码块(直接使用{}封装的代码)
作用:可用于所有对象初始化,且先于构造函数
6.main(){
person p = new Person();
}
描述对象p创建的过程中内存中进行了哪些操作。
(1)先将硬盘上的.class文件加载进内存
(2)main方法进栈(压栈),在栈区创建一个变量p
(3)堆内存开辟一个实体空间,分配了一个内存首地址
(4)对该实体空间进行属性的空间分配,并进行默认初始化
(5)对空间中的属性进行显示初始化
(6)进行对实体的构造代码初始化
(7)调用该实体对应的构造函数,进行构造函数初始化
(8)将首地址赋值给p,p变量就引用了该实体,指向了该对象。
7.static
(1)实现对对象中的共性数据的共享
(2)可直接类名调用
(3)静态数据会随着类的加载而加载,且优先于对象的存在
(4)静态方法只能访问静态成员
(5)静态方法中不能使用 this,super 关键字
(6)主函数是静态的
8.方法区(数据共享区)
存储对象的方法和静态变量
9.静态代码块
随着类的加载而执行,且只执行一次,用于类初始化。
10.单例设计模式
(1)饿汉式
public class Single{
// 2.创建唯一对象
private static Single s = new Single();
// 1.私有构造函数,防止创建对象
private Single(){}
// 3.提供公有的访问方式
public static Single getInstance(){
return s;
}
}
(2)懒汉式(延迟加载方式)
public class Single{
private static Single s = null;
private Single(){}
public static Single getInstance(){
if(s == null)
s = new Single();
return s;
}
}
11.this()和super()
两者必须定义在第一行,且二者不可同时出现。
12.抽象关键字 abstract 不与 final private static 关键字共存
13.接口
1.接口中成员有固定修饰符
成员变量默认 public static final 修饰
成员函数默认 public abstract 修饰
2.接口之间可多继承
14.关键字 instanceof
判断对象是否属于某类型,例:
if(a instanceof AA){
// todo
}
15.多态在子类中的成员上的体现
1.成员变量
编译、运行都直接访问父类中成员变量
2.成员函数
编译时看父类,运行时调用子类方法
3.静态函数
编译、运行都看父类
16.内存五片区域
栈、堆、方法区、寄存器、本地方法区
17.对象直接的比较
复写equals()
public boolean equals(Object obj){
if(!(obj instanceof Person)) // 如果参数不是人对象,直接返回false
return false;
Person p = (Person)obj;
return this.age == p.age; // 通过年龄比较
}
18.class对象--字节码文件
19.内部类
1.A类访问B雷中成员,B类需要建立A类对象。
可以通过建立将A定义为B的内部类。
2.非静态内部类不可用定义静态方法。
3.内部类都持有一个外部类的引用--外部类名.this
4.内部类名--外部类名$内部类
20.局部内部类
1.--方法中的内部类
2.从内部类中访问局部变量,该局部变量必须定义为最终类型(final修饰)
java基础知识复习
最新推荐文章于 2022-11-08 18:45:53 发布