Java基础总结
- Java的特点:简单,面对对象,安全,跨平台,支持多线程
- Java语言写的源程序通过Java编译器,编译成与平台无关的’字节码程序’*(.class文件,也就是0,1二进制程序),然后在java解释器中解释执行.
- Jvm是java的核心和基础,在java编译器和os平台之间的虚拟处理器,它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序.
执行过程: 1.加载.class文件 2. 管理并分配内存 3.执行垃圾收集
5.Java中的程序代码都必须在一个类中定义,类使用class关键词来定义.
6.在java中,byte类型数据占1个字节,short类型数据占2个字节,int类型占4个字节,long类型占8个字节.
7.取模运算,符号取决于前面的数字.
8.重载规则:
被重载的方法必须改变参数列表(参数个数和类型不一样)
被重载的方法可以改变返回类型
被重载的方法可以改变访问修饰符
被重载的方法可以声明新的方式或更广的检查异常
方法能在一个类中或者一个子类中被重载
无法以返回值类型作为重载函数的区分标准.
9.严格检测数组越界,越界就报错
10.面向对象的三个特性: 封装性,继承性,多态性.
11.类是对象的抽象,它用于描述一组对象的共同特征和行为,其中成员变量用于描述对象的特征,也被称作属性,成员方法用于描述对象的行为,可简称为方法
12.构造方法的定义:
方法名与类名相同
在方法名的前面没有返回值类型的声明
在方法中不能使用return语句返回一个值
13.如果一个类中没有定义构造方法,系统会自动为这个类创建一个默认的无参构造方法,如果创建了一个有参的构造方法,无参的构造方法就默认不存在了,需要再手动创建一个.
14.this关键字用法
(1) 通过this关键词可以明确地去访问一个类的成员变量,解决与局部变量名称冲突问题.
(2) 通过this关键词调用成员方法
(3) 在一个构造方法中可以通过this([参数1,参数2...])来调用其他的构造方法
调用构造方法的时候需要注意:
只能在构造方法总使用this调用其它构造方法,不能再成员方法中使用.
在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次
不能在一个类的两个构造方法中使用this互相调用
15.Java虚拟机会自动回收垃圾对象所占用的内存空间
16.static关键词
(1) 用来修饰成员变量,将其变为类的成员,从而实现所有对象对于该成员的共享
(2) 用来修饰成员方法,将其变成类方法,可以直接使用”类名.方法名”的方式调用.常用于工具类
(3) 静态块用法,将多个类成员放在一起初始化,使得程序更加规范完整,其中理解对象的初始化过程非常关键
(4) 静态导包用法,将类的方法直接导入到当前类中,从而使用”方法名”即可调用类方法,更加方便
Ps:来自https://www.cnblogs.com/dotgua/p/6354151.html
17.单例模式的特点:
(1) 类的构造方法使用private修饰,声明为私有,这样就不能在类的外部使用new关键字来创建实例对象.
(2) 在类的内部创建一个该类的实例对象,并使用静态变量INSTANCE引用该对象,由于变量应该禁止外界直接访问,因此使用private修饰,声明为私有成员.
(3) 为了让类的外部能够获得类的实例对象,需要定义一个静态方法getInstance(),
用于返回该类实例INSTANCE.由于方法是静态的,外界可以通过”类名.方法名”的方式来访问.
18.继承的特点:
(1) 在java中,类只支持单继承,不允许多重继承,也就是一个类只能有一个直接父类.
(2) 多个类可以继承一个父类
(3) 在java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类.
(4) 在java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类.
19.在子类中重写的方法需要和父类被重写的方法具有相同的方法名,参数列表以及返回值类型.
20.super关键字:
(1) 使用super关键字调用父类的成员变量和成员方法.具体格式如下:
① super.成员变量
② super.成员方法([参数1,参数2...])
(2) 使用super关键字调用父类的构造方法.具体格式如下:
① Super([参数1,参数2...]);
21.final关键字特性:
(1) 修饰的类不能被继承
(2) 修饰的方法不能被子类重写
(3) 修饰的变量(成员变量和局部变量)是常量,只能赋值一次
22.定义抽象类时需要注意:包含抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽象方法,只需要使用abstract关键字来修饰即可.另外,抽象类是不可以被实例化的,因为抽象类中有可能包含抽象方法,抽象方法是没有方法体的,不可以被调用
23.接口的特点:
(1) 接口中的方法都是抽象的,不能实例化对象
(2) 当一个类实现接口时,如果这个类是抽象类,则实现接口中的部分方法即可,否则需要实现接口中所有方法.
(3) 一个类通过implements关键字实现接口时,可以实现多个接口,被实现的多个接口之间需要用逗号隔开.
24.Object类是所有类的父类,即每个类都直接或间接继承自该类
25.给java应用打包的好处:安全,节省空间,可移植性
26.访问控制级别
No. |
范围 |
private |
default |
protected |
public |
1 |
在同一包的同一类 |
√ |
√ |
√ |
√ |
2 |
同一包的不同类 |
|
√ |
√ |
√ |
3 |
不同包的子类 |
|
|
√ |
√ |
4 |
不同包的非子类 |
|
|
|
√ |
27.数据类型图示