- 博客(50)
- 收藏
- 关注
原创 go-chan
chan类型三种:仅输入、仅输出、双工数据结构环形队列+读写goroutine+锁 = chan//path:src/runtime/chan.gotype hchan struct { qcount uint // 当前队列列中剩余元素个数 dataqsiz uint // 环形队列长度,即可以存放的元素个数 buf unsafe.Pointer // 环形队列列指针 elemsize uint16 // 每个元素的⼤⼩ clo
2021-06-10 00:07:23
132
1
原创 高性能Mysql读书笔记#第五章
创建高性能索引5.1索引的基础B-树索引有效的查询类型:1、全值匹配。(包含索引的所有信息)2、匹配最左前缀。(包含索引最左的属性信息)3、匹配列前缀。(满足2)4、匹配范围值。(满足2)5、精确匹配某一列并范围匹配另外一列。(满足2)6、只访问索引的查询:无需访问数据行,只需访问生成的索引(B+树);限制:1、如果不是按照索引的最左列开始查找,则无法使用索引。2、不能跳过...
2019-09-27 10:21:22
203
原创 实习面试题
Java后端开发头条一面:1、RPC2、Http1.0、Http1.1、Https、Http2.03、Http在IOS5层中的过程4、G1回收的原理5、页的调度算法6、Redis、Spark(没了解过)7、实现两个有序数组的合并二面:1、线程和进程的区别2、同一个进程中,线程哪些资源是共享的3、TCP四次挥手,以及对应的状态4、5、对1-m个数字字典序排序(Strin...
2019-09-27 10:20:37
204
原创 Java面经5
创建索引的注意事项并不是创建的索引越多越好,索引对于查询能进行加速,但对于插入、删除和更新,由于需要对索引进行创建与维护,会影响了这三个操作的速度且索引占用空间创建索引一般创建在主键上、需要频繁使用的条件字段上、范围查找对于多值索引满足最左前缀字段秒杀系统秒杀获得开始之前:将静态网页资源放到反向代理上进行缓存,避免所有的请求达到服务器。将活动信息、开始信息、能否进行秒杀活动信...
2019-09-27 10:19:29
141
原创 java面经4-线程
为什么采用双亲委派模型避免重复加载 + 避免核心类篡改。采用双亲委派模式的是好处是Java类随着它的类加载器一起具备了一种带有优先级的层次关系,通过这种层级关可以避免类的重复加载,当父亲已经加载了该类时,就没有必要子ClassLoader再加载一次。其次是考虑到安全因素,java核心api中定义类型不会被随意替换,假设通过网络传递一个名为java.lang.Integer的类,通过双亲委托模式...
2019-09-27 10:19:09
150
原创 Java面经3
集合1、Map和ConcurrentHashMap的区别?Map是一个接口、ConcurrentHashMap是一实现了Map接口的类,并且通过分段锁机制实现并发。2、hashMap内部具体如何实现的?数据结构:数组+链表(当链表长度到达8之后,会自动转化成红黑树)。put:key的hash值,与hashMap的数组长度-1相与,得出的值即为需要存的数组的位置,然后通过尾插法插入链表中或...
2019-09-27 10:18:40
124
原创 java面经2
3面向对象1、wait方法底层原理synchronied有一个等待队列,阻塞的线程,均放在该队列中。当执行到对象的wait的方法,所在线程被添加到等待队列,将队列的头的线程唤醒。2、Java有哪些特性,举个多态的例子。抽象(面向对象)、封装、继承、多态3、String为啥不可变?它是一个不可变类被final修饰,一旦初始化就无法改变。并且它的成员变量都由final修饰,且未暴露这些成员...
2019-09-27 10:18:07
420
原创 Java面经1
Java基础1、为什么重写equals还要重写hashcode1)需要保证hashcode不同,equals一定不同;equals相同,hashcode一定相同。对于Set、Hash集合,首先判断hashcode是否相等,来作为是否是equals的必要条件来加速判断(比较hashcode(int),比equals而言快很多),若不重写hashcode方法,当equals为相等对象时,hash...
2019-09-27 10:17:43
334
转载 高性能Mysql读书笔记#第四章
Schema与数据类型优化https://blog.youkuaiyun.com/qqqqq1993qqqqq/article/details/781105944.1选择优化的数据类型①更小的通常更好。一般应该尽可能使用能正确存储数据的最小数据类型,更小的数据类型通常更快,因为他们占用更少的磁盘、内存和CPU缓存,并且处理需要的CPU周期更少。②简单就好。整型比字符串操作代价更低。 两个例子:1、应该...
2019-09-27 10:16:45
131
转载 高性能Mysql读书笔记#第一章
第一章:https://blog.youkuaiyun.com/ya_1249463314/article/details/78692117read uncommitted(读未提交):能够读未提交的数据;回滚造成脏读read committed(读已提交):不会读取还未提交的数据,但可读取事务进行之前的数据以及事务完成之后的数据,造成不可重复读。repeatable read(可重复读):不能读取还未...
2019-09-27 10:15:54
101
转载 计算机网络(复习内容)
https://www.jianshu.com/p/8666237e5ddd计算机网络体系分类七层模型五层模型应用层表示层会话层应用层传输层传输层网络层网络层数据链路层数据链路层物理层物理层物理层物理层主要实现的是主机与网络之间的物理连接,讲数据以二进制流(高低电平)在物理介质中传输。通信方式单工、半双工、全双工...
2019-09-27 10:13:06
195
原创 每日一记-目录
0905 https://mp.youkuaiyun.com/mdeditor/100560264#1、xss攻击等其他网站攻击之类的原理,问了能实现攻击最根本的原因是什么2、拦截器和过滤器的区别和实现原理,拦截的接口方法有哪些3、单点登录的具体实现0902 https://mp.youkuaiyun.com/mdeditor/100287568#1、Sql语句2、java创建对象的五种方法。0829 ht...
2019-09-27 10:12:34
134
转载 Mybaties原理解析
MybatiesMybaties的原理分为两部分生成映射器MapperStatement一个映射器是由3个部分组成的:MapperStatement,它保存映射器的一个节点(select|insert|update|delete)。包括许多我们配置的SQL,SQL的id,缓存信息,resultMap,parameterType,resultType,languageDriver等重要配...
2019-09-27 10:11:14
556
原创 秋招面经
8月13日网易内推一面Java并发包1、线程池的实现原理(https://www.cnblogs.com/alimayun/p/9054027.html)Worker 循环从Queue中取线程执行。LinkedBlockQueue 存2、实现一个简单的线程池3、ThreadLocal的实现原理4、CountDownLatch的实现原理(https://blog.youkuaiyun.com/no...
2019-09-27 10:09:32
312
原创 0916
1、handler : 线程池对拒绝任务的处理策略。在 ThreadPoolExecutor 里面定义了 4 种 handler 策略,分别是CallerRunsPolicy :这个策略重试添加当前的任务,他会自动重复调用 execute() 方法,直到成功。AbortPolicy :对拒绝任务抛弃处理,并且抛出异常。DiscardPolicy :对拒绝任务直接无声抛弃,没有异常...
2019-09-27 10:08:49
190
原创 0905
xss攻击等其他网站攻击之类的原理,问了能实现攻击最根本的原因是什么拦截器和过滤器的区别和实现原理,拦截的接口方法有哪些单点登录的具体实现你的评论回复表怎么设计的md5和slat的加解密过程session id和token的区别验证码的实现如何计算http请求的ip是否异常异步化的实现,为什么要用redis异步化redis里面的数据结构,还有一个是redis的一块内容,以前完全没...
2019-09-27 10:08:12
247
原创 0902
1、Sql语句create database test;drop database test;create table student(id bigint not null auto_increment primary key,name varchar(20) not null,sex char(2) not null);drop table student;alter tabl...
2019-09-27 10:07:42
150
原创 0909
1、计算机网络转发表建立过程ARP过程(同一网段、不同网段)IP协议族(分层)应用层协议TCP、UDP交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表,即转发表。转发表建立过程PC1(192.168.1.1/24)--------(接口1)交换机(接口2)--------PC2(192.168.1.2/24),如果PC1要PING PC2(第一次...
2019-09-27 10:07:04
270
原创 0907
1、volatile的原理2、谈一下面向对象的"六原则一法则"。3、ThreadLocal4、Java中有几种线程池?5、 Java多线程回调函数原理1、volatile的原理防止指令重排;保证一致性内存屏障1.阻止屏障两侧的指令重排序;2.强制把写缓冲区/高速缓存中的脏数据等写回主内存,让缓存中相应的数据失效。2、谈一下面向对象的"六原则一法则"。(一)单一职责原则:一个类...
2019-09-27 10:06:46
735
原创 00829
1、epoll、poll、select2、分布式锁3、kakfa4、并查集5、有穷状态机1、epoll、poll、selectI/O多路复用机制,通过一种机制来监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的...
2019-09-27 10:06:09
306
原创 0828
1、协程切换原理https://blog.youkuaiyun.com/kobejayandy/article/details/414130952、事务原理3、Java种interrupt使用4、Socket5、KMP6、创建数据库连接1、协程切换原理https://blog.youkuaiyun.com/kobejayandy/article/details/41413095Kilim通过编译期字节码...
2019-09-27 10:05:51
147
原创 0827
1、Java并发包(3种)2、系统调用和中断(中断处理过程)3、红黑树插入终止条件、如何红节点变黑节点4、线程池,以及线程池的实现5、进程切换和线程切换1、Java并发包基于锁:LinkedBlockingQueue基于CAS:基于分段锁:ConcurrentHashMap(数组+链表(红黑树)):无hash冲突,CAS;有hash冲突,则Synchronized加数组中对应槽的锁...
2019-09-27 10:05:44
378
原创 0826
1、红黑树5大特点2、G1回收特点3、Netty线程模型(两种事件,三种模型)4、运行时数据区域java引用的大小5、虚拟内存、物理内存1、红黑树5大特点所有节点是红色或者黑色根节点是黑色红色节点的两个子节点都是黑色叶子节点是为null的黑色节点从根节点到所有叶子节点的路径中,黑色节点的数目都相同2、G1回收特点1、分块。在老年代回收的时候,不会等待空间快被用完了再进行G...
2019-09-27 10:05:17
124
转载 微服务-Redis、Memcache与MongoDB
转载:https://www.cnblogs.com/tuyile006/p/6382062.htmlMemcachedMemcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。支持直接配置为session handle。Me...
2019-09-27 10:04:39
105
转载 Redis 基础、高级特性与性能调优
转自:https://mp.weixin.qq.com/s?__biz=MzA5ODM5MDU3MA==&mid=2650864527&idx=1&sn=8eb68c77afcfef6c96438c20b161a0e4&chksm=8b661ccabc1195dc672678d0a090ef5c7850c8b376990ad05a182053b0356617aa1b...
2019-09-27 10:04:13
134
转载 秒杀实践
秒杀业务的特点:瞬时流量大参与用户多,可秒杀商品数量少请求读多写少秒杀状态转换实时性要求高秒杀分为三个阶段:活动未开始仅有两种请求,一是加载活动页信息,二是查询活动状态得到未开始结果。两种请求各占一半。活动进行中持续非常短,用户大量发起秒杀请求,瞬时秒杀请求占比增高,能不能抗住秒杀请求就是秒杀系统是否能抗住高并发的关键。活动结束进入结束状态,请求情况同活动开始前。加...
2019-09-27 10:02:37
112
原创 Effective Java 第11章
序列化第11章序列化:将对象编成字节流反序列化:将字节流重写构建成对象,通过反射的getInstance方法。序列化与反序列化作用:1、网络间通信2、转存为持久化信息3、进程间通信第74条谨慎地实现Serializable接口代价:一旦被正式发布,大大降低“改变这个类的实现”的灵活性。增加出现BUG和安全漏洞的可能性,“隐藏的构造器”测试负担增加注意:父类实现了...
2019-09-27 10:00:59
111
转载 高并发系统设计原则
功能特性有选择对于一个需要承受高并发的接口,在功能上尽量不涉及一些难以缓存和预热的数据。比如用户维度的数据,缓存命中率低,会带来高并发的sql查询。示例:1、秒杀时,不同用户有不同的秒杀内容和优惠,每个用户都会进行一次sql查询。2、多个优惠活动时,用户仅能参加一种为参加过的活动。解决方式:①转换数据维度,秒杀资格以userId为key缓存命中率低,可以以秒杀活动id为key。②将个...
2019-09-27 10:00:38
274
原创 面试Java的一些建议
书籍tips:如果时间不够或者比较熟悉,可以直接在csdn搜索对应的读书笔记。建议自己也写一下读书笔记。必看java:《Java核心技术 卷Ⅰ》、《深入理解Java虚拟机:JVM高级特性与最佳实践》数据库:《高性能Mysql》、《Redis设计与实现》设计模式:《大话设计模式》linux:《鸟哥的Linux私房菜》《剑指offer》选看(如果比较熟悉的话,可以直接找面经看)数据库...
2019-09-27 09:53:10
369
转载 Spring事务传播机制原理解析-转
1.PROPAGATION_NEVER该特性规定了以非事物方式执行,如果当前存在事物,则抛出异常。// 1.PROPAGATION_NEVER --> 以非事物方式执行,如果当前存在事物,则抛出异常。if (definition.getPropagationBehavior() == TransactionDefinition.PROPAGATION_NEVER) { thro...
2019-08-28 14:33:14
1714
原创 字符集与编码
1、ASCII码(即是字符集也是编码)英语字符——二级制位字符集是:英语字符编码:7位二进制2、扩展ASCII码(即是字符集也是编码)其他字符——二级制位字符集:英语字符+其他字符编码:8位二进制3、ANSI编码(即是字符集也是编码)GB2312、BIG5、JIS4、Unicode(字符集)将世界上绝大多数国家的文字、符号都编入其字符集,它为每种语言中的每个字符设定了统一并且...
2019-05-29 20:41:24
120
转载 解决hash冲突的方法
转自 https://taoyongpan.iteye.com/blog/2401102hash碰撞冲突:我们都知道hashCode()的方法是为了产生不同的hash值,但是当两个对象的hash一样时,就发生了碰撞冲突;解决方法:我们 常用的解决方法有四种:①:开放地址法;②:再hash的方法;③:拉链法;④:建立公共溢出区法;开放地址法:基本思想:当发生地址冲突的时候,按照某...
2019-04-29 17:59:05
217
1
原创 处于不同局域网下的Socket通信——frp配置
目的使得处在不同局域网下的主机可以通信。发起通信的称为上位机,被动接受通信的称为客户端,通过frp配置用服务器(拥有公网IP)转发。下载frp直接下载已经编译好的程序。https://github.com/fatedier/frp/releases如果是linux就选相应的32或者64位的xxx_linux_xxx。客户端和服务器下载的版本需要一致。转发服务器配置1、服务器的配置只...
2019-04-23 11:17:33
5347
8
转载 Linux系统结构
转载:https://www.linuxprobe.com/linux-system-structure.html导读Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。1.Linux内核它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定...
2019-04-03 17:28:37
211
转载 微服务-Dubbo与Spring Cloud
Dubbo 框架模块注解:Provider: 暴露服务的服务提供方。Consumer: 调用远程服务的服务消费方。Registry: 服务注册与发现的注册中心。Monitor: 统计服务的调用次调和调用时间的监控中心。Container: 服务运行容器。流程详解:0 服务容器负责启动,加载,运行服务提供者(Standalone 容器)。1 服务提供者在启动时,向注册中心注册自己...
2019-04-01 10:38:02
188
原创 HTTP1.0、HTTP1.1、HTTPS、HTTP2
计算机网络https://blog.youkuaiyun.com/yicixing7/article/details/79320821HTTP1. HTTP与HTTPS的区别HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头HTTP 是不安全的,而 HTTPS 是安全的HTTP 标准端口是80 ,而 HTTPS 的标准端口是443在OSI 网络模型中,...
2019-03-28 17:07:26
360
转载 Redis 主从同步原理
主从同步原理:参考:https://www.cnblogs.com/lukexwang/p/4711977.html旧版复制步骤一 同步:从服务器向主服务器发送SYNC命令;收到SYNC命令的主服务器执行BGSAVE命令,在后台生成一个RDB文件,并使用一个缓冲区记录从现在开始执行的所有写命令;当主服务器的BGSAVE命令执行完毕时,主服务器会将BGSAVE命令生成的RDB文件发送给...
2019-03-18 22:31:16
184
原创 Java IO基础
InputStream&OutputStream均为抽象类。读入字节(byte,二进制)无法按一个字节读入,一般是按照某种固定的格式读入,比如每次读入10个字节。InputStream常用的子类有FileInputStream。OutputStream常用的子类有FileOutputStream。OutputStreamReader抽象类是按照固定的编码格式读入字符。...
2019-03-17 22:49:08
190
原创 Mysql调优实战
原查询语句:explain select DISTINCT asset.*, u1.name checkerName ,u2.name managerName,useDept.name useDeptName,manageDept.name manageDeptName , u3.name newestCheckerName,u4.name inspectorName,insp.name in...
2019-03-03 18:49:12
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人