3 relife1

尚未进行身份认证

人之所恶在好为人师,不实知,谨慎言

等级
TA的排名 5w+

博客转移了,请移步

最近拾起了以前的githubpage搭建的个人博客,如果继续关注我的博客,请移步:我的博客

2019-09-09 09:09:01

Java动态代理---只代理指定方法

Java动态代理具体的方法就不说了,网上不知道有多少,我就不献丑了起因在Spring中,我们使用注解的方法实现事务时,事务时可以使用在指定的方法上,很显然,事务的实现是通过代理的方式,在Spring中AOP主要是由Java动态代理和cglib实现,区别在于被代理的类是否实现接口,那么,具体是怎么指定方法实现代理的.我还没有看这方面的源码,所以暂时就自己想到的方法写一写,等看了源码后再写一版...

2019-08-19 19:23:34

记一次Leetcode解题--最长斐波那契子序列的长度--dp

题目https://leetcode-cn.com/problems/length-of-longest-fibonacci-subsequence/解题两种办法:暴力破解,这个没什么好说的,记得优化二分查找的范围动态规划,dp有几种写法,先看代码:classSolution{publicstaticintlenLongestFibSubseq(int[]...

2019-07-16 17:37:37

git clone速度慢解决

从多个博客中总结来的效果先说一下效果20k左右->200k左右虽然200也不快,但有总比没有好办法网上很多办法,先说一下知乎看到的除了间接提速的办法在gitcloneurl后加上--depth=1,原因是,gitclone默认会下载该项目所有版本,加上这个命令后只下载最新版本直接提速其实就是大多数博客中的,但有些有用,有些没有,先说一下我的电脑,Archlin...

2019-04-26 21:08:40

深究synchronized

前情如何使用这个关键字和类锁对象锁什么的,老生常谈了,就不在这里说了,先声明,这篇博客的内容只能算是我从很多博客中总结出的自己的观点,无法保证全部是自己的话,也无法保证绝对正确性,望以谨慎正文存在synchronized在一个程序中以字节码中的指令的形式存在,使用javap工具可以看到synchronized关键字在字节码文件中的存在形式,如果是同步代码块,是monitorenter和m...

2019-04-07 20:05:29

Linux网络IO模型和多路复用技术

本文内容有借鉴《Netty权威指南》的部分内容Linux网络IO模型首先说一下一个文件描述符(filedescriptor)fd的概念,在Linux中,一切都可以视作文件,对一个文件的读写操作就会调用内核提供的系统命令,返回一个fd,使用socket也会有fd,描述符就是一个数字,指向核内的一个结构体(文件路径,数据区等一些属性)阻塞IO模型最常用的IO模型,也是默认情况下的,详细说...

2019-03-27 09:58:09

Java堆外内存

前最近才接触到堆外内存的概念,为什么要使用堆外内存,最大的原因应该就是少一次内存拷贝,因为如果想在内核空间进行数据处理,就必须将数据从Java堆中拷贝到内核控件中,但是Java提供了一种更加直接的方法,就是直接在堆外(内核)申请内存,存储数据,减少数据拷贝,这也就是所谓的零拷贝(zero-copy)APINIO包下的ByteBuffer下的allocateDirect是帮助我们申请直接内存的...

2019-03-14 17:29:17

Java -- protected关键字

疑惑准备面试时,突然想到这个关键字,对于我来说,这个修饰符是最少用的,剩下三个也算是经常用了,但对于protected是真的不熟悉,今天看了详解,还是很懵,多看了几遍,解惑先看一般的介绍被protected修饰的成员对于本包和其子类可见,其实要分多种情况先我觉得需要解释一下什么叫可见,并没有严格的定义,但是从我对一些示例的总结,可以看出点端倪,在我的理解中,可见是指调用处,什么意思呢...

2019-03-09 20:36:50

ThreadPoolExecutor线程池如何实现计时回收空闲线程

疑惑说到线程池,其实已经看过很多遍源码,不过大多是复用和阻塞队列获取时的部分,今天突然想到,线程池有个最大空闲时间,即空闲线程最大存活时间,我想知道怎么实现计时的,难道是每一个worker类中一个计时器吗?解惑找了很多博客,都没有找到,只能自己在源码里找了,意外地好找,因为用到keepAliveTime这个变量,整个ThreadPoolExecutor.java中只有一个方法,只看这个方法就...

2019-03-05 16:10:51

HTTPS理解

仅一家之言声明网上关于HTTPS的讲解相当多,有些图文并茂,我也是同样学习的,这里只是记录一下自己的理解,避免以后忘记,想要学习HTTPS的还是别看了正文直接进入正题众所周知,HTTP是明文传输,一般的抓包都是随便抓,为了保证传输信息的安全性,我们需要对传输信息进行加密,所谓加密,一定是需要加密算法和解密算法对称加密,最简单的加密,也是最容易想到的,就是一般的数据变换,按理...

2019-03-03 11:00:09

Netty ChannelPipeline执行过程理解

