自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

0117

本人主要方向为云计算与Java后端开发

  • 博客(358)
  • 收藏
  • 关注

原创 Java校招面试知识点总结

文章目录操作系统SQLRedisJVMGC线程锁类库网络Spring面试题自我总结操作系统1.操作系统概览2.进程管理之进程实体3.五状态模型4.进程管理之进程同步5.进程调度6.死锁7.内存分配与回收8.段页式存储管理9.虚拟内存10.Linux存储管理11.操作系统的文件管理12.操作系统的设备管理13.线程同步之互斥锁14.线程同步之自旋锁15.线程同步之读写...

2020-02-02 01:33:51 2295 3

原创 C++ STL学习

Vector简单的遍历#include <iostream>#include <vector>#include <queue>using namespace std;int main(){ vector<int> v1(5,42);//生成一个具有5个42的vector v1.push_back(1);//add for(int k = 0 ; k<v1.size() ; k++){//遍历 co

2020-10-28 21:48:20 503

原创 面试复盘

限流算法中,计数器方法,可以如何优化滑动窗口先说一下原来正常算法的弊病,我们假设qps是100,最后10ms过来100个请求,下一秒的前10ms又过来100个请求,那么就会在某一秒中一次性接受到200个请求,那肯定会出问题。但是其实本质原因是,分割时间的粒度太粗了,我们可以按照情况给窗口划分更细的粒度。比如,10ms一个小窗口,然后因为我们总窗口是1秒,那么我们就做一个累加计算,当然了,越细粒度对我们的业务场景肯定更友好,但是也肯定会对cpu密集型计算导致的压力也会增大。不过本质就是为了在接收到.

2020-09-21 10:50:51 547 2

原创 疏漏总结(二十七)——JVM调优

啊,面试的时候因为简历提到了JVM调优,所以在这里也总结一下。其实一般情况下,我们对于JVM进行调优,都是首先多线程进行完一拨优化了,然后线程了安全了,线程池什么的都用了,最后一步才会轮到对JVM进行调优,GC调优等等,而且在这之后,我们还必须经过大量的压测才能证明出是否调优真的优化了。目标首先我们应该清楚,我们JVM调优的目的是什么?减少Full GC的次数降低stw的时间,提高吞吐量全力阻止oom的发生尽力不让老年代的内存占用达到上限方法现在来主要说一下进行JVM调优的方案。首

2020-09-05 00:25:46 456

原创 面试中的常见架构设计题

