自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JVM学习笔记1】JVM与Java体系结构

JVM与Java体系结构一、JVM的重要性​ 面试,大厂必备;​ 中高级程序员的必备:项目管理、调优的需要;​ 极客精神:垃圾回收算法、JIT、底层原理。Java相较于C/C++自带安全检查、垃圾回收、动态内存分配,入门学习起来相对更简单一些,工作以后必然要面临很多问题,学习JVM还是很有必要的。二、Java与JVMJava,跨平台的语言:write once,run anywhere。JVM,跨语言的平台:JVM只关注字节码文件,任何语言编写的程序通过编译器变成字节码文件都可以

2021-05-29 20:13:08 151

原创 记录一个Arrays.asList()的小坑

  背景:这几天做算法题的时候,想要在不改变数组的情况下,了解到数组排序后每个数所在的下标,所以就想到转成List,用List排序,后续用集合也可以进行很多方便的操作。  实际使用Arrays.asList()方法的时候,发现并没有我想的那么简单。  话不多说,上代码: Integer[] nums = {5,4,2,6,8,9,3}; List<Integer> list = Arrays.asList(nums); // 对list进行排序

2020-08-08 21:52:11 365

原创 面试题整理(9)

每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。1. Spring框架用到的设计模式  1、工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例。  2、单例模式:Bean默认为单例模式。  3、代理模式:Spring AOP功能用到了JDK动态代理和CGLIB字节码生成技术。  4、模板方法:用来解决代码重复问题。比如:RestTemplate、JmsTemplate、JpaTemplate。  5、观察者模式:定义了对象键一种一对多的依赖关系

2020-08-06 23:37:09 152

原创 面试题整理(8)

每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。1. 什么是Spring  Spring是一个轻量级的IOC和AOP容器框架,是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发。主要由以下七个模块组成:  1、Spring Core:核心类库,提供IOC服务。  2、Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等)。  3、Spring AOP:AOP服务。  4、Spring DAO:对

2020-08-05 22:57:18 113

原创 面试题整理(7)

每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。1. notify()和notifyAll()的区别  notify()可能会造成死锁,而notifyAll()不会。  任何时候只有一个线程可以获取锁,也就是说只有一个线程可以运行synchronized中的代码,使用notityAll()可以唤醒所有处于wait状态的线程,使其重新进入锁的争夺队列中,而notify()只能唤醒一个。  wait()应配合while循环使用,不应使用if,务必在wait()调用前后都检查条

2020-08-04 22:37:00 99

原创 面试题整理(6)

每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。1. 并行与并发的区别  1、并行指多个事件在同一个时刻发生;并发指的是在某时刻只有一个事件发生,某个时间段内由于CPU交替执行,可以发生多个事件。  2、并行没有对CPU资源的抢占;并发执行的线程需要对CPU资源进行抢占。  3、并行执行的线程之间不存在切换;并发操作系统会根据任务调度系统给线程分配线程CPU执行时间,线程的执行会进行切换。  并行和并发是取决于操作系统对线程的调度和计算机硬件资源(CPU个数和核数)的,

2020-07-29 23:06:59 164

原创 面试题整理(5)

每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。1. 单例模式的双重检查锁为什么要加volatile?  因为对象创建的过程不是一个原子性操作。  对象创建过程分为三个步骤:1、申请内存。2、执行构造方法,给成员变量赋值。3、将创建的对象地址给引用变量。  其中步骤2,3是可能发生指令重排序的,如果发生3在2之前,就会出现检查发现引用变量不为null,之后直接返回实例的情况,这种情况下的实例中的成员变量只进行了初始化,还没有执行构造方法赋值,可能出现空指针异常。  加上

2020-07-28 17:17:52 106

原创 面试题整理(4)

每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。1. 什么是B+树?  B+树是一种树的数据结构(可以类比平衡二叉树),特点是能保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。B+树元素自底向上插入,与二叉树相反。  1、非叶子节点不存data,只存key,可增大度。  2、数据只存在叶子节点。对于MyISAM,叶子节点存指针;对于InnoDB,普通索引叶子节点存主键,主键索引叶子节点存一行数据。  3、叶子节点本身依关键码的大小自小而大的顺序连接,区间访问

2020-07-27 15:56:47 202

原创 面试题整理(3)

每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。1. Spring MVC执行流程  1、用户发送请求到前端控制器DispatherServlet。  2、DispatherServlet收到请求后,调用HandlerMaping处理器映射器。  3、处理器映射器找到具体的处理器(可以通过xml配置、注解进行查找),生成处理器对象及处理拦截器(如果有则生成)一并返回给DispatherServlet。  4、DispatherServlet调用HandlerAdapt

2020-07-26 20:09:37 123

原创 面试题整理(2)

每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。1. Mybatis的缓存机制  首先是缓存的作用:如果缓存中有数据就不用从数据库中获取,减少了和数据之间的交互次数,大大提高系统的性能。  Mybatis的缓存分为一级缓存和二级缓存,一级缓存对应sqlSession,默认开启,二级缓存对应mapper的命名空间(namespace),默认不打开,使用二级缓存属性类必须要实现Serializable序列化接口(用来保存对象的状态)。  ps:看到过一个面试题就问Serial

2020-07-25 22:19:16 61

原创 面试题整理(1)

每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。1. CopyOnWriteArrayList原理  原理:不同的线程访问同一资源时,只有在写操作时才会复制一份新的数据,否则都是访问同一数据,具体流程为先拷贝存储的数组,然后添加元素到拷贝好的数组中,然后用现在的数组去替换成员变量的数组。底层源码是add操作时通过synchronized加锁,保证只有一个线程进行变更,会将数组复制一份,操作副本,操作完成后替换数组。  优势:对于读多写少的数据使用这个很好,例如配置、黑名单、

2020-07-24 21:49:29 115 1

原创 使用EndNote导出Word中的文献,并按照Word中引用的顺序排序

  EndNote是一款非常好用的文献管理工具,本科的时候读文献少,毕设要求也低,当时觉得用这个真是多此一举,直接复制粘贴不就得了,读研后才发现这真是一款神器,它可以管理文献,还可以分享文献,而且读文献的时候还可以用EndNote导出引用过的文献。  最近写东西要用到师兄博士论文里的一些引用文献,他引用了200多篇文献,要是一一去找实在麻烦,他就告诉我EndNote可以直接导出文献库,让我去学一下(疫情期间也没法当面教),发现网上有导出教程,但是大多都是默认作者排序,网上关于排序的教程基本没有(查官网是不

2020-05-14 18:30:00 16943 10

原创 IDEA 2019.3.1 解决Lombok找不到符号的问题

在跟着学习一个项目的过程中,看到老师用lombok很优雅就想着尝试一下,没想到出现下边的问题,经过查阅资料也没有解决,突发奇想是不是版本问题,于是尝试一下竟然成功了,分享给大家。List item...

2020-03-11 12:57:15 2645 1

空空如也

空空如也

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

TA关注的人

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