仅为一家之言,慎理解今天将以前写的程序重新拿出来看了一下,发现对于netty有了新的疑惑,编解码器的执行到底是怎么样的,byteToMessage和MessageToByte的过程到底是怎么样的其实先不想Netty,我们从正常的Java网络传输开始,我们想将对象在网络中传输,肯定不能使用对象本身,需要序列化,Java本身的序列化技术可以用,但是问题太多,一是效率低,码率大,二是不能跨语...

2019-03-02 14:52:51

使用HttpClient连接池出现---java.lang.IllegalStateException: Connection pool shut down

问题我之所以遇到了这个问题,是因为修改了第三方包代码,新增了连接池,但是没有注意到其内部对连接的关闭;这个问题很简单,顾名思义,就是连接关闭引起的问题,为什么连接关闭会引起问题呢,我们选择使用连接池,就是将连接全部交由连接池管理,而我们在程序中使用了httpClient.close();就破坏了这以规则,解决很简单,删除关闭连接的代码...

2019-02-26 21:16:56

红黑树 笔记

红黑树是一个二叉树,树根为黑,外部节点为黑,其余节点,若为红,其孩子只能为黑从外部节点到根,途中黑节点的数目相等(除外部节点)红黑树是一个4阶B树,也就是(2,4)树,将所有黑色节点的红孩子提升到与其同高,那就形成了一个含1/2/3个节点的超级节点,也就是说(2,4)树的样子接口定义:查找,插入,搜索,双黑修正,双红修正,更新节点高度(黑高度)插入:...

2019-02-25 21:27:47

设计模式一

这里只是简单记录我学习过程中的对各种设计模式的理解,没有具体实现代码前情学习设计模式,我觉得最重要的不止是如何使用,还有为什么使用,甚至后者比之前者有过之而无不及.有一本书《大话设计模式》很受欢迎,我觉得原因其是将各种设计模式的使用环境设计成一个个场景,用对话的形式来表示;所以我会从为什么使用/使用场景和如何使用两个方面来叙述;正文单例模式使用原因:在我们的系统中,有一些对象我...

2019-02-16 18:50:53

数据库索引

前情可以说是完全为了面试了,我还没有工作,自己做的项目也还没有用过索引,如何添加索引,可以在菜鸟教程自己看,这里说一下使用的意义和底层的数据结构正文为什么使用索引如果在概念上说索引,就不能只局限于数据库,这个概念在很多方面都有涉及,我印象很深的就是操作系统中的文件系统还有内存管理中的页表的设计,我觉得在概念上都类似数据库索引;数据库为什么要使用索引,其实很简单,就是你读书为什么要看目录...

2019-02-08 11:54:22

数据库事务

面试准备,仅为一家之言,无法保证理解正确性,慎,欢迎纠正数据库事务ACIDA:Atomic:原子性:指数据库事务要么完成,要么不做.是一个不可分割的原子操作;C:consistency:一致性:指事务完成要保证业务逻辑数据一致;即业务是A账户向B账户转账,无论怎么转,事务完成后必须保证A账户和B账户的总额不变;I:Isolation:隔离性:指不同事务有自己的执行空间,各...

2019-02-03 14:06:03

Spring IOC底层分析

仅为面试准备,无法保证理解正确性,慎,欢迎纠正前言关于IOC底层的东西,我这里只是说一下大致的流程,不涉及具体的代码(能力有限).正文IOC初始化IOC容器的初始化分为三个过程以及我们在使用spring时的代码对应(不是完全一一对应,这是顶层的方法,内部有较多的细节):Resource定位:ClassPathReourceresource=newClassPathRe...

2019-02-01 16:08:14

Java并发队列原理

面试准备,无法保证理解正确性,慎,欢迎纠正前言并发队列与普通队列的区别的确就在于并发二字,而并发的的基础就是线程安全,如何实现线程安全是我们最重要的需要理解的部分.线程安全的保证无非就是可见性和原子性(有序性一般不说).接下来的各种队列主要就这两点的实现来说.非阻塞队列非阻塞队列即不使用锁的队列,主要使用CAS操作保证原子性ConcurrentLinkedQueueConcurre...

2019-01-30 14:03:34

ReentrantLock等锁原理

面试准备,无法保证理解的正确性,慎,欢迎纠正注意这些锁是并发包下的锁,实现原理全是基于AQS,还使用了CAS操作,先了解一下AQS和CASReentrantLock可重入锁,是一种独占锁,即同时只有一个线程可以获取锁,其他尝试获取锁的线程会被放在锁的AQS阻塞队列中,重入的意思是指同一个线程可以多次获取锁.公平锁和非公平锁.ReentrantLock内部有两个内部类Nonfair...

2019-01-29 18:42:30

ThreadLocal

面试准备,无法保证理解正确性,慎,欢迎纠正ThreadLocal为什么需要threadlocal在多线程程序中,线程安全是最重要的一点,其实也就是保证共享变量被合理的共享或保证非共享变量不被共享,threadlocal是解决后者的.最常用的是web服务器中,当多个用户并发访问,某个用户信息肯定不能被其他用户线程获取,这就需要使用threadlocal保存每个用户线程的信息,互不干扰...

2019-01-29 16:00:34

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。