自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Zookeeper详解

集群Zookeeper关键概念: Leader. Follower和Observer. 在Zookeeper中只有Leader可以写入, Follower和Observer值负责读, 其中Follower会参与节点选举和过半写成功, 而Observer只是单纯的读取数据功能.特点: 避免了太多的从节点参与写, 影响性能. 如果要横向扩展, 只需要增加Observer就可以了. Zookeeper建议集群个数为奇数,只要超过一般机器就能保证可用.数据节点ZnodeZookeeper中的数据存储于内

2021-03-12 14:11:13 588

原创 JVM区域划分详解

运行时数据区域运行时数据区主要包含了堆、方法区,这两个是线程共享的,Java栈、本地方法栈、程序计数器这三个是线程独享的。程序计数器程序计数器是一块较小的内存空间,可以看成是当前线程所执行的字节码行号指示器。在jvm中. 线程是轮流切换的, 所以在每个线程执行的过程中,当切换后能知道当前执行位置.如果线程正在执行的Java方法,则这个计数器记录的是正在执行的虚拟机字节码指令地址如果正在执行的是Native方法,则这个计数器的值为空。此内存区域是唯一一个在Java虚拟机规范中没有任何OutOf

2021-03-06 14:45:58 483

原创 java集合详解

一、 listArrayListArrayList底层结构采用Object 数组,支持随机访问,而LinkedList底层结构采用双向链表,不支持随机访问。数组的插入和删除元素会受到元素位置的影响:当插入或者删除元素在末尾时,时间复杂度为O1,但是在其他位置是On,但是链表一般都是O1。在内存空间的占用上:数组会有一定的预留空间,并进行扩容,而链表则是每个元素的大小比数组的大。默认在第一次插入元素的时候数组大小为10,当容量不足时,容器自动扩容1.5的容量。数组的复制:ArrayList的实现中大

2021-03-05 20:41:29 151 2

原创 java之juc详解

实现线程的几种方式继承Thread类实现Runnable接口实现Callable接口从线程池中获取Runnable接口和Callable接口的主要区别在于:Runnable接口没有返回值,而Callable接口call方法有返回值。线程的状态主要分为6种:初始、运行、阻塞、等待、超时等待、终止start()方法和run()方法的主要区别在于start是启动一个线程,而run方法是开始执行线程里的方法。死锁什么是线程死锁?死锁是指两个或者两个以上的线程在执行的过程中,由于相互竞争资源而

2021-02-17 18:59:13 739 1

原创 JVM运行时数据区详解

运行时数据区域运行时数据区主要包含了堆、方法区,这两个是线程共享的,Java栈、本地方法栈、程序计数器这三个是线程独享的。程序计数器程序计数器是一块较小的内存空间,可以看成是当前线程所执行的字节码行号指示器。如果线程正在执行的Java方法,则这个计数器记录的是正在执行的虚拟机字节码指令地址如果正在执行的是Native方法,则这个计数器的值为空。此内存区域是唯一一个在Java虚拟机规范中没有任何OutOfMemoryError情况的区域。Java虚拟机栈Java虚拟机栈描述的是Java方

2021-02-17 18:56:20 191

原创 JVM之类加载器

一、 类的加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期主要包括:加载验证准备解析初始化使用卸载二、 类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流(即字节码)”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成

2021-02-17 18:53:34 59

原创 jvm中GC知识详细讲解

一、 JVM垃圾回收算法与分配策略在Java的运行时数据区中,程序计数器、虚拟机栈、本地方法栈这三个区域都是线程私有的,跟着线程一起创建,当线程或者方法结束后,内存也被回收。但是Java堆和方法区不一样,这部分内存是动态分配和回收的,垃圾回收器关注的是这部分内存。GC主要弄明白以下三个问题:那些内存需要被回收?什么时候回收?如何进行回收?那些内存需要被回收?垃圾回收首先要判断那些对象是可以被回收的,有两种垃圾回收算法:引用计数法:给对象添加一个引用计数器,每当有一个地方引用时,计数器+

2021-02-17 18:49:56 789

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除