- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 CPU高速缓存,缓存一致性协议 与 JMM
CPU高速缓存,缓存一致性协议 与 JMMCPU高速缓存CPU为何要有高速缓存 cpu运行的速度远远高于磁盘 IO的速度,所以人们为了再磁盘io处理完成之前,不让cpu等待,让其尽可能的执行更多的命令,所以用了cpu高速缓存。(解决I\O速度和CPU运算速度之间的不匹配问题) 带有高速缓存的CPU执行计算的流程程序以及数据被加载到主内存 指令和数据被加载到CPU的高速缓存 CPU执行指令,把结果写到高速缓存 高速缓存中的数据写回主内存目前流行的多级缓存结构由于CPU的运算.
2021-01-16 23:07:45
1080
原创 Hadoop ha搭建
windows 软件 必须从G盘加载一个文件 conf xmllinux /a /b /c /d /e /f /g mount /g -> disk:G分区 /b -> disk:B分区 软件 必须从/g 文件好处:软件具备了 移动性hdfs 目录树结构角色 即 JVM进程-----------------------------------------------数据持久化: 日志文件: 记录实时发生的增删改的操作 mkdir /a.
2021-04-28 21:42:23
204
原创 JVM-oop-klass模型
JAVA运行时环境逻辑图一、oop-klass模型oop-klass模型是JVM底层的数据结构,理解JVM的必要概念• Klass表示Java类在JVM中的存在形式 • InstanceKlass表示类的元信息 • InstanceMirrorKlass表示类的Class对象 • InstanceRefKlass表示? • ArrayKlass表示数组类的元信息 • TypeArrayKlass表示基本数组类的元信息 • ObjArrayKlass表示引用数组类的元信息•
2020-12-18 22:27:02
2285
1
原创 双亲委派类加载详解
双亲委派模型介绍每一个类都有一个对应它的类加载器。系统中的 ClassLoder 在协同工作的时候会默认使用 双亲委派模型 。即在类加载的时候,系统会首先判断当前类是否被加载过。已经被加载的类会直接返回,否则才会尝试加载。加载的时候,首先会把该请求委派该父类加载器的 loadClass() 处理,因此所有的请求最终都应该传送到顶层的启动类加载器 BootstrapClassLoader 中。当父类加载器无法处理时,才由自己来处理。当父类加载器为null时,会使用启动类加载器 BootstrapClassL
2020-11-21 12:14:11
568
原创 spring 基础知识
1 什么叫spring-freamworkSpring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此,
2020-06-28 11:49:55
1160
原创 ConfigurationClassPostProcessor bean工厂后置处理器源码总结
1、ConfigurationClassPostProcessor 概述: ConfigurationClassPostProcessor 是spring 唯一内置的bean工厂后置处理器,对有 @Configuration、@Import 、 @Component、@ComponentScan 以及 @ImportResource 这几个注解的类都是配置类,都会对其进扫描解析。2、ConfigurationClassPostProcessor 的继承流程图Spring有一个内部的BeanF..
2020-06-24 16:32:20
771
转载 类文件结构
一概述在Java中,JVM可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java程序无须重新编译便可在多种不同操作系统的计算机上运行。Clojure(Lisp语言的一种方言)、Groovy、Scala等语言都是运行在Java虚拟机之...
2020-06-23 23:54:19
224
原创 类加载过程梳理
1.加载过程:1.1 通过类的全限定名获取二进制流1.2 通过字节流代表的静态存储结构转换成方法区运行时数据结构1.3 生成这个类的class 文件,作为方法区的访问入口(方法区:方法区是各个线程共享的内存区域,用于存储被虚拟机加载的类信息,常量,静态常量,即时编译器编译后的代码,运行时常量池。详细请看《深入虚拟机》)总的来说就是,通过类名把文件加载到二进制字节流,然后转成方法区的存储接口,在生成class作为方法访问入库。1.4 这个过程涉及到类加载的双亲委派机制1.4..
2020-06-23 23:16:10
195
原创 List Map String,Object去重复
业务场景:在别人调用我们接口保存数据的时候,而我们要通过传过来的数据在数据库中找出哪些数据是已经存在的,存在的做更新操作,不存在的做插入操作。在这种业务场景的时候可能你要用到,List<Map<String,Object>>去重复。假如我们接收的数据json:"{"goodsOrds":[{"dljgId\":"e9369b7bc2c149f690fbd1f1734cf78...
2018-02-11 15:57:41
5059
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