首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java
学而不思则忘
创建于2022-09-25
订阅专栏
Java基础知识
等 1 人订阅
共43篇文章
创建于2022-09-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
ArrayList线程不安全的原因
以下面代码为测试用例: 查看ArrayList的add方法的源码,发现线程不安全的地方是下面两个点: 扩容过程 在elementData对应位置上设置对应的值 扩容过程如何出现线程不安全? 假设数组目
Java实现单例模式
双重锁实现线程安全的单例模式 在双重检查锁模式中为什么需要使用 volatile 关键字? 假如 Instance 类变量是没有用 volatile 关键字修饰的,会导致这样一个问题: 在线程执行到第
JVM参数详解
-XX:+UseConcMarkSweepGC 打开此开关后,使用 CMS + ParNew + Serial Old 收集器组合来进行内存回收。 并发标记清除收集器是以获取最短停顿时间为目标。 开启
JVM垃圾回收基础
如何判断对象需要回收? 引用计数算法 给对象添加一个引用计数器,当对象增加一个引用时计数器加1,引用失效时计数器减1。引用计数为0的对象可被回收。 **缺点:**两个对象出现循环引用的情况下,此时引用
JVM垃圾回收器
串行收集器 串行收集器采用单线程 stop-the-world 的方式进行收集。当内存不足时,串行 GC 设置停顿标识,待所有线程都进入安全点(Safepoint)时,应用线程暂停,串行 GC 开始工
Java的SPI机制
简介 SPI(Service Provider Interface),是 JDK 内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,核心思想是解耦。比如java.sql.Driver接口,其
Java反射
反射基础 反射机制:允许在运行时发现和使用类的信息,将 Java 类中各种成分映射成 Java 对象。 Class 类 手动编写的类被编译后会产生一个 Class 对象,每个 class 标识的类在内
AQS源码理解——ReentrantLock
公平锁策略 ReentrantLock类中 FairSync 类源码解读: 点击上述(1)处代码进入AbstractQueuedSynchronizer源码中的acquire方法 释放锁的源码
Java的==和equals()的区别
==的含义 基本数据类型:byte, short, int, long, float, double, char, boolean。它们之间的比较用==,比较的是它们的值。 引用数据类型:比较的是它们
String类能不能被继承?为什么?(final关键字的理解)
答案是不能被继承。下面来看看究竟是为什么? Java中对String类的定义: 可见,它是被final修饰的,是一个被final修饰的char数组。而final修饰的类是不能被继承的。 final修饰
Java的try/catch/finally中使用return详解
finally是无论如何都要执行的,除非在try/catch的语句块中使用的System.exit() 为了弄清楚Java中try/catch/finally中使用return语句的跳转,使用下面示例
Java运行时异常RuntimeException
NullPointerException:空指针引用异常 ClassCastException:类型强制转换异常 IllegalArgumentException:传递非法参数异常 Arithmeti
重写equals方法需同时重写hashCode方法
hashCode()介绍 hashCode()的作用是获取哈希码,也称为散列码;返回一个int整数。这个哈希码的作用就是确定该对象在哈希表中的索引位置。hashCode()定义在JDK的Object.
Java泛型理解
1. 为什么需要泛型 JDK5 引入了泛型机制。 为什么需要泛型呢?回答这个问题前,先让我们来看一个示例。 而泛型的出现,解决了类型安全问题。 泛型具有以下优点: 编译时的强类型检查 泛型要求在声明时
深入理解Java序列化
1. 序列化简介 序列化(serialize) - 序列化是将对象转换为字节流。 反序列化(deserialize) - 反序列化是将字节流转换为对象。 序列化用途: 序列化可以将对象的字节序列持久化
Java常量池与String常量池理解
1. 先了解JVM内存分布: 程序计数器是jvm执行程序的流水线,存放一些跳转指令。 本地方法栈是jvm调用操作系统方法所使用的栈。 虚拟机栈是jvm执行java代码所使用的栈。 方法区存放了一些常量
Java基本数据类型
1. Java基本数据类型 Java基本类型共有八种,其中有4种整形,2种浮点型,1种用于表示Unicode编码的字符单元的字符类型char,1种用于表示真值的boolean类型。 JAVA中的数值类
Java抽象类与接口理解
1. 抽象类 1.1 抽象方法 抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。 抽象方法的声明格式为: 抽象方法必须用abstract关键字进行修饰。 1.2 抽象类理解 如果一个类含有抽象
String、StringBuilder与StringBuffer区别
1. 可变性 String 类中使⽤ final 关键字修饰字符数组来保存字符串, private final char value[] ,所以 String 对象是不可变的。 ⽽ StringBui
设计模式之工厂模式
1. 简单工厂模式 该模式通过向工厂传递类型来指定要创建的对象。 下面我们使用手机生产来讲解该模式: Phone类:手机标准规范类(AbstractProduct) MiPhone类:制造小米手机(P
下一页