java基础
文章平均质量分 97
TJtulong
成名在望 百度搬砖
展开
-
从IO-BIO-NIO-AIO-到Netty
文章目录IO操作系统层面IO的多路复用epollBIONIONIO单线程模型NIO-reactor模式AIONetty同步-异步-阻塞-非阻塞IO操作系统层面一个应用程序进行IO时,需要系统内核的参与,发送syscall指令产生中断。发生中断意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如切换线程、分配I/O设备等),需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态转化为核心态,使操作系统获得计算机的控制权,有了中断才能实现多道程序并发执行。应用程序通过原创 2020-05-14 11:00:41 · 526 阅读 · 0 评论 -
JVM调优方法
调优前的规划基础概念什么是调优:根据需求进行JVM规划和预调优优化运行JVM运行环境(慢、卡顿)解决JVM运行过程中出现的各种问题(OOM)调优的目的:吞吐量优先:用户代码时间 /(用户代码执行时间 + 垃圾回收时间);响应时间优先:STW越短,响应时间越短。所谓调优,首先确定追求的什么,是吞吐量优先,还是响应时间优先?还是在满足一定的响应时间的情况下,要求达到多大的吞吐...原创 2020-04-20 10:08:22 · 1338 阅读 · 0 评论 -
G1垃圾收集器详解
关于G1垃圾收集器网上的文章很多,但很多都是对垃圾收集过程进行了简化,没有体现出G1的真正优势,只有掌握G1的整个垃圾处理流程才能真正明白G1的优势,由于本人水平有限,本文必然有许多错误,欢迎指正。从CMS开始CMS垃圾收集的流程CMS收集器(Concurrent Mark Sweep:并发标记清除)是一种以获取最短回收停顿时间为目标的收集器。适合在互联网站或者B/S系统的服务器上,这类应...原创 2020-03-26 11:15:05 · 901 阅读 · 0 评论 -
JVM调优基础
JVM参数调整标配参数各版本之间很稳定,没有变化。-version-helpjava -showversionX参数HotSpot VM 默认为混合模式-Xint:解释执行-Xcomp:第一次使用就编译成本地代码-Xmixed:混合模式XX参数Boolean类型-XX:+或-某个属性值+表示开启 -表示关闭Case:是否打印GC收集细节: -XX:+PrintGCD...原创 2020-03-25 15:46:44 · 1355 阅读 · 0 评论 -
Java的四种引用详解与使用案例
Java有四种引用:强引用、软引用、弱引用和虚引用整体结构java.lang.ref包下强引用:Reference软引用:SoftReference弱引用:WeakReference虚引用:PhantomReference引用队列:ReferenceQueue强引用当内存不足时,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回...原创 2020-03-15 15:37:44 · 710 阅读 · 0 评论 -
Java中关于包、导包、jar包的问题详解
在我们日常的开发中,一般使用编译器进行代码编写和管理,利用Maven进行依赖(jar包)的管理,不需要自己对包进行管理,因此对包的概念并不十分清晰。掌握关于包(package)、import(导包)和jar包的详细关系对理解maven和部署程序等有很大的意义。classpath理解包的概念前,我们首先需要知道jre会去哪个路径找到类文件,这里就引入了classpath的概念。编译、运行Jav...原创 2020-03-12 16:56:58 · 2317 阅读 · 0 评论 -
LinkedList源码分析
文章目录概述继承体系源码分析双向链表查找遍历插入删除概述LinkedList是Java集合框架中一个重要的实现,其底层采用的双向链表结构。和ArrayList一样,LinkedList也支持空值和重复值。由于LinkedList基于链表实现,存储元素过程中,无需像ArrayList那样进行扩容。但有得必有失,LinkedList 存储元素的节点需要额外的空间存储前驱和后继的引用。另一方面,Li...原创 2019-08-20 19:15:23 · 224 阅读 · 0 评论 -
ArrayList源码分析
文章目录ArrayList简介ArrayList源码分析构造方法插入元素扩容机制删除元素遍历System.arraycopy()和Arrays.copyOf()方法两者联系与区别ArrayList核心源码 ArrayList经典DemoArrayList简介ArrayList的底层是数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensu...原创 2019-08-20 19:14:43 · 360 阅读 · 0 评论 -
HashMap源码分析
文章目录概述原理源码分析构造方法初始容量、负载因子、阈值节点查找遍历插入扩容机制(重点)newCap和newThr计算过程节点重新映射链表树化红黑树拆分红黑树链化删除总结概述HashMap最早出现在JDK 1.2中,底层基于散列算法实现。HashMap允许null键和null值,在计算键的哈希值时,null键哈希值为0。HashMap并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序...原创 2019-08-20 19:13:59 · 222 阅读 · 0 评论 -
Java的反射机制
文章目录反射的概述Class类的API获取Class对象的三种方式通过反射获取构造方法获取成员变量获取成员方法反射main方法利用配置文件反射通过反射穿越泛型检查反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类...原创 2019-08-20 13:00:24 · 252 阅读 · 0 评论 -
Head First 多线程
线程概述进程与线程:几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程,当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。线程是进程的组成部分,一个进程可以有多个线程,一个线程必须有一个父进程。它与父进程的其他线程共享该进程所拥有的全部资源。线程的创建与启动Java使用Thread类代表线程,所有的线程对象都必须是Thr...原创 2019-04-20 15:37:10 · 341 阅读 · 0 评论 -
深入理解java虚拟机(全章节完整)
走近JavaJDK、JRE与JVM之间的关系:JDK全程为Java SE Development Kit(Java开发工具),提供了编译和运行Java程序所需的各种资源和工具,包括:JRE+java开发工具。JRE全称为Java runtime environment(Java运行环境),包括:虚拟机+java的核心类库。JVM是运行Java程序的核心虚拟机。内存溢出的问题及解决p...原创 2019-04-27 10:35:41 · 88358 阅读 · 23 评论