
学习笔记
文章平均质量分 89
worstezreal
这个作者很懒,什么都没留下…
展开
-
基于dubbo的hessian协议远程调用实例
最近在学习dubbo,捣鼓了两天,踩了许多坑,写出这个实例,记录一下1.构建工具使用gradle构建,build文件如下group 'com.worstEzreal'version '1.0'apply plugin: 'java'apply plugin: 'war'sourceCompatibility = 1.8repositories { mav原创 2017-09-14 16:05:48 · 1861 阅读 · 0 评论 -
JVM内存区域划分
Java内存区域程序计数器当前线程所执行的字节码的行号指示器每条线程有一个独立的程序计数器(线程私有)jvm规范中没有规定任何OutOfMemoryError情况的区域Java虚拟机栈线程私有,生命周期与线程相同描述Java方法执行的内存模型:[方法调用->执行完成]对应[栈帧入栈->出栈]存储局部变量,操作数栈,动态链接,方法出口等信息局部变量表所需的内存...原创 2019-01-08 11:01:47 · 569 阅读 · 0 评论 -
JVM垃圾回收策略
判断对象是否存活引用计数算法: 对象中添加一个计数器,计数器为0则没有引用优点: 简单 效率高缺点: 无法解决循环引用的问题可达性分析算法: 以GC Roots为起点向下搜索,当一个对象到GC Roots没有任何引用链相连,则是不可用的引用分为 强引用 软引用 弱引用 虚引用四种强度不可达的对象,经过两次标记,才会真正死亡(finalize方法)方法区也有回收: 废...原创 2019-01-08 11:05:33 · 1131 阅读 · 0 评论 -
Java内存模型与多线程
Java内存模型主内存变量都存储在主内存类比硬件主内存线程间变量值的传递需要主内存来完成工作内存每条线程都有自己的工作内存,保存该线程用到的变量的主内存副本拷贝类比硬件高速缓存线程对变量的操作都必须在工作内存中进行,不能直接读写主内存的变量内存间交互原子操作lock: 主内存变量 -> 线程独占unlock: 主内存变量 -> 释放状态read...原创 2019-01-24 11:48:10 · 181 阅读 · 0 评论 -
类加载机制
类的生命周期加载连接(验证、准备、解析)解析也有可能在初始化之后再开始(动态绑定)初始化遇到new、getstatic、putstatic、invokestatic4条字节码指令时(static without final)使用java.lang.reflect包的方法对类进行反射调用时初始化一个类时,如果父类还没有初始化,则触发父类的初始化(接口不会)用户指定执行的ma...原创 2019-01-16 17:32:47 · 142 阅读 · 0 评论 -
分布式事务解决方案
分布式事务解决方案Q0: 两阶段提交方案/XA方案两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务提交事务前, 会先询问各个数据库准备好了没有,如果任意一个数据库没有准备好,则回滚事务适合单体应用,跨多个库的分布式事务因为严重依赖数据库,效率很低,不适用高并发场景,也不符合服务化的规范Q1:TCC方案Try阶段:对各个服务的资源做检测以及对资源进行锁...原创 2019-07-10 23:40:33 · 200 阅读 · 0 评论 -
zookeeper 面试
zookeeper 面试Q0: ZK的使用场景分布式协调 eg.A系统跟B系统交互,A系统如何知道B系统的处理结果?可以用ZK协调 A系统发生请求后可以在ZK上注册监听器,当B系统处理后,修改节点,会通知A分布式锁 创建znode,同一时间只能有一个元数据/配置信息管理 比如kafka、storm、dubbo使用zk管理配置...原创 2019-07-10 23:45:46 · 297 阅读 · 0 评论