*****************************基础************************************
1.java是高级的编译语言,继承了c,c++优点,c的高效性,c++面向对象特性。
2.jvm --> 5部件:字节码指令集,寄存器,stack,heap,方法域
内存分配:堆64M 栈64M 方法域64M
3.六大存储区域:
堆:对象、临时变量
栈:知道生命周期的变量
静态存储区域:静态变量、静态块、静态方法
常量存储区域:常量、final修饰的东西
非RAM存储:硬盘
流存储:管道存储
4.对象:描述一个事物,可以是具体的,可以是抽象的。
5.属性:指的是对象的特点。
6.方法:指的是对象的功能。
7.类:是创建对象的模板。类有普通类、抽象类、内部类、匿名类。
类被编译时内部接口都会被加上static修饰符。
8.全局变量:全局范围可以用
9.局部变量:局部范围可以用
10.方法:修饰符+返回值+方法名字+参数列表+方法体
11.方法重载:名字相同,参数列表不同
12.八种基本数据类型:short int long float double char byte boolean
短整型,整型,长整型,单精度,双精度,字符型,字节,布尔
13.程序控制语句:if,if else,for,while,do while;,while do,switch
14.数组:3种定义方法:
String[] str = new String[10];定义不初始化
String[] str = {"dd","ss",aa};定义并初始化
String[] str = new String[]{"dd","ss","aa"};定义并初始化
15.二维数组
16.this:指向本类
17.final:定义类这不能被继承,定义方法则不能被重写,定义变量则不能第二次赋值,不能用来修饰构造方法。
18.static:修饰变量、方法。修饰变量时只能修饰全局变量。使得数据等到共享。在同一个类里调用静态方法不用实例化对象。调用别的类的静态方法或者变量时需要在静态方法、变量前面加上类的索引,这样jvm才知道加载那个类的静态方法和变量。
原理:在jvm加载类的时候同时加载静态关键字修饰的(方法、变量、块)到内存的静态存储区域。
19.单例模式:当这个对象经常给使用的时候,为了节省资源开销把对象进行共享和控制。
1.私有静态对象变量(共享一个对象)
2.静态的对象类型方法(提供对象的实例)
3.私有化构造器(防止别的类来创建对象)
20.构造器:名字和类名相同,没有返回返回值的方法。用于初始化操作。当一个类不写构造方法时候,jvm会自动调用本类的无参构造方法,如果写了构造方法则jvm只是调用写的构造方法。
21.jvm加载顺序
简写 详细
1.分配内存空间 1.分配内存空间
2.初始化变量 2.初始化静态变量
3.构造器 3.加载静态块
4.引用变量赋值 4.加载静态方法(在静态块里被调用的会先加载)
5. 5.初始化普通变量
6. 6.加载构造块
7. 7.加载构造器
8. 8.加载普通方法(在构造块里被调用的会先加载)
9. 9.其他成员
(编译时,构造块内容被嵌入到所有构造方法内部开头,即是构造块先于构造方法。)
在同一进程里面静态的东西可以共享的。需要使用静态东西的时候如果还没有加载则加载,如果已经被加载过了则直接跳过而加载下一项。
*****************************面向对象************************************
1、封装(不写修饰符就是default权限)
原理:基于操作系统文件目录存储结构。
作用:代码重用、方便管理、更新、维护、拓展、权限控制。
作用:public和default可以修饰类、接口。
作用:这四个修饰符可以修饰全局变量,不可以修饰局部变量(除了default)。
作用:这四个修饰符可以修饰类普通的方法。
作用:public、protected、default才能修饰抽象方法。因为抽象方法在抽象类里面,被继承了就要重写,而私有不能被访问,所以矛盾,所以private不可以修饰。
作用:public、default才能修饰接口的方法。(规定的)不管怎么样编译接口后都是接口里面的方法都是public、abstract修饰的。
------------------------------------------------------------------------
作用域 当前类 同一包内 子孙类 其他包
------------------------------------------------------------------------
public √ √ √ √
------------------------------------------------------------------------
protected √ √ √ ×
------------------------------------------------------------------------
default √ √ × ×
------------------------------------------------------------------------
private √ × × ×
------------------------------------------------------------------------
2、继承:是对象之间的层次关系(父类、子类)。需要用到extends关键字。一个类只能有一个父类。
继承的作用:是子类可以直接调用父类的方法,可以重写拓展父类的方法属性。 方法的重写:子类和父类的方法相同(名字、参数列表和返回类型都相同、是否有static修饰也一样)子类的权限不能比父类的小,抛出异常不能比父类大
3、super关键字:是指父类。"super()"语句(即是父类构造函数)必须是子类的构造函数中的第一个执行语句。super可以调用父类的方法和使用父类属性&#