• Java初级回顾


    学完Java初级也一年了,很多东西都忘的差不多了,今天趁着周日再翻开之前的笔记本好好复习下。

    1.java语言是一种编译解释型语言,java编译器将java代码编译成字节码指令存放到.class文件中,运行时使用特定的

    java解释器把字节码指令翻译成相应的机器指令并且边翻译边执行

    2.JVM是java的虚拟机,是JRE的核心,包含了如下内容:

      1)cpu:java解释器

      2)栈内存:存放基本类型数据和引用

      3)堆内存:存放对象

      4)方法区:存放了每个类的方法定义和方法体

      5)垃圾回收器:回收堆内存中的垃圾对象

      6)类加载器

    3.java运行程序的过程

      1)加载字节码文件

      2)验证字节码文件

      3)分配和管理内存空间

      4)翻译字节码指令

      5)垃圾回收

    4.对java中引用的理解

    引用:给定一个对象命名,操作一个对象的媒介。java不能直接操作对象

    5.类和对象的关系

    类:是对象的模板

    对象:是根据类产生的实例,每个对象在内存中单独存在彼此之间无干扰

    6.引用与对象的关系

    对象:通过new关键字加构造器进行初始化,存放于堆内存中

    引用:对象初始化完成之后的返回值赋值给一个引用变量,则该引用持有该对象,java代码可以通过该引用操作该对象,引用存放在栈内存中

    7.什么是封装

    在面向对象中将一系列有关系的数据和行为放到一个或多个类中,而把这些操作以及数据等放到一起,已接口的方式向外提供服务

    8.类的重用方式

    组合和继承

    9.什么是继承

    抽取各个子类的共同特征,描述为一个父类,实现一般到特殊关系的一种机制

    10.组合

    简单的理解为接口

    11.super关键字

      1)调用父类构造器:super(<参数列表>),实现代码重用

      2)当做引用使用:持有相关的直接父类对象,调用父类被覆盖的方法,访问父类中被隐藏的属性

    12.this关键字

      1)调用本类中重载构造器,可以代码重用

      2)当做引用使用,是当前对象的引用,在每个实例方法中隐式的包含该引用

    13.方法重载

    方法名相同,参数列表不同的方法具有重载关系

    参数列表不同:类型不同,顺序不同,个数不同

    14.方法签名

    方法签名包括方法名和参数列表,编译器通过方法签名来识别名字

    15.方法覆盖:在子类中定义一个与父类中方法同名的方法

      1)方法签名相同

      2)返回值类型有父子关系

      3)子类方法不能比父类方法的访问控制更严格

      4)不能比父类方法抛出更多种类的异常

    16.什么是动态绑定

    绑定:把一个方法的调用定位至某一个方法的过程,称之为绑定,分为静态绑定和动态绑定

      静态绑定:在编译过程中即定位方法,比如私有方法,构造器,静态方法

      动态绑定:在程序运行过程中,JVM根据对象的类型不同定位至不同的方法。抽象方法,被子类覆盖的方法。

    17.static关键字

    只与类有关,与对象无关

      1)静态属性在类加载时初始化,且只初始化一次

      2)静态方法中不能直接访问实例成员

      3)实例方法中可以直接访问静态成员

      4)在其它类中,通过类名.成员名访问静态成员

      5)静态初始化块在类加载时执行

    18.静态初始化块

    作用:实现复杂逻辑的初始化

    19.实例初始化块

    作用:用于初始化实例属性,如果多个构造方法中都有相同的逻辑可以写入实例初始化块

    20.final关键字

      1)final属性只能显式的初始化一次(有且仅有一次),完成后不能再修改

      2)final方法不能被覆盖

      3)final类不能被继承

    (静态常量用final修饰)

    21.抽象

    在父类中尽量描述各个子类需要实现的功能,而不具体实现,将实现交由各个子类根据自身情况各自实现,增强了程序的灵活性和可维护性

    22.抽象类

      1)抽象类不能直接实例化

      2)抽象类也有构造方法

      3)抽象类中可以没有构造方法

      4)abstract不可修饰构造器和静态方法

      5)抽象类的子类要实现所有抽象方法,否则该子类也为抽象类

      6)abstract不可修饰final方法

      7)抽象方法只能有public或者protected或默认(不能为private)

    23.接口

      1)指系统可以提供的服务或功能

      2)是指interface关键字定义的接口类型

    interface:是方法定义和常量的集合,用于规定该类对象所能提供的服务,更好地降低子系统之间的耦合度

      3)方法默认使用public abstract修饰

      4)成员变量默认使用public static final修饰,顾成为静态常量

      5)一个接口可继承多个接口

      6)一个类可实现多个接口

    24.向上转型和向下转型

    向上转型:如果把引用变量转换为父类型,称为向上转型,总是安全的

    向下转型:如果把引用变量转换为子类型,称为向下转型,不一定安全,当子类型引用持有父类型对象时会抛出ClassCastException

    25.多态

    多态分为静态多态和动态多态

      1)静态多态:就是方法重载

      2)动态多态:是指系统A访问系统B的服务时,系统B可以通过多种实现来提供服务,而这一切对于A来说都是透明的。

    26.内部类

    在一个类中定义的类,成为内部类,成为内部类或者嵌套类。分为实例内部类,静态内部类,局部内部类,匿名内部类

    27.Throwable类是所有异常类的父类

    28.Exception

    分为运行时异常和受检查异常

      1)运行时异常:RuntimeException及其子类都是运行时异常

    对于该类异常Java编译器不会强制代码去处理,因为一般是程序的bug

      2)受检查的异常:Exception及其子类除了运行时异常。

    对于该类异常Java编译器强制程序去处理

    声明的都不会是运行时异常,也不用我们捕获

    29.异常转译

    捕获原始异常,把它转换为一个新的不同类型的异常继续抛出,这种处理异常的方式称为异常转译

    30.异常链

    在抛出新的异常对象时,把捕获的原始异常封装至新的异常中,则实现了异常链

    31.包装类型

    32.java垃圾回收机制

      1)垃圾回收器的主要目的是回收已经无用的对象的内存空间,节约内存资源,避免程序崩溃

      2)垃圾回收器是一个系统线程,由JVM控制,程序无法控制,只能通过调用system.gc()和Runtime.getRuntime().gc()来通知JVM清理垃圾

      3)垃圾回收器的启动毫无规律可言,有可能程序运行完毕了还在启动

      4)每个对象都有一个finalize方法,垃圾回收器在回收对象之前会调用该方法

      5)两种回收策略:

        1)复制式:将正在被使用的对象复制到另一片内存中,然后删除原来内存中的所有对象(垃圾对象多)

        2)自省式:遍历所有的对象,将正在使用的对象进行标注,然后删除没有标注的对象(垃圾对象比较少)

    引用置空,对象将被回收

    33.字符串常量池

    34.抽象类和接口的区别

    语法区别:

      1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract方法;

      2)抽象类中的成员变量可以是各种类型的,而在接口中的成员变量只能是public static final类型的;

      3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法

      4)一个类只能继承一个抽象类,而一个类可以实现多个接口

    接口纯抽象

    先就复习到这了。。

  • 相关阅读:
    《TD项目开发小结》
    感悟
    毕业两年了
    ip+port无法访问nginx问题
    问题解决之道
    调休9天的那些日子
    关于类加载器(ClassLoader)
    ios核心蓝牙之心率监控(swift)
    git(git-flow)的高效管理使用
    WKWebview加载本地图片时出现路径问题
  • 原文地址:https://www.cnblogs.com/hnzyyTl/p/5248940.html
Copyright © 2020-2023  润新知