Java
文章平均质量分 91
Java
LiniLLLLL.
轻狂,是不知道自身渺小。谦虚,是看到了世界的博大和精深。
展开
-
<? extends T> 和 <? super T> 的使用
<? extends T> 和 <? super T> 的使用原创 2022-07-21 23:13:58 · 493 阅读 · 0 评论 -
HashMap 的底层结构和原理
1. 讲讲 HashMap 的底层结构和原理HashMap 就是以 Key-Value 的方式进行数据存储的一种数据结构嘛,在我们平常开发中非常常用,它在 JDK 1.7 和 JDK 1.8 中底层数据结构是有些不一样的。总体来说,JDK 1.7 中 HashMap 的底层数据结构是数组 + 链表,使用 Entry 类存储 Key 和 Value;JDK 1.8 中 HashMap 的底层数据结构是数组 + 链表/红黑树,使用 Node 类存储 Key 和 Value。当然,这里的 Entry 和 Nod转载 2022-05-29 22:21:20 · 8004 阅读 · 2 评论 -
关于 Java 中的 WeakReference
一. 简介WeakReference 如字面意思,弱引用,当一个对象仅仅被weak reference(弱引用)指向, 而没有任何其他strong reference(强引用)指向的时候, 如果这时GC运行, 那么这个对象就会被回收,不论当前的内存空间是否足够,这个对象都会被回收。二. 认识WeakReference类WeakReference 继承 Reference,其中只有两个构造函数:public class WeakReference<T> extends Reference&原创 2022-02-20 13:20:48 · 1420 阅读 · 0 评论 -
Java:volatile关键字
目录一、简介1.volatile 是什么?2.volatile 的作用二、并发编程的3个基本概念1.原子性2.可见性3.有序性三、锁的互斥和可见性四、Java的内存模型JMM以及共享变量的可见性五、volatile变量的特性1.保证可见性,不保证原子性2.禁止指令重排六、volatile不适用的场景1.volatile不适合复合操作2.解决方法七、volatile原理八、单例模式的双重锁为什么要加volatile一、简介1.volatile 是什么? &原创 2022-01-02 15:58:36 · 124 阅读 · 0 评论 -
深入分析Java中的关键字Static
在平时开发当中,我们经常会遇见static关键字。这篇文章就把java中static关键字的使用方法的原理进行一个深入的分析。先给出这篇文章的大致脉络:首先,描述了static关键字去修饰java类、方法、变量、代码块的方法然后,从底层分析static关键字,接下来,给出static的一些使用场景和案例最后,对static进行一个总结,包括和普通变量的区分。OK,开始今天的文章。一、static关键字的基本用法1、static关键字基本概念我们可以以一句话来概括:方便在没有创建对象的情况下来进行调转载 2020-08-24 21:46:47 · 130 阅读 · 0 评论 -
CharSequence 详情介绍
前言CharSequence是一个接口,比较常见的String、StringBuilder、StringBuffer都实现了这个接口。当我们看到一个API里面有CharSequence的时候,它也是可以被其子类代替的,一般用String代替即可。CharSequence详情介绍CharSequence是一个描述字符串结构的接口,在这个接口里面一般发现有三种常用的子类:Stirng类public final class Stringextends Objectimplements Seri原创 2020-07-01 13:56:44 · 3767 阅读 · 0 评论 -
详解Java中的四种代码块
在java中用{}括起来的称为代码块,代码块可分为以下四种:一.简介普通代码块:类中方法的方法体构造代码块:构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行。静态代码块:用static{}包裹起来的代码片段,只会执行一次。静态代码块优先于构造块执行。同步代码块:使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。Java类里普遍存在静态快,原创 2020-06-05 22:30:51 · 675 阅读 · 0 评论 -
同步和异步的区别
同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。同步,就是实时处理(如打电话),比如服务器一接收客户端请求,马上响应,这样客户端可以...转载 2020-05-06 15:14:10 · 719 阅读 · 0 评论 -
父类引用指向子类对象详解
父类引用指向子类对象父类引用指向子类对象指的是:例如父类Animal,子类Cat,Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。Animal animal = new Cat();即声明的是父类,实际指向的是子类的一个对象。那这么使用的优点是什么,为什么要这么用?可以用这几个关键词来概括:多态、动态链接,向上转型也有人说这是面向接口编程,可...原创 2020-04-24 09:47:36 · 16015 阅读 · 11 评论 -
java泛型(泛型接口、泛型类、泛型方法)
泛型接口:定义一个泛型接口://定义一个泛型接口public interface Generator<T> { public T text();}通过类去实现这个泛型接口的时候指定泛型T的具体类型。指定具体类型为Integer:// 指定具体类型为Integerpublic class NumGenerator implements Generator<Int...转载 2020-04-21 02:41:35 · 198 阅读 · 0 评论