
Java 基础
文章平均质量分 90
学到很多东西的诀窍,就是一下子不要学很多。
帅次
优快云博客专家、华云云享专家、阿里云专家博主、软件设计师,深耕移动开发领域多年,分享一些你需要的小知识点!
展开
-
Java 深入理解 AQS 和 CAS 原理
理解了 AQS 的设计思路,接下来我们就可以通过自定义 AQS 来实现自己的同步实现机制。代码中的 MyLock 就是一个最简单的独占锁,通过使用 MyLock 也能实现同 synchronized 和 ReentrantLock 相同的功能。比如如下代码:最终打印的 count 值为 20000,说明两个线程之间是线程安全的同步操作。原创 2024-01-04 14:03:26 · 1165 阅读 · 0 评论 -
Java Synchronized 和 ReentrantLock
关键字相信每一位 Java 工程师都不会陌生。而 ReentrantLock 作为大神 Doug Lea 编写的 concurrent 包中的重要一员,也在众多项目中发挥重要功能。因为这两者实在是太重要,所以专门使用一课时的内容来对它们做一个详细的比较。后续两课时将会着重介绍它们各自的实现细节与原理。这课时我们主要学习了 Java 中两个实现同步的方式 synchronized 和 ReentrantLock。原创 2024-01-04 06:00:00 · 999 阅读 · 0 评论 -
Java 线程池深入理解
线程池是一把双刃剑,使用得当会使代码如虎添翼;但是使用不当将会造成重大性灾难。而剑柄是握在开发者手中,只有理解线程池的运行原理,熟知它的工作机制与使用场景,才会使这把双刃剑发挥更好的作用。原创 2023-12-21 15:08:19 · 915 阅读 · 0 评论 -
Android 单例模式必知必会
单例模式是运用最广泛的设计模式之一,在应用这个模式时,单例模式的类必须保证只有一个实例存在。多用于整个程序只需要有一个实例,通常很消耗资源的类,比如线程池,缓存,网络请求,IO操作,访问数据库等。原创 2022-02-16 07:00:00 · 1637 阅读 · 2 评论 -
HashMap的产生与原理
数组:一片物理上连续的大小确定的储存空间。顺序表:以数组的形式保存的线性表,物理上连续、逻辑上连续、大小可以动态增加。链表:链表是一种物理存储单元上非连续、非顺序的存储结构。原创 2022-01-17 11:11:19 · 2893 阅读 · 15 评论 -
Java 泛型简单剖析与使用
类型安全:使用泛型可以使编译器知道变量的类型限制,进而可以在更高程度上验证类型假设。如果不用泛型,则必须使用强制类型转换,而强制类型转换不安全,在运行期可能发生ClassCast Exception异常,如果使用泛型,则会在编译期就能发现该错误。泛化:可以用T代表任意类型,所以许多重要的类,比如集合框架,都已经成为泛型化的了,这带来了很多好处。表示的是类型的下限就是自身,因此通配的参数化类型可能是T或T的父类,一直朝上直到Object。表示的是类型的上限就是自身,因此通配的参数化类型可能是T或T的子类。原创 2021-11-23 10:25:32 · 2078 阅读 · 0 评论 -
Android 序列化(Serializable和Parcelable)
想要永久的保存对象数据吗?想要对象在网络中传递吗?想要对象在IPC间传递吗?那就赶紧序列化(Serializable和Parcelable)吧。原创 2021-10-28 10:32:17 · 1218 阅读 · 2 评论 -
Java 类加载器
类加载器 ClassLoader:在Java 内存模型我们介绍了 Java 字节码文件(.class)的格式。一个完整的 Java 程序是由多个 .class 文件组成的,在程序运行过程中,需要将这些 .class 文件加载到 JVM 中才可以使用。而负责加载这些 .class 文件的就是类加载器(ClassLoader)。原创 2021-09-26 18:13:26 · 556 阅读 · 10 评论 -
Java 垃圾回收(GC)
垃圾回收(Garbage Collection,简写为 GC)可能是虚拟机众多知识点中最为大众所熟知的一个了,也是Java开发者最关注的一块知识点。Java 语言开发者比 C 语言开发者幸福的地方就在于,我们不需要手动释放对象的内存,JVM 中的垃圾回收器(Garbage Collector)会为我们自动回收。但是这种幸福是有代价的:一旦这种自动化机制出错,我们又不得不去深入理解 GC 回收机制,甚至需要对这些"自动化"的技术实施必要的监控和调节。原创 2021-09-26 15:09:54 · 1795 阅读 · 4 评论 -
Java JVM内存模型
运行时的数据区(Runtime Data Area)本文主要看 JVM 内存模型主要指运行时的数据区,包括 5 个部分,如下图所示。虚拟机栈:也叫方法栈,是线程私有的,线程在执行每个方法时,JVM 都会在虚拟机栈中创建一个栈帧,用来存储局部变量表、操作栈、动态链接、方法出口等信息。调用方法时执行入栈,方法返回时执行出栈。本地方法栈:与栈类似,也是用来保存线程执行方法时的信息,不同的是,执行 Java 方法使用栈,而执行 nati...原创 2021-09-26 13:05:17 · 523 阅读 · 3 评论 -
Java JVM知识汇总
JVM 是什么?Java虚拟机(Java virtual machine,JVM)是Java程序运行基础,Java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。如上图所示,JVM知识点有6...原创 2021-09-26 11:39:05 · 451 阅读 · 4 评论 -
Java的四种引用方式
1.强引用(StrongReference)。2.软引用(SoftReference)。3.弱引用(WeakReference)。4.虚引用(PhantomReference)。引用队列(ReferenceQueue)。原创 2021-07-01 14:07:18 · 814 阅读 · 0 评论 -
数据结构与算法-分治法
分治法:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。精髓:分--将问题分解为规模更小的子问题;治--将这些规模更小的子问题逐个击破;合--将已解决的子问题合并,最终得出“母”问题的解;分治法(递归技术):直接或间接调用自身的算法。分治法(二分查找法)原创 2021-05-26 14:17:44 · 626 阅读 · 0 评论 -
设计模式之设计原则
开放-封闭原则(开闭原则)、单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则(最少知道原则)、合成复用原则!原创 2021-05-07 15:50:10 · 483 阅读 · 0 评论 -
设计模式之行为型模式
模板模式、策略模式、责任链模式、迭代器模式、命令模式、状态模式、备忘录模式、中介者模式、解释器模式、观察者模式、访问者模式、委派模式!原创 2021-05-19 14:10:38 · 1062 阅读 · 0 评论 -
设计模式之结构型模式
代理模式、适配器模式、桥接模式、装饰模式、外观模式、享元模式、组合模式!原创 2021-05-14 17:37:11 · 506 阅读 · 0 评论 -
设计模式之创建型模式
抽象工厂模式、构建器模式、工厂方法模式、原型模式、单例模式!原创 2021-05-08 14:18:18 · 1966 阅读 · 2 评论