从backlog参数到TCP状态

从backlog参数到TCP状态JavaSocket的api可能很多人会用,但是JavaSocket的参数可能很多人都不知道用来干嘛的,甚至都不知道有这些参数。吃饭的路上听到别人聊到backlog参数,于是查了下:backlog用于ServerSocket,配置ServerSocket的最大客户端等

分布式全局不重复ID生成算法

分布式全局不重复ID生成算法在分布式系统中经常会使用到生成全局唯一不重复ID的情况。本篇主要介绍生成的一些方法。常见的一些方式:1、通过DB做全局自增操作优点:简单、高效缺点:大并发、分布式情况下性能比较低有些同学可能会说分库、分表的策略去降低DB的瓶颈,单要做到全局不重复需要提前按照一定的区域进行

ThreadLocal问题记录

ThreadLocal问题记录问题ThreadLocal中set进去的值在线程结束后没有remove掉会造成内存不释放这里说的是指线程结束前不会被gc如果线程执行时间很长或者在线程池中的线程对象验证publicclassThreadLocalDemo{publicstaticvoidmain(Str

List 详解

List详解本文会对List的各种实现基于使用场景,时间复杂度、代码细节、注意事项等维度做分析。Iterator和ListIteratorIterator仅仅定义了三个方法hasNext()next()remove()ListIterator继承自Iterator并新增了hasPrevious()p

jvm内存划分与OOM

jvm内存划分与OOMjvm运行期间起数据区域主要可以分为下面几块:程序计数器,方法区,虚拟机栈,本地方法栈,和堆。而我们平时主要提到的是堆和栈,这里的栈就是指的我们的虚拟机栈。运行过程中,除了程序计数器,其他区域当内存不够用时都可能产生OOM。下面我们将讲一下每种内存区域的作用,并模拟下他们各自产

JVM垃圾回收

JVM垃圾回收不同于C++,Java不需要使用者手动分配和释放内存,jvm会自动帮你回内存。但是免费的往往是最贵的,当你依赖于jvm内存回收时,很多内存回收的细节就容易被你忽略掉,当真正因为内存回收导致应用卡顿STW时,就会让你变大头,所以了解jvm内存回收的机制能帮我们更好的驾驭jvm,当真的遇到

JDK集合框架结构

#JDK集合框架结构集合解决的问题在编程过程中我们通常需要集中存储多个数据,数组看起来像是一个不错的解决方案,但是在创建数组的前提是我们已经明确知道要保存数据的数量。一旦数组创建,数组长度是不能变的,如果我们需要保存一个动态增长的数据(在编译时不确定数据量),java集合就给出了很好的解决方案。集合

关于类加载器-你应该知道的事

关于类加载器-你应该知道的事类加载器是java语言的核心,容器,OSGI,一些web框架以及一些其他的工具如HotSwap都对类加载器重度依赖。这篇文章将对类加载器使用过程中的常见问题做一个分析。类加载过程每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Ja

关于类加载-你可能不知道的事

关于类加载-你可能不知道的事当JVM要加载某个类时,使用的是哪个ClassLoader?这里先给出结论:当JVM要加载某个类时,是用加载当前类的ClassLoader加载的用代码阐述就是:newClassA()等价于this.getClass().getClassLoader.loadClass(&
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×