随笔分类 -  Java

1

java日常学习中遇到的问题
tomcat生命周期
摘要:![image](https://img2024.cnblogs.com/blog/1819824/202404/1819824-20240411155912104-1312290810.png) 阅读全文

posted @ 2024-04-11 15:59 ccblblog 编辑

偏向锁实战
摘要:1. 偏向锁的核心原理 偏向锁主要解决无竞争下的锁性能问题,所谓的偏向就是偏心,即锁会偏向于当前已经占有锁的线程。 在实际场景中,如果一个同步块(或方法)没有多个线程竞争,而且总是由同一个线程多次重入获取锁,如果每次还有阻塞线程,唤醒CPU从用户态转核心态,那么对于CPU是一种资源的浪费,为了解决这 阅读全文

posted @ 2024-02-23 16:57 ccblblog 编辑

java对象结构与内置锁
摘要:1. java对象结构 不同的JVM的对象结构的实现不一样,这里以HotSpot JVM为例。HotSpot JVM并没有将Java实例对象直接一对一的映射到本地(native)的C++对象,而是设计了一个oop-klass模型。 什么是OOP? 实际上,OOP(Ordinary Object Po 阅读全文

posted @ 2024-02-23 10:15 ccblblog 编辑

垃圾收集2
摘要:1. 标记-清除算法 算法分为标记和清除两个阶段: 首先标记出所有需要回收的对象,在标记完成后,统一回收掉所有被标记的对象, 也可以反过来,标记存活的对象,统一回收所有未被标记的对象。 标记过程就是对象是否属于垃圾的判定过程。 主要缺点有两个: 第一个是执行效率不稳定,如果Java堆中包含大量对象, 阅读全文

posted @ 2024-02-18 14:29 ccblblog 编辑

垃圾收集
摘要:1. 概述 说起垃圾收集(Garbage Collection,下文简称GC),垃圾收集需要完成的三件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 为什么我们要去了解垃圾收集和内存分配?答案很简单: 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必 阅读全文

posted @ 2024-02-02 14:20 ccblblog 编辑

OOM实战演练
摘要:1. 实战:OutOfMemoryError异常 在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(OOM)异常的可能,并且将初步介绍若干最基本的与自动内存管理子系统相关的HotSpot虚拟机参数。 本节实战的目的有两个: 第 阅读全文

posted @ 2024-01-31 18:22 ccblblog 编辑

深入了解java对象分配
摘要:1. 对象的创建 在语言层面上,创建对象通常仅仅是一个new关键字而已,而在虚拟机中,对象(对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢? 当Java虚拟机遇到一条字节码new指令时, ① 首先将去检査这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查 阅读全文

posted @ 2024-01-31 11:03 ccblblog 编辑

java运行时内存模型
摘要:1. 概述 在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切都很美好。不过,也正是因为Java程序员把控制内存的权力交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是 阅读全文

posted @ 2024-01-30 13:44 ccblblog 编辑

概述
摘要:1. Java技术体系所包括的内容 Java ME(Micro Edition): 支持Java程序运行在移动终端(手机、PDA)上的平台,对JavaAPI有所精简,并加入了移动终端的针对性支持,这条产品线在JDK6以前被称为J2ME。有一点读者请勿混淆,现在在智能手机上非常流行的、主要使用Java 阅读全文

posted @ 2024-01-29 15:09 ccblblog 编辑

生产者消费者问题
摘要:1. 概述 生产者-消费者问题(Producer-Consumer Problem)也称有限缓冲问题(Bounded-BufferProblem),是一个多线程同步问题的经典案例。 生产者一消费者问题描述了两类访问共享缓冲区的线程(即所谓的生产者和消费者)在实际运行时会发生的问题。 生产者线程的主要 阅读全文

posted @ 2024-01-26 10:52 ccblblog 编辑

java中内置锁
摘要:1. 概述 Java内置锁是一个互斥锁,最多只有一个线程能够获得该锁,当线程B尝试去获得线程A持有的内置锁时,线程B必须等待或者阻塞,直到线程A释放这个锁,如果线程A不释放这个锁,那么线程B将永远等待下去。 Java中每个对象都可以用作锁,这些锁被称为内置锁。线程进入同步代码块或方法时会自动获得该锁 阅读全文

posted @ 2024-01-25 22:53 ccblblog 编辑

java中的ThreadLocal
摘要:1. ThreadLocal 的基本使用 在Java的多线程并发执行过程中,为了保证多个线程对变量的安全访问,可以将变量放到ThreadLocal类型的对象中,使变量在每个线程中都有独立值,不会出现一个线程读取变量时而被另一个线程修改的现象。ThreadLocal类通常被翻译为线程本地变量类或者线程 阅读全文

posted @ 2024-01-25 21:48 ccblblog 编辑

java线程数量如何确定
摘要:1. 概述 使用线程池的好处 降低资源消耗: 线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,通过重复利用己创建的线程可以降低线程创建和销毁造成的消耗。 提高响应速度: 当任务到达时,可以不需要等待线程创建就能立即执行 提高线程的可管理性: 线程池提供了一种限制、管理资源 阅读全文

posted @ 2024-01-25 15:14 ccblblog 编辑

java线程池-2
摘要:1. Executors 创建线程池的潜在问题 在很多公司的编程规范中,非常明确地禁止使用Executors创建线程池。 为什么呢?这里从源码讲起,介绍使用Executors工厂方法创建线程池将会面临的潜在问题。 1.1 Executors 创建固定数量的线程池的潜在问题 使用newFixedThr 阅读全文

posted @ 2024-01-25 14:31 ccblblog 编辑

java线程池-1
摘要:1. 概述 Java线程的创建非常昂贵,需要JVM和OS(操作系统)配合完成大量的工作: 必须为线程堆栈分配和初始化大量内存块,其中包含至少1MB的栈内存。 需要进行系统调用,以便在OS(操作系统)中创建和注册本地线程。 Java高并发应用频繁创建和销毁线程的操作将是非常低效的,而且是不被编程规范所 阅读全文

posted @ 2024-01-22 17:41 ccblblog 编辑

java线程的基本操作
摘要:1. 线程名称的设置和获取 在Thread类中可以通过构造器Thread(...)初始化设置线程名称, 也可以通过setName(...)实例方法去设置线程名称,取得线程名称可以通过getName()方法完成。 关于线程名称有以下几个要点: 线程名称一般在启动线程前设置,但也允许为运行的线程设置名称 阅读全文

posted @ 2024-01-19 15:56 ccblblog 编辑

java线程核心原理
摘要:1. 线程的调度与时间片 1.1 java线程与操作系统 现代操作系统(如Windows、Linux、Solaris)提供了强大的线程管理能力,Java不需要再进行自己独立的线程管理和调度,而是将线程调度工作委托给操作系统的调度进程去完成。在某些系统(比如Solaris操作系统)上,JVM甚至将每个 阅读全文

posted @ 2024-01-19 12:18 ccblblog 编辑

TypeVariable、GenericDeclaration、Type、AnnotatedType
摘要:0、Java Reflect 包类图 1、Typevariable类图 2、类签名 public interface TypeVariable<D extends GenericDeclaration> extends Type, AnnotatedElement { 3、涉及到的类 3.1 Typ 阅读全文

posted @ 2024-01-02 14:13 ccblblog 编辑

AnnotatedElement
摘要:1、元素与注解的四种关系 直接存在(directly present) 直接存在或者直接引用。当一个注解直接在元素上引用时,则为直接引用,比如下面代码,@Configuration就是直接引用在类FilterConfig上 间接存在(indirectly present) 间接存在或间接引用。当一个 阅读全文

posted @ 2023-12-29 18:21 ccblblog 编辑

AnnotatedElement作用域范围
摘要:1、直接存在 直接被某个注解标注在类上的形式,称为直接存在,@testAnnotation是直接存在Test类上 @testAnnotation public class Test{} 2、间接存在 使用@Repeatable注解标记一个可重复注解时,将这个可重复注解标注在元素之上时,这个可重复注解 阅读全文

posted @ 2023-11-24 10:42 ccblblog 编辑

1

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示