Java
文章平均质量分 66
Java相关知识
毕加索丶
这个作者很懒,什么都没留下…
展开
-
Interview-Sleuth
sleuth原创 2022-11-17 20:20:42 · 160 阅读 · 1 评论 -
Interview-Gateway
Gateway原创 2022-11-15 16:34:18 · 206 阅读 · 0 评论 -
ClassLoader的双亲委派机制
加载一个类是有规则的,不是一通乱加载,首先是自底向上的,先从Customer ClassLoader查找是否加载过该类,有的话直接返回就好了,如果没有,那就交给他的上级,也就是App ClassLoader去查找,以此类推,一直到最顶层的Bootstrap ClassLoader,如果都没有加载过(好家伙,新来的),这时候就开始另一种方式了,也就是图中自项向下去尝试加载,首先是Bootstrap ClassLoader(因为现在球在它这嘛,所以当然是他先了),Bootstrap ClassLoader会去r原创 2021-11-28 22:42:34 · 300 阅读 · 1 评论 -
JDK_1.8中对hash算法和寻址算法是如何优化的?
首先咱们先来了解一下如何使用key值的hashCode去寻址:获取key值的hashCode利用hashCode%数组长度得到index下标这就是一个寻址的过程,但是取模是一个非常消耗性能的操作,并且如果张三和李四取模后得到下标标一致就会出现hash冲突,解决hash冲突又是是一个耗时的操作,所以JDK做了以下几个步骤来优化;static final int hash(Object key) { int h; return (key == null) ? 0 : (h原创 2021-11-28 22:34:54 · 611 阅读 · 0 评论 -
Redis
一、Redis简介Redis作为一个缓存中间件,它和Memcache这种插件有什么区别呢?为什么Redis如此重要,其实是因为Redis强大的功能:数据类型丰富支持数据磁盘持久化存储,像Memcache是不支持的,如果电脑重启,那所有的数据全没了,直接GG支持主从,这就为集群打下了基础支持分片,大大增加性能Redis不仅功能强大,它还很快0.0,官方的数据是100000+QPS(QPS即query per second,每秒内查询次数),快的就离谱,这是为啥呢?完全基于内存,绝大部分请求原创 2021-10-25 22:15:26 · 195 阅读 · 1 评论 -
Java常用类库与技巧
一、Java异常体系原创 2021-09-02 21:22:24 · 127 阅读 · 0 评论 -
Java多线程与并发-原理
一、synchronized线程安全问题的主要诱因1.存在共享数据(也称临界资源)2.存在多条线程共同操作这些共享数据解决问题的根本方法:同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据进行操作;互斥锁的特性互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程的协调机制,这样在同一时间只有一个线程对需要同步的代码块(复合操作)进行访问。互斥性也被称为操作的原子性。可见性:必须确保在锁被释放之前,对共享变量所做的修改,对于随后获得该锁原创 2021-08-31 20:15:53 · 176 阅读 · 0 评论 -
Java多线程与并发-基础篇
一、进程和线程的区别首先记住一句话:进程是资源分配的最小单位,线程是CPU调度的最小单位(根本)所有与进程相关的资源,都保存在PCB中;进程是抢占处理机的调度单位,线程属于某个进程,共享其资源,即一个进程内可能存在多个线程,多个线程可以共享资源;线程只由堆栈寄存器、程序计数器和TCB组成;总结:1.线程不能看做独立应用,而进程可以看做独立应用;2.进程有独立的地址空间,相互不影响,线程只是进程的不同执行路径;3.线程没有独立的地址空间,多进程的程序比多线程程序健壮,因为单线程的进场如果线程挂原创 2021-08-24 20:13:03 · 160 阅读 · 0 评论 -
深入理解Java垃圾回收机制-GC
一、什么样的对象会被回收GC在回收时并不会将所有对象全部回收,它会先判断该对象是否达到回收的标准,这个标准也很简单,就是看该对象是否有被其他对象引用,如果没有被引用则说明是垃圾,那各位小伙伴就有疑问了,GC是如何判断一个对象是否有被引用的呢?接下来博主就来给大家介绍一下相关的判断算法;二、引用计数算法()引用计数算法听名字就知道是通过计算对象的引用数量来判断是否可以被回收,每个对象都有自己的引用计数器,当被引用时就会+1,完成引用-1,所以当引用数量为0时,则会被判断为垃圾,...原创 2021-07-29 23:49:47 · 188 阅读 · 1 评论 -
深入理解JVM虚拟机
一、Compile Once,Run Anywhere如何实现首先使用javac命令将.java文件编译成字节码文件也就是.class文件,之后交给JVM虚拟机去执行,从而转换成特定平台的执行指令,这也是为什么一份相同的.class文件可以在不同的操作系统上运行的原因,下图是一张java项目从编译到执行的流程图:二、JVM如何加载.class文件下图为java虚拟机的运行结构,分别由Class Loader、Execution Engine、Native Interface和Runtime Data原创 2021-07-22 16:41:20 · 336 阅读 · 1 评论 -
What is “反射“
官方解释:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。通俗解释:只要知道一个人的名字,就能知道这个人的家庭住址,联系方式,身体健康等一系列信息,并且还能够让这个人去做他能够做的任何事情(包括私有的哦0.0),这就叫反射;苍白的语言还是枯燥的,请欣赏一下两段代码,你就能明白反射该怎么使用,上才艺:package com.intretech.refle原创 2021-07-07 17:10:43 · 116 阅读 · 0 评论