本篇文章的总结主要来自于本人的主观看法,欢迎各位在评论区指导。文章目录秒杀限流单进程限流分布式限流秒杀秒杀其实不仅是大家简历上的一些热门,也是场景题中的一些热门考点。场景描述:秒杀一般指的是针对某个或者某几个特定的产品,有瞬时爆发的QPS轰击过来,频繁的进行数据库的读操作,少量的进行数据库的写操作(扣货扣款)。设计难点与解决思路:支付采用分布式事务,比较耗时。在支付方面,其实我们一般都用TCC分布式事务去实现,因为这个要求一定的即时性,不能异步去完成主流程(发起支付,检验存货量,余额,扣款

2020-09-03 22:46:12 1333

原创 阿里淘系三面复盘

1000的qps打过来,超过你的极限,你需要做什么措施。熔断和限流有什么区别有限流就不需要熔断了自己实现一个限流的系统,要怎么去实现。如何去监听到实时的qpsQps怎么去计算突发的qps如何处理知识点:削峰:消息队列,用生产者和消费者,摊开压力。第八个的缺点是什么会让系统变得比较复杂,我们正常处理http请求,不管是nio还是bio,客户端对于浏览器都是直接处理,但是用了消息队列,我们就是异步的去处理请求,这还是好说的,把连接的句柄往队列里丢,然后我们根据队列里的连接信息拿过来去消费,.

2020-09-03 10:15:29 343

原创 小米提前批一二面面经

一面 60min自我介绍讲讲线程池是怎么使用的(选型,调参,分析数据库交互,运行原理)讲讲用什么方法解决oomconcurrentHashMap(怎么做的线程安全,CAS的过程,ABA问题,volatile,扩容为什么2倍,什么是哈希环)限流(计数,漏斗,令牌桶,三种的区别和优劣)算法:mergeSort二面 90min算法:约瑟夫环算法:leetcode第二题自我介绍ICMP和HTTP的区别osi五层都是啥,分别有啥协议管程和信号量的区别场景题:百万级QPS场景,如何设

2020-08-28 19:09:54 763

原创 网易有道Java一面

自我介绍白板撸死锁synchronized和Lock的区别分析一下Lock的性能讲讲AQS里面几个重要的方法说说ReentrantLock讲讲synchronized的底层白板撸线程顺序打印讲讲volatile说说CAS的ABA问题是怎么解决的算法:旋转数组的最小值(要求logn,答案是二分)...

2020-08-18 14:25:03 360

原创 疏漏总结(二十六)——Mysql

目前秋招已经到了一半了。打算用自己的话重新整理一下数据库相关的知识点。事务隔离级别的实现InnoDB中,需要解决的几个事务隔离的问题是,脏读(读到了并不真正存在的数据,往往因为事务没有commit导致),不可重复读(在一个事务里不同时间的对应的数据是不一样的),幻读(读取到先于当前事务提交的相同的数据,产生幻觉)。而解决这几种因为事务隔离产生的问题的时候,就需要事务隔离,事务隔离级别一共有四种:读未提交,读提交,可重复读,串行化。读未提交就是一路放行,不去独占。串行化就是一路加锁,类似于排他锁。

2020-08-18 09:18:02 225

原创 字节面试疏漏总结——备战最终面

回表InnoDB的索引分为两种:聚簇索引和普通索引像我们了解到的关于InnoDB存储引擎的知识,底层是基于B+树的,数据都存储于叶子节点,因此InnoDB引擎之下有且只有一个聚簇索引,也就是主键,如果没有主键的话,默认第一个非空unique列为聚簇索引。所以我们根据这个聚簇索引查表很快。另外一点就是,聚簇索引的叶子节点存储的是行记录,普通索引存储主键值。自定义的线程池拒绝策略重写rejectedExecution方法有界队列和无界队列Java中有哪些无界队列和有界队列?为什么生产上不能使用无

2020-08-01 22:09:59 379

原创 淘系秋招一面疏漏

springioclist set xml 接口 构造器 注解gc的搭配方法parNew+CMSParNew+Seriod OldParallel Young+Seriod OldSeriod Young+Seriod OldSeriod Young+CMSParallel Young + Parallel Oldjdk1.8的新特性集合框架,stream,lambda,函数式接口(comsumer predict supplier function),date API ,默认的GC

2020-07-23 01:04:13 215

原创 疏漏总结(二十五)——排序算法

1

2020-07-19 16:53:41 248

原创 关于kafka事务的一些理解

kafka的事务机制,主要是为了保证:可回滚操作确保exactly once原子性Exactly Once实际上,除了一些利用其它第三方中间件和GUID的情况,我们也可以使用kafka的事务来实现exactly once。主要方法是让下游系统通过具备幂等性,借用at least once的基本语意来实现,消费且仅一次,但是也是有限制条件的,如下:要求下游系统必须具有幂等性实现需要对kafka的工作机制很了解对于kafka stream而言,kafka本身就是自己的下游系统,但是他自己本

2020-07-19 13:08:40 586

原创 疏漏总结(二十四)——Zookeeper

首先,什么是ZK?zookeeper是我们经常会去使用的一个服务一致性组件,主要用来解决一些关于数据管理的问题。Zookeeper也可以作为一个数据库,但是和其他数据库的区别在于,zk不适合去存储海量的数据,主要还是用于去进行服务一致性的调度,此外,它还具备发布和订阅功能。zk的读请求可以由任何一台机器去完成,但是写请求,需要所有节点打成一致之后才能执行,所以,当机器变多的时候,吞吐量就会下降了。此外,有序性也是zk的一个非常重要的特性,这个在zk的分布式锁中也是非常有体现的,zk的所有更新都是有序进

2020-07-18 15:56:31 224

原创 京东秋招提前批一面面经

kafka简单讲一下数据结构消费者是拉取broker还是broker主动推送exactly once怎么保证kafka怎么实现死信队列kafka leader选举策略消息被消费后,offset还存在吗kafka ISR leader存数据吗什么是kafka的消费者组kafka是否支持事务zk的选举算法znode能不能存数据zk写数据流程leader和follower之间如何通信的2个结点的zk可以组成集群吗选举最多允许几个宕机4个结点可以组成集群吗redis 的几种缓存淘汰.

2020-07-17 09:51:06 363

原创 猜想问题(二)——关于ThreadLocal的实用性

先说一下场景,主要一个登录系统,我们用ThreadLocal存session做一个快速访问,然后多线程去异步设计这个登录操作,然后我们用了线程池去做整体的架构设计,然后ThreadLocal的key是session,value是个人信息,用这种设计模式去做登录。然后我们来想想可不可行,ThreadLocal的特性我们大约都知道了,不知道的可以去查查,我就直接讲了。如果我们用多线程的话,线程用完了回收,但是如果我们之前给这个线程使用过ThreadLocal,那么ThreadLocal回去之后,重新又接了个

2020-07-13 22:38:09 184

原创 疏漏总结(二十三)

change bufferb+树对范围查询好 MongoDB b树单次查询要好 InnoDBinsert 语句执行的过程意向锁1开头的状态码中间层,被拒绝mysql倒排索引String.intern()

2020-07-13 21:06:58 269

原创 计算机基础面试题个人总结

网络篇输入URL到显现页面的过程第一步是构建请求,首先确认好请求方式,URL地址,HTTP的版本号第二步是查找缓存,如果有,可以直接打开页面,没有就进入第三步第三步解析DNS,因为实际上我们不是给域名发请求,而是给IP发请求,所以需要DNS映射解析IP。(此过程也可以对解析结果缓存)第四步是进行TCP连接(三次握手,发送三个数据包确认连接,数据传输后,四次挥手断开连接),注意,chrome最多允许进行6个TCP连接,超出的就要排队。第五步是发送http请求,携带生成cookie,请求头,he

2020-07-12 13:24:12 2174

原创 疏漏总结(二十二)

分布式理论CATZAB投票的过程Rmq为啥不需要zk运行Kafka消息订阅发布选举老大的范围是在ISR里面选取,而不是OSRHW的存在意义,防止消费不存在的数据Redis的数据结构地理日志可以用来做什么死信队列...

2020-07-09 21:45:13 210

原创 疏漏总结(二十一)

用户态和内核态。处于用户态执行时,进程所能访问的内存空间和对象受到限制,其所处于占有的处理器是可被抢占的处于内核态执行时,则能访问所有的内存空间和对象,且所占有的处理器是不允许被抢占的。redis piplineredis String的存储方式软引用和幻象引用HashMap不是有序存储因为有个取余运算,所以不是。mysql buffer pool,change buffer索引下推。10万的topkhashmap统计频率然后大顶堆小顶堆。...

2020-07-09 20:13:48 207

原创 疏漏总结(二十)

redis每隔一段时间内存会突然飙升,然后又会降下来是为什么?如果持久化方案使用纯aof会怎么样Redis性能快的原因什么是TCP的半连接队列消息队列的topic是什么熔断和降级类加载的过程元空间是什么G1的三色标记法是什么...

2020-07-05 18:03:21 176

原创 疏漏总结(十九)——Kafka

因为简历上写了很多关于kafka的内容,所以在这里总结一下底层原理。首先先说一下自己对Kafka整体的印象和理解Kafka是一个吞吐效率很高的消息队列。一个kafka节点也可以叫做一个broker,一个broker里面有很多topic,我们存储消息的时候,会根据topic去存储,也会根据监听topic去消费。topic内部,又有很多的partition,而partition从本质上来说,是一个append log文件,也就是说,我们存储消息的时候,默认是按顺序去写入到硬盘的。(按顺序写入硬盘比随机写内

2020-07-03 12:25:40 357

原创 疏漏总结(十八)

线程池TimeOut参数啥意思超过这段时间还没有线程负载上任务,就会删除这条线程interrupt(),interrupted(),isInterrupted()的区别interrupt():这个作用相当于,让线程产生一个中断标志位,但是这不代表线程会立刻中断,就像yield一样,劝说cpu执行任务,而不是强制执行。interrupted():这个的作用是清除当前的中断标志位,并且返回线程上一次的中断状态。isInterrupted():判断当前线程是否处于中断。ThreadLoca.

2020-06-30 15:39:45 161

原创 疏漏总结(十七)——JAVA_OPTS辨析

目前咱们应用的这个配置,可能有JAVA_OPTS、也有_JAVA_OPTIONS,今天线上遇到了个问题,java服务配置了JAVA_OPTS,一直不生效;刚查了下这俩是有区别的。1、JAVA_OPTS:常用于一些应用的配置,如Tomcat,但它一般不作为环境变量,也不能被JVM识别的,是那些应用的自定义配置。如果用的是tomcat,这个变量配置的会生效,但是对于java服务是不生效的。2、JAVA_OPTIONS:也是作为环境变量来替代命令行参数的,但它是JVM厂家自定义的,可以覆盖JAVA_TOOL_

2020-06-18 18:16:37 430

原创 疏漏总结(十六)

1

2020-06-18 00:24:18 260

原创 K-code比赛总结

按照比赛阶段更新此文章热身赛substring的效率比加减乘除的速度要快BufferReader 本身就比其他字节流要快 Cache可以更快一步

2020-05-30 19:13:48 597

原创 随笔-JVM小计算

public class MemoryUtils { /** * 单位换算 MB */ public static final int BYTE_TO_MB = 1024 * 1024; /** * 计算当前java虚拟机已用虚拟内存空间 * * @return long */ public static long vmUsed() { Runtime rt = Runtime.getRuntim

2020-05-27 21:08:36 173

原创 疏漏总结(十五)——分布式事务

首先,什么是事务?其实这应该是数据库相关的比较基本的概念了,意思就是,将一系列的动作规划成一个执行单元,然后按照顺序执行,一旦有一个失败了就会立刻回滚。那么,什么是分布式事务呢?分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数

2020-05-27 17:29:21 256

原创 疏漏总结(十四)——分布式锁

连续摸鱼一周了,想回归好青年好好学习了…就先从分布式锁开始着手进行学习吧。。。

2020-05-01 22:39:18 393

原创 SpringBoot/SpringCloud框架学习目录

第一章——注解配置第二章——日志第三章——Web(上)第四章——curd小练习第五章——Web(下)第六章——数据访问第七章——缓存第八章——Docker第九章——消息队列第十章——ElasticSearch检索第十一章——任务第十二章——安全认证第十三章——分布式简介第十四章——整合Redis...

2020-04-26 14:41:06 411 1

原创 疏漏总结目录

疏漏总结(1):https://blog.csdn.net/qq_41936805/article/details/104700145疏漏总结(2)——Volatile:https://blog.csdn.net/qq_41936805/article/details/104765217疏漏总结(3):https://blog.csdn.net/qq_41936805/article/deta...

2020-04-21 13:25:26 541 1

原创 疏漏总结(十三)

聚簇索引和非聚集索引InnoDB间隙锁哨兵模式Bean的声明周期bean 的作用域Spring的两种事务dns解析域名的流程tcp三次快速打开什么是零拷贝单向认证和双向认证https...

2020-04-20 17:47:22 213

原创 百度Java实习二面面经

自我介绍说说你在项目中的角色吧你主要负责的具体功能是什么怎么保证线程安全的你说你有jvm调优经验,能讲讲吗我看你提到了volatile,好像又不太敢说,能仔细给我讲讲吗(开启装逼模式那你再介绍介绍自己知道的锁吧(一直讲到了面试结束算法:k个一组反转链表算法不会写,但是也过了,面试官说项目基础很强,破格放我一马…...

2020-04-18 22:40:21 498

原创 百度Java实习一面面经

自我介绍介绍项目说说final关键字在java中的意义讲讲两种动态代理的区别说一下你常用过的集合类,哪些安全,哪些不安全Object包下常用方法wait和sleep区别唤醒线程的方法线程的几种状态怎么创建线程的你说你对线程池很了解,讲一讲流程吧(开启装逼的15分钟能说说怎么保证线程安全吗(继续装逼15分钟算法:括号匹配,用stack可以直接秒...

2020-04-18 22:33:46 433

原创 记录自己的心态

今天是2020年4月12日,我也是第一次发与技术无关的文章,打算借这篇文章记录自己此时此刻的心态,让秋招之后的自己看。不出意外的话,按照计划,应该下周就要离职京东去美团了,当然,去美团的原因自然是因为没去成AT,虽然也根本没给腾讯投简历,因为按照计划不打算在秋招前换技术栈的。此时此刻的我还在为租房犯难,下周四就去办理离职,周五就去看房,周六就去搬家,从周日开始到转周的周日,计划调整心态,准备秋...

2020-04-12 23:05:14 350

原创 21届双非京东春季提前批面经

本人山沟沟里的双非学校。可能是感觉部门比较缺人吧,仅仅一面,上岸了。和强哥做兄弟了。然后我总结一下面试的问题。我是部门直推,京东数科。可以说说自己用过哪些数据库吗?(我就说的mysql redis,其他说了xxxxx仅仅是应用层面)mysql可以说说在分布式环境下如何实现主从一致性的吗可以说说索引的弊端吗在公司实习大约是多少的数据量呢,有没有因为索引出现一些问题,是怎么解决的re...

2020-04-10 20:48:23 922

原创 疏漏总结(十二)

TCP里time_wait和close_wait的区别TCP四次挥手的时候close-wait过多怎么办volatile为什么不能保证原子性spring是如何解析xml的ORM是怎么实现的在分布式环境下如何设计接口才能做到幂等性。什么是深拷贝,什么是浅拷贝如何自己实现一个RPC什么是restful API为什么锁膨胀...

2020-04-08 18:24:35 273

原创 LinkedList(极客时间)

上次说了链表相关的基础知识。这次总结一些写链表代码的技巧,如果能熟练掌握这些技巧,就可以应对大多数链表的问题。技巧一:理解引用的含义事实上,看懂链表的结构并不是很难,但是一旦把它和面向对象的概念套在一起,就有挑战性了,但事实上,意思都是一样的,下面会用java的代码举例子。我们可以把一个java代码实例化的时候,将实例理解为指针,指向创建的对象的地址。Student s = new Stu...

2020-04-08 17:03:01 215

原创 lru

打算从基础开始复习数据结构了,这篇文章就首先来说说链表(Linked List)这个数据结构。学习链表的作用与应用场景?首先我们应该都知道啥叫链表了,查找慢,插入快,现在我们主要说一种链表的常用场景,也就是LRU缓存淘汰算法。缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中经常会用到,最让我们熟悉的其实就是Redis了。Redis在之前的文章中也已经介绍过了,有想去稍微看看的可以去点击...

2020-04-08 14:01:43 433

原创 疏漏总结(十一)

什么是Java的快速失败和安全失败?快速失败:两个线程,A去读一个集合的内容,B去update相同集合的内容,会报ConcurrentModificationException。原因是:集合框架内部针对每个元素有一个modCount,如果元素的值改变,modCount也会改变,如果我们使用hashNext()/next()遍历到了modCount改变的元素(每次迭代都会先比较是否为自己心仪...

2020-04-07 10:51:16 200

空空如也

空空如也

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

TA关注的人

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