Java知识
文章平均质量分 77
青云火火
这个作者很懒,什么都没留下…
展开
-
ClassNotFoundException 和 NoClassDefFoundError 的区别
ClassNotFoundException 和 NoClassDefFoundError 的区别原创 2022-10-02 10:14:55 · 945 阅读 · 1 评论 -
单例模式的几种实现方式
文章目录一、懒汉式单例模式线程安全的懒汉式单例模式二、双重检测锁实现单例模式三、饿汉式单例模式四、静态内部类实现单例模式五、枚举实现单例模式一、懒汉式单例模式懒汉式单例模式,即是在需要用到该对象的时候才去进行初始化,代码如下:public class Singleton { private static final Singleton instance; private Singleton () {} public static Singleton getInstance(原创 2022-03-12 17:47:33 · 4716 阅读 · 2 评论 -
进程与线程的区别
线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务。在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。根本区别: 进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位资源开销: 每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,转载 2022-02-21 22:22:13 · 84 阅读 · 0 评论 -
Java 的内存回收算法
文章目录一、判断对象状态1.1 引用计数法1.2 可达性算法二、垃圾回收算法2.1 标记-清除算法2.2 标记-复制算法2.3 标记-整理算法2.4 混合型一、判断对象状态Java 的垃圾回收是指回收内存中已经“死亡”的对象所使用的内存空间,此处的死亡时是指该对象再也不会被使用,因此在进行垃圾回收之前需要先判断内存中对象的状态。虚拟机中用于判断对象状态的算法有两种:引用计数法和可达性算法。1.1 引用计数法引用计数法是一种比较简单直接的算法,即在虚拟机中保存每个对象的被引用次数,例如对象 A 被对象原创 2022-02-13 16:00:24 · 1203 阅读 · 0 评论 -
Java基础知识总结——对象的引用方式
Java 对象有以下四种引用方式:1、强引用(StrongReference)Java 中最常见的引用方式,当一个对象 A 被其它对象强引用时,该对象 A 处于可达状态,不会被垃圾回收机制回收。2、软引用(SoftReference)对于只有软引用的对象,当系统内存空间足够时,它不会被系统回收,程序也可以使用该对象;当系统内存空间不足时,系统可能会回收它。3、弱引用(WeakReference)对于只有弱引用的对象,无论系统内存空间是否足够,当系统进行垃圾回收时,系统就会回收该对象所占用的内存空原创 2020-11-26 16:36:22 · 1126 阅读 · 0 评论 -
Java基础知识总结——final关键字
final 关键字可用于修饰类、变量和方法,用于表示它修饰的类、方法和变量不可改变。final 成员变量final 修饰的成员变量必须由程序员显示地指定初始值。类变量:必须在静态初始化块中指定初始值,或声明该类变量时指定初始值。实例变量:必须在非静态初始化块、声明该实例变量或构造器中指定初始值。final 局部变量系统不会对局部变量进行初始化,局部变量必须由程序员显式初始化。因此使用 final 修饰局部变量时,既可以在定义时指定默认值,也可以不指定默认值。如果 final 修饰的局部变量原创 2020-10-26 14:17:00 · 116 阅读 · 0 评论 -
Java基础知识总结——泛型
文章目录一、基本概念二、泛型的使用1、泛型接口2、泛型类2.1 从泛型类派生子类附:泛型类并不存在3、泛型方法三、类型通配符3.1 设定类型通配符的上限3.2 设定类型通配符的下限一、基本概念所谓泛型,就是允许在定义类、接口、方法时使用类型形参,这个类型形参将在声明变量、创建对象、调用方法时动态地指定(即传入实际的类型参数,也可称为类型实参)。在没有泛型的时候,一旦把一个元素放进容器中,容器就会忘记该对象的类型,把所有的元素都当成 Object 类型处理。当程序从容器中取出对象时,就需要进行强制类型转原创 2020-10-26 11:14:31 · 211 阅读 · 0 评论 -
Java基础知识总结——注解(Annotation)
文章目录基本概念注解的定义和使用元注解1、@Retention2、@Target3、@Documented4、@Inherited5、@RepeatableJava提供的五个现成注解1、@Override2、@Deprecated基本概念官方文档对注解(Annotation)的解释为:Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。实际上,可以简单的将注解理解为给原创 2020-10-22 15:17:46 · 379 阅读 · 0 评论 -
Java基础知识总结——线程及线程相关操作
文章目录一、基本概念1、进程与线程2、并发与并行二、线程的生命周期新建→就绪:就绪→运行:运行→就绪:运行→阻塞:阻塞→就绪:运行→死亡:三、创建线程1、继承 Thread 类创建线程类2、实现 Runnable 接口创建线程类3、使用 Callable 和 Future 创建线程附:创建线程的方式比较四、线程调度线程的强制运行后台线程线程睡眠线程让步改变线程优先级五、线程同步1、同步代码块2、同步方法附:关于释放同步监视块的锁定3、同步锁4、死锁六、线程通信1、传统的线程通信2、使用 Condition原创 2020-10-20 20:30:11 · 536 阅读 · 0 评论 -
Java基础知识总结——容器
基本概念在编程时,可以用数组来保存多个对象,但数组的长度不可变化,一旦在初始化数组时指定了数组长度,这个数组长度就是不可改变的;除此之外,数组无法保存具有映射关系的对象。为了保存数量不确定的数据,以及保存具有映射关系的数据(也称关联数组),Java提供了容器类。Java容器类的用途是保存对象(实际上只是保存对象的引用变量,但通常习惯上认为容器里保存的是对象),其主要由以下两个接口派生而出:Collection 和 Map 。Collection一个独立元素的序列,这些元素都服从一条或者多条规则。其继原创 2020-10-19 00:38:28 · 358 阅读 · 1 评论 -
Java基础知识总结——多态
文章目录Java多态知识总结一、运行时多态运行时多态出现的三个必要条件重写的条件(两同两小一大)运行时多态实例二、编译时多态① 通过函数重载实现多态重载的条件(“两同一不同”)函数重载实现多态的实例② 通过泛型实现多态泛型实现多态的实例运行时多态与编译时多态的区别Java多态知识总结同一个行为具有多个不同的表现能力或形态的能力即为多态。根据何时确定执行多态方法中的哪一个,可以将多态分为编译时多态和运行时多态。一、运行时多态Java的引用变量有两种类型:编译时类型和运行时类型。编译时类型由声明该变量时原创 2020-10-19 14:20:21 · 182 阅读 · 0 评论 -
Java基础知识总结——接口
文章目录Java接口知识总结接口的定义接口定义的实例接口的特性接口与抽象类的异同接口与抽象类的相似点:接口与抽象类的区别:接口的实现实现接口的实例接口的应用——简单工厂模式Java接口知识总结接口通常定义一组公用方法,它们是多个类共同的公共行为规范,是与外部交流的通道。接口的定义接口使用关键字 interface 定义,接口里可以包含成员变量(只能是静态常量)、方法(只能是抽象实例方法、类方法或默认方法)、内部类(包括内部接口、枚举),其基本语法如下:[修饰符] interface 接口名 [ex原创 2020-10-19 14:22:23 · 194 阅读 · 0 评论 -
Java基础知识总结——IO
文章目录基本概念一、流式部分1、输入流基类:InputStream 类和 Reader 类2、输出流基类:OutputStream 类和 Writer 类3、处理流转换流推回输入流二、非流式部分1、File 类2、RandomAccessFile 类3、Serializable 接口基本概念Java IO 即 Java 的输入/输出系统,其主要包含以下三个部分:流式部分:IO 的主体部分。非流式部分:主要包含一些辅助流式部分的类,如:File 类、SerializablePermission 类原创 2020-10-19 20:18:12 · 360 阅读 · 0 评论