自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 AQS

对于队列中的节点获取锁释放锁的过程可以描述为(这里假设只有三个线程竞争资源):1.初始状态,sync队列没有初始化,当前线程无法获取锁,进入队列,设置一个空节点作为头结点,当前节点作为头结点的后继——老二节点,并把头结点状态设置为SIGNAL。2.又来一个线程来获取锁,没有获取到,进入队列,成为老三节点(老二节点的后继),并设置老二节点状态为SINGAL,但是这个时候shouldParkAft...

2018-11-14 16:23:03 108

转载 随机区域算法

这个流程比 nextInt() 多了几步,具体步骤如下:首先获取 31 位的随机数,注意这里是 31 位,和上面 32 位不同,因为在 nextInt() 方法中可以获取到随机数可能是负数,而 nextInt(int bound) 规定只能获取到 [0,bound) 之前的随机数,也就意味着必须是正数,预留一位符号位,所以只获取了31位。(不要想着使用取绝对值这样操作,会导致性能下降)...

2018-10-30 21:13:18 742

转载 springmvc

二、SpringMVC处理过程总结    先放一张图,我们再慢慢解析:1流程解析: 1、当request到来时,DispatcherServlet对request进行捕获,并执行doService方法,继而执行doDispatch方法。 2、HandlerMapping解析请求,并且返回HandlerExecutionChain(其中包含controllers和interceptor...

2018-10-25 10:57:29 110 1

原创 spring启动

1、web根容器初始化:web容器监听器初始化,通过ContextLoaderListener 初始化,该类继承ServletContextListener ,该类contextInitialized方法,initWebApplicationContext初始化spring公共容器环境:WebApplicationContext的实例化对象为XmlWebApplicationContext类。获取...

2018-10-25 10:12:38 109

转载 面试必备:什么是一致性Hash算法?

面试必备:什么是一致性Hash算法?2018年03月14日 00:00:00 Java后端技术 阅读数:5757版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bntX2jSQfEHy7/article/details/79549368最近有小伙伴跑过来问什么是Hash一致性算法,说面试的时候被问到了,因为不了解,所以就没有回答上,问我...

2018-10-22 12:02:09 87

转载 RESTful 架构详解

RESTful 架构详解分类 编程技术1. 什么是RESTREST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评...

2018-10-22 10:44:39 88

转载 RPC入门总结(一)RPC定义和原理

RPC入门总结(一)RPC定义和原理2017年11月19日 21:01:28 Zenhobby 阅读数:7522更多个人分类: 分布式转载:深入浅出 RPC - 浅出篇转载:RPC框架与Dubbo完整使用转载:深入浅出 RPC - 深入篇转载:远程调用服务(RPC)和消息队列(Message Queue)对比及其适用/不适用场合分析一、RPC1. RPC是什么R...

2018-10-22 09:47:28 248 1

转载 TCP三次握手和四次挥手过程

TCP三次握手和四次挥手过程1、三次握手(1)三次握手的详述首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。  最初两端的TCP进程都处于CLOSED关闭状态,A主动打开连接,而B被动打开连接。(A、B关闭状态CLOSED——B...

2018-10-18 16:32:01 67

转载 http keepalive原理

 KeepAlive是就是通常所称的长连接。KeepAlive带来的好处是可以减少tcp连接的开销,这对于短response body的请求效果更加明显。同时,可以为采用HTTP协议的交互式应用提供良好的session支持。2、KeepAlive的原理    在HTTP1.0和HTTP1.1协议中都有对KeepAlive的支持。其中HTTP1.0需要在request中增加"Connecti...

2018-10-18 15:57:43 1041

转载 b树与b+树

b树一个m阶的B树具有如下几个特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m4.所有的叶子结点都位于同一层。5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。b+树一个m...

2018-10-15 17:17:47 88

转载 事务

一、事务隔离级别ANSI/ISO SQL标准定义了4中事务隔离级别:未提交读(read uncommitted),提交读(read committed),重复读(repeatable read),串行读(serializable)。对于不同的事务,采用不同的隔离级别分别有不同的结果。不同的隔离级别有不同的现象。主要有下面3种现在:1、脏读(dirty read):一个事务可以读取另一个...

2018-10-15 13:32:23 82

转载 后缀六点

1.遇到操作数:直接输出(添加到后缀表达式中) 2.栈为空时,遇到运算符,直接入栈 3.遇到左括号:将其入栈 4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,括号不输出。 5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈 6.最终将栈中的元素依次出栈,输出。 ...

2018-10-11 17:21:56 58

转载 java Condition条件变量的通俗易懂解释

java Condition条件变量的通俗易懂解释、基本使用及注意点最近在看pthread方面的书,看到条件变量一节的时候,回忆了下java中条件变量的使用方式。java中条件变量都实现了java.util.concurrent.locks.Condition接口,条件变量的实例化是通过一个Lock对象上调用newCondition()方法来获取的,这样,条件就和一个锁对象绑定起来了。因此...

2018-09-22 20:31:07 287

转载 JVM架构和GC垃圾回收机制

JVM架构和GC垃圾回收机制详解JVM架构图分析下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看: Hadoop内存溢出(OOM)分类、参数调优化)JVM被分为三个主要的子系统(1)类加载器子系统(2)运行时数据区(3)执行引擎1. 类加载器子系统Java的动态类加载功能是由类加载器子系统处理。当它在运行时(不是编译时)首次引用一个类时,它加载、链...

2018-09-20 09:45:23 122

转载 java动态代理

说起java动态代理,在我刚开始学java时对这项技术也是十分困惑,明明可以直接调通的对象方法为什么还要使用动态代理?随着学习的不断深入和工作经验的积累,慢慢的体会并理解了java动态代理机制。昨天再给公司新同事做技术培训时有同学就对动态代理产生了疑问,我这里梳理一遍一并记录一下,方便大家查看对自己也是加深记忆。(1)什么是代理?大道理上讲代理是一种软件设计模式,目的地希望能做到代码重用。...

2018-09-19 22:47:58 116

转载 java异常

Java异常体系结构一、 异常的概念和Java异常体系结构     异常是程序运行过程中出现的错误。Java语言的异常处理框架,     是Java语言健壮性的一个重要体现。     Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。     在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exce...

2018-09-18 19:44:20 152

原创 大数据畅想

         随着计算机技术不断发展,大数据、云计算、人工智能出现在人们视野中,大数据会成为是将来社会的一个重要话题,数据是人工智能的基础,更是以后技术的基石,我理解的大数据就像现在的上个世纪的计算机技术一样,会逐渐成为一个工具,海量数据会汇聚成一个点,包装成一个工具或者平台,供以后的科学技术发展使用,比如:生物dna研究,需要海量数据,离不开数据,物理研究,医学、甚至文化、历史研究都离不开数...

2018-09-18 19:32:24 464

转载 Java抽象类与接口的区别

 2014/07/16 | 分类: 基础技术 | 6 条评论 | 标签: 抽象类, 接口分享到:本文由 ImportNew - jessenpan 翻译自 javacodegeeks。欢迎加入翻译小组。转载请见文末要求。很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。在讨论它们之间的不同点之前...

2018-09-18 16:49:02 63

原创 java 泛型

一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉。这个过...

2018-09-18 16:43:20 82

原创 java解析、分派

解析调用一定是个静态的过程,在编译期间就完全确定,在类装载的解析阶段就会把涉及的符号引用全部转变为可确定的直接引用,不会延迟到运行期再去完成。而分派(Dispatch)调用则可能是静态的也可能是动态的,根据分派依据的宗量数可分为单分派和多分派。这两类分派方式的两两组合就构成了静态单分派、静态多分派、动态单分派、动态多分派4种分派组合情况。回到顶部解析所有方法调用中的目标方法在Class...

2018-09-18 13:44:51 555

转载 spring-IOC

总结:现在通过上面的代码,总结一下IOC容器初始化的基本步骤:u 初始化的入口在容器实现中的 refresh()调用来完成u 对 bean 定义载入 IOC 容器使用的方法是 loadBeanDefinition,其中的大致过程如下:通过 ResourceLoader 来完成资源文件位置的定位,DefaultResourceLoader 是默认的实现,同时上下文本身就给出了 Resou...

2018-09-13 22:34:59 124

原创 netty只处理器

不管何种处理器,都是进入处理器拦截为in,出处理器拦截为out,这只是相对处理器的事情来说。但是相对于处理器上下文来说,ctx.write、ctx.flush表示直接操作通道流,直接写然后发送。...

2018-06-16 22:48:44 105

原创 模型融合方法总结

Blending与Stacking大致相同,只是Blending的主要区别在于训练集不是通过K-Fold的CV策略来获得预测值从而生成第二阶段模型的特征,而是建立一个Holdout集,例如说10%的训练数据,第二阶段的stacker模型就基于第一阶段模型对这10%训练数据的预测值进行拟合。说白了,就是把Stacking流程中的K-Fold CV 改成 HoldOut CV。 1、特征准备...

2018-03-31 21:19:01 526

原创 gbdt算法理解

           谈及gbdt算法,不得不提GB与dt算法,即使用梯度提升回归树的方式进行回归提升。          以下贴上经典算法图:        1、第一步,算法中的参数,建立M棵回归树,每颗树的深度都为J,其中有一棵树为第一次建立的回归树,其余M-1棵树为残差(在梯度提升回归树里面为使损失函数最小的梯度向量)建立的树,F(X)为估值向量,即每一例为x样本在K类上的估值。      ...

2018-03-16 14:18:21 284

原创 cart算法总结

1、cart使用特征二元切分,计算切分后的误差,最小误差的切分为特征树的第一个根节点,返回切分的特征值,与该特征值下的切分阈值(阈值为所有该列特征值的最优切分对应特征值)。2、重复1,最后用建立好的cart回归树测试测试集,依次计算每个节点的合并前后误差,若合并后的误差较小,即可合并。即为剪切。...

2018-03-14 23:13:09 560

原创 决策树id3算法理解

1、计算分类标签的信息熵,计算每种特征下的条件熵。2、条件熵最大的作为第一个树的根节点。3、重复以上操作,划分出所有特征下的分类标签树。4、当最后只剩一个叶节点时,使用多数表决的方法来决定该叶子节点的分类。...

2018-03-13 23:15:12 137

原创 dqn算法总结

1、dqn算法基于q-learning计算q值。2、使用小批量暂存训练数据(训练数据基于q-learing计算得出,并且在q的计算中,使用神经网络模拟q函数,一开始效果肯定很差)。3、在收集到足够的小批量训练数据后,使用训练数据,训练q函数的神经网络参数。4、依次不断迭代,越到后面,神经网络越拟合现实的q函数。5、总的来说,就是使用神经网络模拟q函数,并不断训练q函数。...

2018-03-12 23:56:47 3991

原创 nfs管理

1.什么是NFS?NFS,全名叫Network File System,中文叫网络文件系统,是Linux、UNIX系统的分布式文件系统的一个组成部分,可实现在不同网络上共享远程文件系统。NFS由Sun公 司开发,目前已经成为文件服务的一种标准之一。其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据, 所以可以把NFS看做是一个文件服务器。NFS缺点是其读写性能比本地硬盘要

2017-09-06 10:12:27 485

原创 linux中断与系统调用

1.系统使用宏syscallX()将相应的系统调用定义为其同名函数。调用中断int 0x80.并将参数传送到相应的寄存器中,供ENTRY(system_call)使用。       2.进入ENTRY(system_call)中,当系统调用合法时,根据索引值,在sys_call_table中找到相应的实际服务程序入口地址,并调用它。最后返回到syscallX()中,包括返回值。3.进入sy

2017-08-03 19:28:45 320

转载 软盘磁头号/柱面号/扇区号与起始扇区转换

最近在看《自已动手写操作系统》这本书,读到第四章关于从软盘读取文件一节时一开始不能理解,特别是看不懂书中所附的源代码。经过自己查询软盘结构资料,通过本文对自己软盘的磁头号、磁道号和起始扇区与扇区之转换的想法做个总结。于渊关于从软盘读取文件所附的源代码注释如下:    ; 设扇区号为 x    ;                           ┌ 柱面号 = y >> 1   

2017-06-17 12:16:42 5218 1

原创 linux启动简要描述

从linux启动开始,我们可以去查看linux0.11版的代码 1、开始bootsect.s,这个目的是引导程序,从主引导扇区的引导程序开始,到真实寻址转换位保护模式寻址,然后将内核代码加载到内存固定区域,进行内存分页寻址模式设置。 2、boot引导结束,将执行权交给内核中的main.c函数。       他利用setup.s函数获取系统全局参数,根文件设备号等。       他见

2017-06-07 01:02:55 218

原创 x86 保护模式寻址

1、x8632位寻址为了扩大寻址范围,使用保护模式的寻址方式,不用以前的 实际地址=段地址*16+偏移地址的方式。2、采用GDT/LDT的寻址模式    (1)首先为每个段配置一个GDT描述表,表的内容为三个(段基地址,段界限,权限设置)。    (2)然后为每个将所有的全局段表放入一个位置,并将位置的基地址以及界限记录下来,传入GDTR表中。      (3)   选择子的问题,

2017-06-03 01:44:10 246

原创 x86 中32位寻址模式

1、x8632位寻址为了扩大寻址范围,使用保护模式的寻址方式,不用以前的 实际地址=段地址*16+偏移地址的方式。2、采用GDT/LDT的寻址模式    (1)首先为每个段配置一个GDT描述表,表的内容为三个(段基地址,段界限,权限设置)。    (2)然后为每个将所有的全局段表放入一个位置,并将位置的基地址以及界限记录下来,传入GDTR表中。      (3)   选择子的问题,

2017-06-03 01:32:19 409

原创 linux驱动大至思路

1、确定编译环境2、驱动模块基本步骤。3、实现i2c驱动。

2017-04-29 18:09:25 151

空空如也

空空如也

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

TA关注的人

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