明天你会感谢今天奋力拼搏的你。ヾ(o◕∀◕)ノヾ
一、线程池 线程不仅是Java中的一个对象,每个线程都有自己的工作内存。 线程创建、销毁需要时间,消耗性能。 线程过多,会占用很多内存。 操作系统频繁切换线程上下文会影响性能。 创建时间+销毁事件&g
一、线程和线程组 1.1、线程状态 Java中6个状态定义:java.lang.Thread.State New:尚未启动的线程的线程状态。 Runnable:可运行线程的线程状态,等待CPU调度。
初学者可以先不去关注CPU、内存、JVM部分。可以先看多线程系列的其他文章,知其然,然后再去知其所以然。 一、CPU缓存和内存相关概念介绍(了解) 1.1、多级缓存 因为电脑硬件中遇到的并发问题和JV
Java程序运行原理 Java编译器(前端编译器,javac就是其中一种)把Java源代码编译成Java虚拟机识别的字节码class文件。 Java虚拟机就相当于一个字节码的执行引擎,Java虚拟机有
一、手动安装 1.1、更新Ubuntu软件包 更新本地软件包列表:sudo apt update 更新系统已安装软件包:sudo apt upgrade 1.2、添加Docker依赖库 安装依赖,用于
两种框架自己都用过一段时间,现在想总结一下各自适用的场景,部分比较取自群友分享 框架简介 Spring Data JPA是Spring Data的子模块。使用Spring Data,使得基于“repo
准备把知道的一些Java底层知识进行整理汇总,以便脑子瓦特的时候看看。 此文想说的内容有:Java虚拟机的结构、JIT即时编译、Java虚拟机中对锁的支持。 一、基本介绍 Java编译器(前端编译器,
遥想当年满房间贴上这些彩图记设计模式的场景。 此23种设计模式彩图是从《设计模式之禅》的附录中扫描出来的。 在此留存,静待有缘人。 顺便指出一下图片中一个错误:迭代器模式应该是行为型模式而不是创建型模
前文,分析了JDK动态代理的源码,前文地址:点这里,今天就来写写怎么仿照JDK动态代理的思路,来手写一个高仿低配的动态代理。 一、简单梳理JDK动态代理 在此再重新理一理JDK动态代理是怎么实现的:
一、相关测试代码 模拟一个用户接口: public interface UserService { public void findUser(); } 模拟一个简单的实现: public cl