- 博客(26)
- 收藏
- 关注
原创 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
296
原创 分布式事务解决方案
分布式事务解决方案Q0: 两阶段提交方案/XA方案两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务提交事务前, 会先询问各个数据库准备好了没有,如果任意一个数据库没有准备好,则回滚事务适合单体应用,跨多个库的分布式事务因为严重依赖数据库,效率很低,不适用高并发场景,也不符合服务化的规范Q1:TCC方案Try阶段:对各个服务的资源做检测以及对资源进行锁...
2019-07-10 23:40:33
199
原创 Redis 面试
Redis 面试Q0: redis的数据结构String 、Hash、List、Set、ZSetHyperLogLog、BitMap、Geo、 SkipListQ1: redis和memcached的区别1.Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了...
2019-07-10 20:29:22
210
原创 Java内存模型与多线程
Java内存模型主内存变量都存储在主内存类比硬件主内存线程间变量值的传递需要主内存来完成工作内存每条线程都有自己的工作内存,保存该线程用到的变量的主内存副本拷贝类比硬件高速缓存线程对变量的操作都必须在工作内存中进行,不能直接读写主内存的变量内存间交互原子操作lock: 主内存变量 -> 线程独占unlock: 主内存变量 -> 释放状态read...
2019-01-24 11:48:10
180
原创 类加载机制
类的生命周期加载连接(验证、准备、解析)解析也有可能在初始化之后再开始(动态绑定)初始化遇到new、getstatic、putstatic、invokestatic4条字节码指令时(static without final)使用java.lang.reflect包的方法对类进行反射调用时初始化一个类时,如果父类还没有初始化,则触发父类的初始化(接口不会)用户指定执行的ma...
2019-01-16 17:32:47
141
原创 JVM垃圾回收策略
判断对象是否存活引用计数算法: 对象中添加一个计数器,计数器为0则没有引用优点: 简单 效率高缺点: 无法解决循环引用的问题可达性分析算法: 以GC Roots为起点向下搜索,当一个对象到GC Roots没有任何引用链相连,则是不可用的引用分为 强引用 软引用 弱引用 虚引用四种强度不可达的对象,经过两次标记,才会真正死亡(finalize方法)方法区也有回收: 废...
2019-01-08 11:05:33
1125
原创 JVM内存区域划分
Java内存区域程序计数器当前线程所执行的字节码的行号指示器每条线程有一个独立的程序计数器(线程私有)jvm规范中没有规定任何OutOfMemoryError情况的区域Java虚拟机栈线程私有,生命周期与线程相同描述Java方法执行的内存模型:[方法调用->执行完成]对应[栈帧入栈->出栈]存储局部变量,操作数栈,动态链接,方法出口等信息局部变量表所需的内存...
2019-01-08 11:01:47
568
原创 FastJSON自定义序列化
FastJSON自定义序列化对接第三方机构调用接口的时候 , 经常遇到返回来的JSON格式非常复杂的情况例如返回的报文为以下形式 , 如果解析不好的话, 不利于存取和阅读{ "key":"x", "value":"y"}我们期望的报文格式应该为:{ "x":"y"}本文使用fastjson的ObjectDeserializer接口实现自定义JSON序列化假
2018-12-12 14:11:36
11487
原创 java 压缩图片至指定大小
需求: 压缩图片至300k以下一开始没有思路在网上搜,发现google有个插件叫Thumbnails,然后看到了这篇文章:https://blog.youkuaiyun.com/u010355502/article/details/77197616思路很简单,按一定的比例压缩图片,如果压缩完大小达不到要求,就把压缩后的结果继续压缩,直到符合要求为止本文可以说是对原文作者代码的改进,去除了一些多余的IO过程,把...
2018-03-29 17:35:21
33604
10
原创 基于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
1856
原创 自定义Json注解实现输出日志字段脱敏
背景: 在日志输出的时候,有时会输出一些用户的敏感信息,如手机号,身份证号,银行卡号等,现需要对这些信息在日志输出的时候进行脱敏处理思路: 使用fastjson的ValueFilter对带有自定义注解的字段进行过滤
2017-07-20 10:05:01
4036
2
原创 使用TypeHandler实现数据入库前的过滤
需求: 数据入库前过滤emoji表情1.编写typeHandler类@MappedJdbcTypes({JdbcType.VARCHAR})public class EmojiStringTypeHandler extends StringTypeHandler { @Override public void setNonNullParameter(Prepar
2017-05-11 09:11:37
311
原创 将URL图片转为输出流返回前端
查看图片->向内部影像系统发送请求->返回图片URL->把URL用流返回给前端:@RequestMapping(value = "view") public Result viewImages(@RequestBody @Valid AttachmentModel model, HttpServletResponse response) throws Exception {
2017-05-08 10:01:50
9274
原创 leetcodeOJ 347
题意:给出一个数组,返回前K个最频繁出现的数思路: 其实这个题特别水,用hash记录了出现次数然后排序了一下次数,贴出来主要是因为java自定义排序不熟悉=_=import java.util.*;public class Solution { public List topKFrequent(int[] a, int k) { Arrays.sort(a);
2016-08-25 17:57:14
255
原创 leetcodeOJ 59
题意: 蛇形矩阵...去年秋招TX笔试有这题思路: 观察矩阵,例如n=5,按数字递增的方向,循环次数有 5,4,4,3 - 3,2,2,1 - 1,0这样的规律public class Solution { public int[][] generateMatrix(int n) { int a[][] = new int[n][n]; int r
2016-08-25 17:41:55
240
原创 leetcodeOJ 78
题意: 给出一个数组,返回他的所有子集思路: 用位运算枚举,易知长度为n的数组子集有2^n个,比如n=3,位运算枚举结果为 000,001,010,011,100,101,110,111import java.util.ArrayList;import java.util.List;public class Solution { List> ans = new Array
2016-08-25 17:16:49
267
原创 leetcodeOJ 39
题目:Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.The same repeated number may be chosen from C unlimited n
2016-08-25 17:11:41
257
原创 leetcodeOJ 168
题意: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB 刚看上去像进制转换,然后取余的时候取余26得0的情况卡Z卡了一下,其实只要去掉进位即可public class Solution { public String convertToTitle(int n) {
2016-08-24 23:13:45
364
转载 半平面交,求解多边形内核
关于求多边形内核的算法什么是多边形的内核?它是平面简单多边形的核是该多边形内部的一个点集,该点集中任意一点与多边形边界上一点的连线都处于这个多边形内部。就是一个在一个房子里面放一个摄像 头,能将所有的地方监视到的放摄像头的地点的集合即为多边形的核。 如上图,第一个图是有内核的,比如那个黑点,而第二个图就不存在内核了,无论点在哪里,总
2016-04-26 23:05:22
373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人