java基础整理

这是一篇总结性质的博客,学习了其他博客的一些知识,总体比较零散,这里进行了总结。

一、java文件的执行

Jdk是什么?
  Java development kit java开发工具包
Jdk包括:
  Jre( java运行环境)、
  一堆java工具(java编译器javac.exe java解释执行器java.exe)、
  java基础类库(3600多)常用类150多个

安装了JDK就没必要单独装JRE了。JDK可以理解为开发环境,JRE可以理解为运行环境。
安装后需要配置环境变量。
java文件的执行

二、四种访问级别的访问范围

public级别的都可以访问;
protected级别的不同包不可以访问;
默认级别的子类不可访问,不同包不可访问;
private级别只有当前类可以访问。
四种访问级别的访问范围

三、重写与重载

重载是在同一个类中的,根据函数入参进行区分。方法名要相同,返回值可相同可不同。
重写对应多态,子类继承父类时,可以对其方法进行重写。
java不支持一个子类继承多个父类,C++是支持的。

四、多态

多态:不同类的对象对同一个消息作出不同的响应。
多台存在的三个条件:
1、有继承关系
2、子类重写父类的方法
3、父类引用子类的对象

五、final

1、修饰变量,不可改变。如非基本类型,是指变量的引用不可改变,内容可变。
2、修饰方法,不可重写。
3、修饰类,不可被继承。

六、static

1、修饰变量,表示静态变量。
2、修饰方法,表示静态方法。
静态变量和静态方法都属于类的静态资源,是在类初始化的时候加载的,而不是new的时候加载的。
静态资源的加载顺序是严格按照静态资源的定义顺序来加载的。
3、修饰代码块,只执行一次,且只在类初始化的时候执行。
静态代码块的加载顺序严格按照父类静态代码块->子类静态代码块执行,且只加载一次。
静态代码块对于定义在它之后的静态变量,只能赋值,不可访问。

七、序列化、反序列化

序列化:将一个对象转换成一串二进制表示的字节数组。
反序列化:将二进制字节数组转换成对象。
java序列化机制是通过在运行时判断类的serialVersionUID来验证一致性的。为了向下兼容,当我们改变类时,若对原有逻辑没有影响,可以定义一个UID,这样UID将不是随机生成的,保证序列化通过。
1、序列化后保存的是类的信息
2、被声明为transient的属性不会被序列化
3、被声明为static的属性不会被序列化

八、反射

java反射机制,是指在运行状态中,
对于任意一个类,都能知道他的属性和方法。
对于任意一个对象,都能调用他的任意方法。
这种动态获取信息,以及动态调用对象的方法的功能称为java的反射机制。

反射机制是目前众多框架实现的一个基础。
利用反射技术会对加载到java虚拟机中的类信息进行检测,这种检测会对运行的性能有降低。

猜你喜欢

转载自blog.csdn.net/wee616/article/details/78136051