JAVA总复习-----1

Posted 小鹿可可乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA总复习-----1相关的知识,希望对你有一定的参考价值。

1.类和对象

类的作用是定义对象,类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体,一个对象又称为类的一个实例

  • 面向对象的三大特征:封装 继承 多态
  • 面向对象的四大特征:抽象 封装 继承 多态

1.1 封装

封装:把对象的属性和服务结合成一个独立系统单位,并尽可能隐蔽对象的内部细节(java封装信息有四种访问权限:public>protected>包访问权限>private

1.2继承

继承:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。

1.3多态

定义:指类中具有相似功能的不同服务使用同一个名称来实现的现象。

1.3.1实现原理

1.静态绑定:重载–>条件
相同作用域,方法名相同,参数列表不同
2.动态绑定:重写–>条件(父子类,子类重写父类方法 )
方法名相同,参数列表相同,修饰符
子类权限 >= 父类权限
在这里插入图片描述

在这里插入图片描述

1.3.2实现条件

-1.继承/实现关系
-2.方法重写
-3.向上造型,重写方法的调用
基类引用:引用 派生类对象
基接口引用:引用 实现该接口的类和对象

1.2JVM

JVM内存划分:

在这里插入图片描述

1.2.1类加载过程

类加载期间给new的对象载堆中开辟空间
条件:

  • new
  • main函数
  • 类名.静态成员
  • 反射:People.class \\ Class.forName(“People”)

阶段:

  • 装载(加载) 产物:生成当前类的Class对象->保存当前类类信息 class对象 方法区入口
  • 链接
  • 初始化

2.重写和重载的区别

1、重写实现的是运行时的多态,而重载实现的是编译时的多态。
2、重写的方法参数列表必须相同;而重载的方法参数列表必须不同。
3、重写的方法的返回值类型只能是父类类型或者父类类型的子类,而重载的方法对返回值类型没有要求。

3.Final

变量:final int INITSIZE = 10 常量
方法 :final void fun(){ } 不允许重写
类:final class String{ } 不能被继承

4.Static

4.1变量

静态变量和实例变量区别:

  1. 存储位置:静态->方法区、实例变量->堆
  2. 静态->类有关,一个类只有一份静态变量、实例->对象有关,几个对象几份实例变量

4.2方法

静态方法和实例方法区别:

  1. 调用方式不同:静态->类名.静态方法、实例->对象.实例方法
  2. 重写:静态方法不能被重写,private方法不被重写

4.3类 - >内部类

静态内部类和实例内部类的区别(是否包含外部类对象的this)
在内部类中看是否需要访问外部类:需要->实例、不需要->静态
在这里插入图片描述
在这里插入图片描述

5.单例模式

构造函数私有,公有函数返回实例对象
条件:private构造函数,公有静态函数,返回实例对象

4.1懒汉单例(用时创建对象)

优点:尽最大可能节省内存空间
缺点:在多线程编程中,使用懒汉式可能造成类的对象在内存中不唯一,虽然用过修改代码可以改正这些问题,但是降低了效率,线程不安全
在这里插入图片描述

4.2饿汉单例(类加载时创建对象)

线程安全,安全是由类加载机制保证
在这里插入图片描述
今天也要好好学习呀~

以上是关于JAVA总复习-----1的主要内容,如果未能解决你的问题,请参考以下文章

Java年度总复习基础部分

穷吉201771010119总复习

实验十八 总复习

Java年度总复习基础部分

JAVA 总复习

Java年度总复习基础部分