
面试
文章平均质量分 92
面试过程中,学习新内容
老板加点辣!
这个作者很懒,什么都没留下…
展开
-
面试知识点
java线程模型关于线程的理解关于多线程并发:并发不一定依赖多线程(如php中很常见的多进程并发),但是在java中谈并发大多数和线程拖不了关系线程和进程:线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的分配资源和执行调度分开,各个线程既可以共享资源(内存地址,文件io等),又可以独立调度(线程是cpu调度的基本单位)线程与操作系统:主流的操作系统都提供了线程实现,Java语言则提供了在不同硬件和操作系统平台下对线程操作的统一处理,每个已经执行start()且还未结束原创 2021-04-29 17:02:19 · 174 阅读 · 0 评论 -
数据库索引(详细)
索引对于索引的理解二叉树的索引结构:key存放索引字段, value放索引字段所在行的磁盘地址的文件指针当执行sql语句时,会去找当前的字段是否建立了索引文件,如果拿取字段的值根据搜索方法(遍历)去索引结构找到对应的key,如果相等,则根据value磁盘地址的文件指针去找到对应的数据文件。而不需要进行全表扫描查询这样效率很低使用二叉树(缺点:单边增长)根据主键索引字段插入,使用二叉树会变成线性链表,跟表的轮询一样没区别,某些特定场景(单边增长,)效率太低使用红黑树(数据多,元素在叶子原创 2021-04-29 16:50:42 · 1484 阅读 · 0 评论 -
jvm调优
JVM调优1.关于程序的运行字节码文件可以一份运行,到处执行,不过得在不同的操作系统上安装不同版本的jdk即可程序的运行:先通过java文件经过javac的指令编译成class文件class文件加载在JVM里面,会先进行类装载子系统,然后将相关信息存储到JVM运行时数据区当执行程序的时候,会进行执行引擎去执行相关操作2.关于虚拟机栈理解(详细)虚拟机栈由一个个的栈帧组成,每个栈帧由局部变量表,操作数栈,动态链接,出口方法信息组成。栈:数据结构,先进后出,FILO,方法执行完,就出栈原创 2021-04-29 16:43:46 · 75 阅读 · 0 评论 -
线程池原理理解
线程池原理参考b站图灵诸葛老师1.关于run和start方法我们通过打断点,可以发现run是方法级别的调用,start是线程级别的调用(调用时会多开一个线程进行执行run方法)2.线程池原理解析2.1 对比线程和线程池的创建执行我们对比普通线程创建的方法,和使用线程池创建的方法,我们发现后者比前者快了很多!!!分库分表,分布式事务都会用到线程池普通线程创建执行:线程池的创建执行:2.2 比较三种核心线程池的创建速度newCached > newFix >原创 2021-04-29 16:31:56 · 264 阅读 · 0 评论 -
redis分布式锁原理以及方案
Redis分布式锁关于分布式锁关于分布式锁,一般有三种选择,1、redis2、zk3、DB锁(悲观锁、乐观锁) 乐观锁加版本号,悲观锁加for update超卖问题演变1.使用同步代码块,使用多个服务器集群,就不行了使用nginx做负载均衡2.使用redis的setnx)]问题:进行执行代码块的时候,会导致出现异常,然后无法删除key,导致之后的线程一致无法进行抢购解决办法;使用finally,防止死锁出现宕机解决办法:给key设置过期时间原创 2021-04-29 16:12:19 · 442 阅读 · 0 评论