- 博客(96)
- 资源 (6)
- 收藏
- 关注
原创 [shopee内推] 前端、后端、测试目前公司拉美市场急缺人才
待遇超级好。薪资超级高工作地点:深圳可直接发送简历到:ziwen_jiang@qq.com可加微信:JZWen_tiger职位描述岗位职责:1、参与面向东南亚等地区的线上&线下支付、钱包等金融业务的后台系统的设计和开发实现,包括账户、交易、安全等;2、面向金融业务,实现强安全、高可靠的复杂事务系统;并针对互联网应用场景,提供高并发处理能力和高效的操作体验;3、面向东南亚多个地区的不同的业务特性、物理环境和监管需求等,定义灵活适配的系统功能模块和部署方案。【
2021-10-30 22:05:40 693
原创 GIT操作合集
怎么把多个commit合并到一个commit合并commit的好处是方便做code review,另外代码也会很干净。选择git reset选择你要reset commit位置,然后选择Soft,这样中间的commit就会消失,但是commit中修改的代码会保留着,然后需要你再重新commit。你再重新commit 写入新的commit message。...
2021-09-22 17:34:03 142
原创 Guava Cache 介绍 GET 源码解析
基本介绍——Guava Cache 的作用 我们的系统需要依赖一些数据,但是哪些数据在别的应用程序上,比如第三方服务、DB 、ES 等等持久性存储,然后我们访问数据每次都要发起请求访问数据,而且这些第三方服务等等不一定能扛得住我们的访问量。特别是DB。所以我们会采用 Cache 他会保存当前JVM 的缓存中去。一般他的有效期会比较短,一两分钟啥的。当然如果你的系统需要访问的数据必须保证准确无误。那最好还是不要用cache,这种适合那种能承担着一小段时间数据不准确。...
2020-12-26 21:41:22 1060
原创 几行代码实现限流,实用又简单
场景依赖系统脆弱 自己的系统依赖别人的系统很脆弱,支持不了高qps的请求,比如一下高计算量的AI系统,或者一个高计算量的数据系统。这里都是作者经历过的。悄悄告诉你,你要是把别人系统打挂了,锅是你背的。哈哈哈哈。所以一些基本的限流操作要学会。自己系统计算量大,逻辑复杂还需要防止恶意请求作者也经历过,自己的系统真的太复杂了,毕竟需要一定的安全性,不能直接让别人请求,这个时候一般会在前面加一个服务,并且加上限流操作以及一些权限校验什么的,成功了之后再去请求后面服务。...
2020-11-26 19:16:01 497
原创 简单快捷优雅的实现一个定时任务
什么场景获取token最近也是遇到了一些烦恼,比如获取 token ,一天内获取的次数有限,每次获取到的 token 也是有一定的有效期。针对这种情况,其实需要我们定时的去获取token,并且刷新到缓存中,但是如果在多台机子的情况下,我们需要去做一个分布式锁,每次只保证有一台机子去获取token。单机实现生产消费自己生产自己消费,其实就是一端往一个队列丢数据,另一端往队列里面消费数据,当然是阻塞队列。当然这种情况下肯定不好的,因为操作都是基于内存的,重启机子的时候会丢失...
2020-11-26 11:28:50 218
原创 MySQL的 redo undo binlog 几种log
redo log : 记录一次写的操作,当服务器挂了的时候可以用是redo log 恢复数据。undo log : 记录一次写的操作的相反操作,事务回滚的时候,就把他拿出来执行一遍。数据就恢复了原来的样子。binlog : 做主从同步时候,主服务器会生成binlog , 然后从数据库会启动一个IO线程去不断地拉取binlog,拉到本地执行一遍,然后两者数据就同步了。出现极端情况怎么办:...
2020-03-31 13:38:09 145
原创 讲一下epoll
先认识一下select 和 pollselect 过程:首先将一个连接分配一个channel,然后注册到select上面,每一个channel都有一个自己的状态,表示自己是否就绪,然后select 会遍历所有的channel,然后判断是都就绪,就绪的话就开启一个线程为他分配一个buffer,然后去读写操作poll : 因为select能存储的fd,只有1024个,所以会限制并发量。se...
2020-03-29 11:13:33 210
原创 scala编程语言学习
1、scala没有静态方法和静态属性一个文件里面了已有 class Demo{ 非静态属性和非静态方法 } object Demo{ 静态属性和静态方法 }
2019-10-10 14:25:11 174
原创 IO多路复用模型——epoll
1、IO多路复用模型是阻塞IO,阻塞部分是select函数而不是socket,IO多路复用模型是可以监听多个socket连接, IO多路复用模型目的不是单个连接有多快,而是需要连接大量的请求。2、epoll的ET 需要保证socket是non block socket首先介绍一个select 和 poll 模型吧select : 所有的socket连接都注册到一个sele...
2019-08-11 10:27:36 461
原创 axios踩踩坑
关于后台接受不到参数请看 axios get请求// 为给定 ID 的 user 创建请求axios.get('/user?ID=12345') .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });...
2019-07-25 18:02:42 178
原创 数据库事务底层原理
参考与:https://www.cnblogs.com/takumicx/p/9998844.html数据库事务特性:ACID原子性:指的是我们的操作不可分,要么执行成功,要么执行失败。隔离性:事务之前互相隔离互不影响一致性:系统从一个一致性状态变成另一个一致性状态,系统状态满足完整性约束,(转账前后总金额不变)持久性:事务一旦提交,对数据库的更新就会持久保存到数据库中,...
2019-07-22 16:50:19 1257
原创 快速入门前端框架Vue
如果快速入门前端框架vue,我将其分为三个阶段。准备阶段1、参考官网文档Vue指令学习。 切记:自己可以把官网上面的指令都敲一遍。2、了解Vue生命周期、组件、路由等 组件:了解组件之间如何传值 路由 : 子路由 ,怎么保证一块页面不变化,另一块页面进行路由跳转(导航栏与具体详情页)3、UI框架的了解。 例如Element UI , 熟悉怎么使用。实战阶...
2019-07-19 09:18:33 239
原创 Spring事务的七种传播行为
一直都是模棱两可的概念,所以这次遭到报应了,被面试官问到了,我是真的不记得了。重新梳理一下1、REQUIRED大白话:如果存在事务,则支持当前事务,如果没有事务则开启一个新的事务2、SUPPORTS大白话: 如果存在事务,则支持当前事务,如果不存在事务,那么就无事务执行3、MANDATORY大白话:如果存在事务,则支持当前事务,如果不存在事务,则抛出异常。4、RE...
2019-06-19 23:48:02 209
原创 合并两个有序链表_LeetCode
递归的思路去做public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1 == null) return l2; if (l2 == null) return l1; if(l1.val < l2.val){ l1.next = merg...
2019-06-18 00:06:50 132
原创 TCP流量控制
当我们接收窗口发过来的是0个窗口,这个时候我们会启动持续计时器,这个计时器要是超时的话,会进行发送一个零窗口探测报文,然后接收端接受之后,依然是需要确认报文的,还会发送接受窗口大小。视频来源于 b站...
2019-04-25 21:14:53 156
原创 TCP拥塞控制
1、慢开始和拥塞避免先介绍几个值cwnd:拥塞窗口大小 ssthresh:慢开始门限首先我们的拥塞窗口开始增长 , 如果没有发生拥塞的话,那就以每次 cwnd * 2 的速度增长,如果 cwnd > ssthresh , 就会拥塞避免,然后每次窗口增长就是+1 , 当发现拥塞的情况,记录下这个时候的窗口大小 cwnd,那么窗口大小里面变为1,sst...
2019-04-25 20:55:38 240
原创 堆排序算法
前置知识:我们的一个最大最小堆可以构成一个数组。以最大堆为例。当前节点下标是i,那么可以知道父节点:parent = (i - 1)/ 2左孩子:left = 2 * i + 1右孩子:right = 2 * i + 2//直接看代码吧package data_strust;/** * 堆排序 */public class Heap_sort { ...
2019-04-19 17:42:53 113
原创 字符串最小变换次数——动态规划
感觉自己算法太菜了。woc,想找一个算法大佬,给他做舔狗。package offer;/** * 动态规划求解-将字符串A变换为字符串B 所用的最少字符操作次数 */public class Day0418_demo01 { public static int fun(String s1 , String s2){ int len1 = s1.leng...
2019-04-18 15:07:24 2624
原创 对称加密和非对称加密
对称加密: 就是使用一个秘钥,接收双方都是用这个秘钥进行加密解密。非对称加密: 一个私钥一个公钥,使用公钥加密,私钥解密。我们应该怎么保证传输过程中安全呢?1、首先服务端生成一个私钥和一个公钥,非对称加密。2、客户端请求服务端的公钥,服务端就将这个公钥发送给客户端。3、客户端生成一个对称加密的秘钥4、客户端将这秘钥对公钥加密,并将加密的数据还有公钥发送给服务端,5...
2019-03-29 18:47:32 200
原创 java内存溢出场景
栈溢出 :其实就是虚拟机栈内存满了,虚拟机栈就是存方法的,一个虚拟机栈帧中有 操作数 参数列表 动态链接 返回值stackoverflow情况1、方法递归没有出口,或者方法回调太长,也就是栈帧太多了,虚拟机栈存满了。2、定义的数组太大了,在栈中存不下3、指针或数组越界。这种情况最常见,例如进行字符串拷贝,或处理用户输入等等。OutOfMemoryError堆溢出...
2019-03-29 16:02:08 310
原创 Threadlocal能干啥
以前都只知道他保存了当前线程变量的一个副本,却不知道他到底能干啥,而且说这个保存了当前线程的副本也是很抽象的,怎么理解这玩意。下面老哥带你进入Threadlocal。Threadlocal能干啥?你可以吧Threadlocal想象成一个redis,Threallocal里面维护了一个叫做ThreadlocalMap的变量,使用key,value存储,重点来了。比如我们有多个线...
2019-03-29 10:39:58 325
原创 最小代价爬楼梯_offer
你需要爬上一个N层的楼梯,在爬楼梯过程中, 每阶楼梯需花费非负代价,第i阶楼梯花费代价表示为cost[i], 一旦你付出了代价,你可以在该阶基础上往上爬一阶或两阶。你可以从第 0 阶或者 第 1 阶开始,请找到到达顶层的最小的代价是多少。N和cost[i]皆为整数,且N∈[2,1000],cost[i]∈[0, 999]。public class Demo02 {...
2019-03-28 15:28:27 482
原创 数组中出现次数超过一半的数字_剑指offer
为什么我要写这个题目,因为这个题目真的很棒。谁想出来的 ,厉害呀 public int MoreThanHalfNum_Solution(int [] array) { int res = array[0]; int count = 1; //然后我们遍历这个数组 for (int i = 1; i < arr...
2019-03-27 19:58:11 129
原创 JUC_大厂面试必问
J.U.C---------java.util.concurrent 包下的类。大家先来看一张图几片吧。首先juc分为tools:lock :collections:线程池:atomic :...
2019-03-26 16:37:35 5123 1
原创 S型 / 层序遍历二叉树_剑指offer
package offer;import java.util.ArrayList;import java.util.List;import java.util.Queue;import java.util.Stack;import java.util.concurrent.ArrayBlockingQueue;public class Day0324_demo02 { ...
2019-03-24 10:49:19 1071 1
原创 栈的压入、弹出序列_剑指offer
package offer;import java.util.Stack;public class Day0324_demo01 { public static void main(String []args){ int a[] = {1,2,3,4,5}; int b[] = {4,3,5,1,2}; System.out.p...
2019-03-24 09:27:24 150
原创 Https握手过程
转载自:https://blog.csdn.net/cout__waht/article/details/80859369转载不注名出处的,一律从浏览器屏蔽。内容稍微自己整理了一下1、客户端发出https请求2、服务端配置,也就是自己准备一套证书 可以自己做一套,或者ca证书,就是公钥和私钥,公钥给别人用,私钥给自己解密用。3、传输证书这个证书其实就是公钥...
2019-03-21 20:55:37 174
原创 linux常问面试题
写下来慢慢看linux1、查看当前路径 pwd2、怎么清屏? 清屏: clear3、怎么退出当前命令?退出当前命令: ctrl+c 彻底退出4、怎么执行睡眠?执行睡眠 : ctrl+z 挂起当前进程fg 恢复后台5、怎么查看当前用户 id?查看当前用户 id: ”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名6、查看指定帮助用什么命令? 查看指定...
2019-03-21 20:08:00 12744 1
原创 Synchronized底层实现 + Synchronized锁优化_大白话
Synchronized同步,被修饰的方法块,同步方法,每次都只让一个线程去执行。那么那么,他底层是怎么实现的呢?对于synchronized语句当Java源代码被javac编译成bytecode的时候,会在同步块的入口位置和退出位置分别插入monitorenter和monitorexit字节码指令。而synchronized方法则会被翻译成普通的方法调用和返回指令如:invokevirtua...
2019-03-21 17:19:49 241
原创 volatile关键字 + happens-before原则
volatile : 可见性、有序性。记住了,人家不保证原子性的。先说说volatile关键字被volatile关键字修饰的变量,再多线程中,一个线程修改他会立即被其他线程看到,可能这样你不太理解,首先我们看那一下java内存模型图吧。也就是说,我们看到了,当一个线程想要访问一个变量的时候,我们首先要去主内存读取变量,然后拿到自己的工作内存,然后做相应的处理,最后...
2019-03-21 15:58:36 1292 3
原创 为啥使用B+树而不是B树
InnoDB和Myisam为什么使用B+树而不是B树。这个问题最好还是要搞懂一点。因为我这里很有可能会问到这方面的。我也很想和别人扯索引,然后就会扯到这个。加油。B树特点: 1、m叉搜索,降低高度2、所有的节点都存储数据。3、中序遍历可以得到一个排序好的索引。为什么可以建索引: 就是可以降低高度,然后减少磁盘IO的操作。B+树特点:就是在B树上...
2019-03-18 23:14:34 992
原创 ArrayList底层实现_源码阅读
加油看源码。不会看源码的程序员不是好架构师。List是一个接口,通过看这个接口我才想起来,接口是可以实现方法的这是list接口下面的一个方法,我们可以很清楚的看到,他实现了这个方法,但是这个方法是使用default修饰。记住就行 @SuppressWarnings({"unchecked", "rawtypes"}) default void sort(Comparat...
2019-03-18 20:56:44 246
原创 集合迭代器_Iterator
他是集合类的顶层类。每个集合都有一个 Iterator(); 这个方法。当你迫于无奈的时候你去看源码,你就会发现一切都恍然大悟。后悔自己没有看源码。难受。我就贴上重要的几个方法。我这里就只介绍list集合 , 首先你一定要明白底层是使用数组存储元素。 使用的是一个Itr() 对象,好,我们往下走public Iterator<E> iterator() { ...
2019-03-16 15:00:05 253 2
原创 full GC 和 Minor GC
我服了这个问题。我特么当时是很清楚的,一下就给搞蒙了。可是事后我百度一下,除了System.gc()我没说其他的我都说了。 我真的懵,面试官没有反应,总感觉我哪里不对,这个面试官总是在带有质疑的态度和我说话。我懵逼了呀。Full GC 有以下几种情况1、system.gc();2、老年代满了3、永久代满了回答以上三种即可 当然还有 不要给自己挖坑4、通过Mino...
2019-03-16 14:00:18 225
原创 java信号量_Semaphore
他是一个线程同步结构,用于在线程之间通讯,就像加了一把锁一样,防止我们的信号消失(保护这块区域)。Semaphore是J.U.C包下的一个类。多个线程可以通过他进行共享资源。它内部维护了一个计数器(计数器表示同时访问的最大访线程数)。然后还有两个重要方法。acquire() ; 当我们进行访问资源时的时候我们会进行对那个计数器-1; (计数器必须要大于等于0)再去访问资源releas...
2019-03-16 13:45:04 230
原创 杭州顶象技术面经+解析
额,第一份面经,电面,好难受,好像凉了,一篇凉经1、跨域解决这是一道常见面试题。所以我还是需要多看看nginx原理,因为我还是很有可能就答ngxin的。1、jsonp使用一个标签去做<script> 利用src这个特殊属性。2、后台解决这个问题在请求头里面添加一个参数。response.addHeader("Access-Control-Allow-Or...
2019-03-15 21:02:12 1862
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人