自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(685)
  • 资源 (14)
  • 收藏
  • 关注

原创 从JDK源码角度看并发的原子性如何保证

JDK源码中,在研究AQS框架时,会发现很多地方都使用了CAS操作,在并发实现中CAS操作必须具备原子性,而且是硬件级别的原子性,Java被隔离在硬件之上...

2017-08-08 20:00:00 189

原创 LSTM神经网络

LSTM是什么LSTM即Long Short Memory Network,长短时记忆网络。它其实是属于RNN的一种变种,可以说它是为了克服RNN无法很好处理远距离依赖而提出的。我们说RNN不能处理距离较远的序列是因为训练时很有可能会出现梯度消失,即通过下面的公式训练时很可能会发生指数缩小,让RNN失去了对较远时刻的感知能力。∂E∂W=∑t∂Et∂W=∑tk=0∂Et∂nett∂nett∂st(∏t

2017-08-03 21:21:52 34834 5

原创 从JDK源码角度看Short

概况Java的Short类主要的作用就是对基本类型short进行封装,提供了一些处理short类型的方法,比如short到String类型的转换方法或String类型到short类型的转换方法,当然也包含与其他类型之间的转换方法。继承结构--java.lang.Object --java.lang.Number --java.lang.Short主要属性public static fin

2017-08-01 20:25:31 3181

原创 循环神经网络

RNN是什么循环神经网络即recurrent neural network,它的提出主要是为了处理序列数据,序列数据是什么?就是前面的输入和后面的输入是有关联的,比如一句话,前后的词都是有关系的,“我肚子饿了,准备去xx”,根据前面的输入判断“xx”很大可能就是“吃饭”。这个就是序列数据。循环神经网络有很多变种,比如LSTM、GRU等,这里搞清楚基础的循环神经网络的思想,对于理解其他变种就比较容易了

2017-07-28 19:38:56 11584 4

原创 如何用Ant构建Tomcat

安装jdk,用jdk6即可,如果要编译JSR-356 (Java WebSocket 1.1)则需要jdk7.安装ant,Ant 1.8.2或更新版本。连到apache的...

2017-07-26 20:07:48 193

原创 卷积神经网络

什么是卷积首先看卷积公式y(t)=f(t)∗g(t)=∫∞−∞f(u)g(t−u)duy(t)=f(t)*g(t)=\int_{-\infty} ^{\infty} f(u)g(t-u)du它是通过两个函数 f(t) 和 g(t) 来生成第三个函数的一种数学算子。从负无穷到正无穷遍历全部 u 值,把 g(t-u) 的值乘以 f(u) 的值之后再进行累加,得到关于该累加操作的关于 t 的函数。从另一

2017-07-24 18:17:18 5486 1

原创 JVM层对jar包字节码加密

githubhttps://github.com/sea-boat/ByteCodeEncrypt需求拿到的需求是要对某特定的jar包实现加密保护,jar包需要提供给外部使用,但核心逻辑部分需要保护以免被简单反编译即能看到。几个思路大致想到以下几种方式: 1. 混淆器,将jar包混淆后反编译出来的东西看起来就很眼花,但如果耐心一点也是可以看出来的。 2. 对jar包进行加密,然后在Java层重写

2017-07-18 18:45:36 15094 20

原创 《Tomcat内核设计剖析》京东评论过百

到京东看了下《Tomcat内核设计剖析》评论都一百多了,上个月也第二次印刷了,这里看下好评、中评和差评。好评:中评对于中评,请看 为什么《写Tomcat内核设计剖析》,就当是回复吧。差评这个物流慢应该打给东哥。

2017-07-16 07:58:50 2499

原创 softmax的多分类

关于多分类我们常见的逻辑回归、SVM等常用于解决二分类问题,对于多分类问题,比如识别手写数字,它就需要10个分类,同样也可以用逻辑回归或SVM,只是需要多个二分类来组成多分类,但这里讨论另外一种方式来解决多分类——softmax。关于softmaxsoftmax的函数为P(i)=exp(θTix)∑Kk=1exp(θTkx)P(i)=\dfrac{exp(\theta_i^Tx)}{\sum_{k=

2017-07-13 17:38:37 36399

原创 Java调用本地方法又是怎么一回事

JNIJNI即Java Native Interface,它能在Java层实现对本地方法的调用,一般本地的实现语言主要是C/C++,其实从虚拟机层面来看JNI挺好理解,JVM主要使用C/C++ 和少量汇编编写,在执行Java字节码时如果遇到有某个方法标明为Native的则从JVM中找到对应的C/C++函数,一般本地方法对应的函数会被注册到JVM中。使用JNI能让Java与本地语言交互,但一般也意味着

2017-07-10 17:28:23 7330 4

原创 从JDK源码角度看Byte

Java的Byte类主要的作用就是对基本类型byte进行封装,提供了一些处理byte类型的方法,比如byte到String类型的转换方法或String类型到byte类型的转换方法,当然也包含与其他类型之间的转换方法。主要实现代码如下:public final class Byte extends Number implements Comparable<Byte> { public stati

2017-07-06 15:39:05 3595 3

原创 神经网络的交叉熵损失函数

常见损失函数0-1损失函数 L(Y,f(X))={1,0Y != f(X)Y = f(X)L(Y,f(X))=\begin{cases}1,& \text{Y != f(X)}\\0& \text{Y = f(X)}\end{cases}平方损失函数 L(Y,f(X))=(Y−f(X))2L(Y,f(X))=(Y-f(X))^{2}绝对损失函数L(Y,f(X))=|(Y−f(X))|L(Y

2017-07-04 18:07:16 7748 2

原创 为什么写《Tomcat内核设计剖析》

三四年前更多地还是做web业务开发,基本不关心web层以下的东西,但是每次出故障时面对现象都不能从脑子里形成由底层到应用层的完整的逻辑,往往只能分析到Web应用就无法继续往下,Web容器完全就是一个黑盒,对于问题更多的是靠猜。举个简单的例子,应用突然就不服务了,此时如果对Web容器模型熟悉就可以直接jstack打印虚拟机的栈进行分析。我个人接受不了这种用非完整性逻辑去分析事物的感觉,于是想着还是把T

2017-07-01 22:03:21 17817 24

原创 《Tomcat内核设计剖析》勘误表

《Tomcat内核设计剖析》勘误表书中第95页图request部分印成了reqiest。书中第311页两个tomcat3,其中一个应为tomcat4。书中第5页URL应为URI。书中前言第13行,借签应为借鉴。

2017-06-29 11:30:39 3054 10

原创 从JDK源码角度看Object

Java的Object是所有其他类的父类,从继承的层次来看它就是最顶层根,所以它也是唯一一个没有父类的类。它包含了对象常用的一些方法,比如getClass、hashCode、equals、clone、toString、notify、wait等常用方法。所以其他类继承了Object后就可以不用重复实现这些方法。这些方法大多数是native方法,下面具体分析。主要的代码如下:public class O

2017-06-26 19:53:06 4216 2

原创 kmeans实现文本聚类

需求拿到的需求是输入n个文本,对文本进行聚类,由于这些输入不能通过历史数据进行训练,所以这个主要就是用无监督学习来解决。kmeans谈到聚类就会想到kmeans,它的核心思想是给定的K值和K个初始质心将样本中每个点都分到距离最近的类簇中,当所有点分配完后根据每个类簇的所有点重新计算质心,一般是通过平均值计算,然后再将每个点分到距离最近的新类簇中,不断循环此操作,直到质心不再变化或达到一定的迭代次数。

2017-06-22 20:13:12 7106 3

原创 从 JDK 源码角度看 Boolean

Java的Boolean类主要作用就是对基本类型boolean进行封装,提供了一些处理boolean类型的方法,比如String类型和boolean类型的...

2017-06-16 19:58:11 159

原创 从JDK源码角度看Boolean

Java的Boolean类主要作用就是对基本类型boolean进行封装,提供了一些处理boolean类型的方法,比如String类型和boolean类型的转换。主要实现源码如下:public final class Boolean implements java.io.Serializable, Comparable<Boolean> { private final boolean value;

2017-06-16 19:07:38 3007

原创 分布式服务框架的一些点

分布式服务框架自己想到的一些点,可能不齐,当是思路记录下。===========广告时间==========鄙人的新书《Tomcat内核设计剖析》已经在京东预售了,有需要...

2017-06-14 21:29:16 112

原创 开源一个文本分析项目

Githubhttps://github.com/sea-boat/TextAnalyzerTextAnalyzera text analizer that can analyze text. so far, it can extract hot words in a text segment by using tf-idf algorithm,at the same time using a sc

2017-06-12 18:18:42 3675

原创 谈谈Java基础数据类型

Java的基本数据类型 类型 意义 取值 boolean 布尔值 true或false byte 8位有符号整型 -128~127 short 16位有符号整型 -pow(2,15)~pow(2,15)-1 int 32位有符号整型 -pow(2,31)~pow(2,31)-1 long 64位有符号整型 -pow(2,63)~p

2017-06-08 18:27:46 2801 1

原创 如何用弱引用实现内存泄漏检测

在Java中,引用分为强引用、软引用、弱引用和虚引用四种。强引用,代码中普遍存在的形式,例如常见的普通类new出对象后的引用。GC不会回收强引用的对象。软...

2017-06-04 19:20:53 246

原创 怎么用弱引用实现内存泄漏检测

在Java中,引用分为强引用、软引用、弱引用和虚引用四种。强引用,代码中普遍存在的形式,例如常见的普通类new出对象后的引用。GC不会回收强引用的对象。软引用,软引用对象会在内存溢出异常之前进行回收,也就是说在内存富裕的情况下GC不回收软引用。它可通过SoftReference类实现。弱引用,弱引用对象会在下一次GC时被回收,也就是说不管内存富不富裕,当GC时都会回收弱引用。它可通过WeakR

2017-06-04 18:32:02 1532

转载 转自人邮异步图书公众号

Tomcat作为一款免费的开源应用服务器,凭借技术先进、性能稳定、体积小巧、扩展性好等优势,深受开发者和软件开发商认可。鉴于Tomcat是一款较轻量级的应用服务器,它广泛...

2017-06-02 18:56:02 211

原创 如何用机器学习对文本分类

需求使用监督学习对历史数据训练生成模型,用于预测文本的类别。样本清洗主要将重复的数据删除掉,将错误无效的数据纠正或删除,并检查数据的一致性等。比如我认为长度小于少于13的数据是无效的遂将之删掉。def writeFile(text): file_object = open('result.txt','w') file_object.write(text) file_object.c

2017-05-30 20:21:58 7994

原创 注解的原理又是怎么一回事

Java内置的注解以及自定义一个注解大家都比较熟悉的了,现在来看看注解实现的原理,看看Java的体系下面是如何对注解的支持的。在讨论前先看一个自定义注解的例子,自定义实现这样一个注解:通过@Test向某类注入一个字符串,通过@TestMethod向某个方法注入一个字符串。① 创建Test注解,声明作用于类并保留到运行时,默认值为default。@Target({ElementType.TYPE})

2017-05-24 19:16:51 4130 3

原创 SBT构建工具

SBTSimple Build Tool. A interactive build tool.installwindows可直接到http://www.scala-sbt.org/0.13/docs/Installing-sbt-on-Windows.html下载安装,但网速实在是太慢,我这是直接用chocolatary管理软件,所以直接一个命令choco install sbt安装,很快。comm

2017-05-24 14:24:19 1360

原创 简看线程池原理

“池”技术对我们来说是非常熟悉的一个概念,它的引入是为了在某些场景下提高系统某些关键节点性能,最典型的例子就是数据库连接池,JDBC是一种服务供应接口(S...

2017-05-21 19:30:02 106

原创 机器学习之神经网络

多层神经网络前面说到的感知器是一种最基础的神经网络,他只有输入层和输出层,感知器只能处理线性可分问题,而对于非线性问题就需要多层神经网络。一般如下图所示,有多个层,比如左边的包含输入层、隐层和输出层,而右边的则包含了两个隐层。每层的神经元与下一神经元全互连,同层之间的神经元不会相连,输入层用于接收输入,经过隐层加工后再到输出层加工并输出。如何训练多层网络对于多层网络我们常用误差逆传播算法来训练,而我

2017-05-18 19:23:22 2655

原创 如何对热词进行提取

热词简单地理解热词就是某文档中出现频率高的且非无用的词语。朴素的想法文档由若干词(term)组成,那么很朴素的想法就可以认为文档中某个term出现的次数越多就越可能是高频热词。这样的统计策略就叫Term Frequency,即TF。干扰项标点符号,一般标点符号没有价值,去掉。停词,停词没有特别的意义,一般也要去掉,比如“是”,“的”,”the”,”that”,”this”等。词权重现在可能还存

2017-05-15 20:09:40 6250

原创 Java内存模型

在多核时代,如何提高CPU的性能成为了一个永恒的话题,而这个话题的讨论主要就是如何定义一个高性能的内存模型,内存模型用于定义处理器的各层缓存与共享内存的同步机制及线程和内存交互的规则。 Java的世界也有属于它自己的内存模型,Java内存模型,即Java Memory Model,简称JMM。由于Java被定义成一种跨平台的语言,所以在内存的描述上面也要能是跨平台的,Java虚拟机试图定义一种统一的

2017-05-15 09:31:28 2525 2

原创 从 JDK 源码角度看 java 并发线程的中断

线程的定义给我们提供了并发执行多个任务的方式,大多数情况下我们会让每个任务都自行执行结束,这样能保证事务的一致性,但是有时我们希望在任务执行中取消任务,使...

2017-05-12 19:38:40 207

原创 方便Lucene高版本使用IKAnalyzer分词包

whyIKAnalyzer是个很不错的中文分词工具,但已经不维护了,但只支持低版本的Lucene,为了兼容Lucene6.x版本,这里是小改动了一些然后放到github上...

2017-05-09 18:56:02 120

原创 方便Lucene高版本使用IKAnalyzer分词

whyIKAnalyzer是个很不错的中文分词工具,但已经不维护了,但只支持低版本的Lucene,为了兼容Lucene6.x版本,这里是小改动了一些然后放到github上,方便有需要的人使用。也对Lucene源码比较熟,后面有必要再自己重新建个分词工具。changesLucene的Analyzer抽象类有变。Lucene的Tokenizer抽象类有变。Lucene的BooleanQuery有变

2017-05-09 18:39:40 5157 2

原创 JDK源码角度看并发锁的优化

在CLH锁核心思想的影响下,JDK并发包以CLH锁作为基础而设计,其中主要是考虑到CLH锁更容易实现取消与超时功能。比起原来的CLH锁已经做了很大的改造,...

2017-05-04 19:59:30 88

原创 机器学习之感知器

感知器在讲神经网络前先说说感知器,感知器是一种二分类的线性分类模型,输出值取-1或1。感知器是最基础的神经网络,理解好感知器对后面的各种神经网络模型是很有帮助的。如下图, 它可以有多个输入$(x_1,x_2,...x_n)$,每个输入对应有一个权重$(w_1,w_2...w_n)$,除此之外还有一个偏置项$w_0$。则输出为o(x) = \left\{\begin{matrix}1, & if

2017-05-04 14:37:48 2299

原创 新书预售《Tomcat内核设计剖析》

鄙人的新书《Tomcat内核设计剖析》已经在京东预售了,有需要的朋友可以通过文末的连接进行预定。感谢各位朋友。本书特色?深入剖析Tomcat的每一个设计要点,使读者知其然,更知其所以然;拒绝没营养的直接贴代码分析,而是升华到对Tomcat设计思想的剖析;通篇采用大量插图来辅助文字解释,降低读者的理解门槛;层次分明,脉络清晰,由浅入深,循序渐进,确保知识讲解的连贯性和普适性。通过本书能快速建

2017-05-03 09:19:23 5870 21

原创 机器学习之k近邻

核心思想KNN算法假设给定的训练集中的实例都已经分好类了,对于新的实例,根据离它最近的k个训练实例的类别来预测它的类别。即这k个实例大多数属于某个类别则该实例就属于某个类别。比如k为5,离新实例a最近的5个样本的情况为,3个样本属于A类,1个样本属于B类,一个样本属于C类,那么新实例a属于A类。常用距离欧氏距离 d(x,y)=∑ni=1(xi−yi)2−−−−−−−−−−−−√d(x,y) =

2017-04-28 20:36:25 1786

原创 TensorFlow训练Logistic回归

Logistic回归在用线性模型进行回归训练时,有时需要根据这个线性模型进行分类,则要找到一个单调可微的用于分类的函数将线性回归模型的预测值关联起来。这时就要用到逻辑回归,之前看吴军博士的《数学之美》中说腾讯和谷歌广告都有使用logistics回归算法。如下图,可以清晰看到线性回归和逻辑回归的关系,一个线性方程被逻辑方程归一化后就成了逻辑回归。.Logistic模型对于二分类,输出y∈{0,1}y

2017-04-22 20:05:56 11830

原创 TensorFlow训练单特征和多特征的线性回归

线性回归线性回归是很常见的一种回归,线性回归可以用来预测或者分类,主要解决线性问题。相关知识可看“相关阅读”。主要思想在TensorFlow中进行线性回归处理重点是将样本和样本特征矩阵化。单特征线性回归单特征回归模型为:y=wx+by = wx + b构建模型X = tf.placeholder(tf.float32, [None, 1])w = tf.Variable(tf.zeros([1,

2017-04-16 12:02:53 5989

The java.util.concurrent Synchronizer Framework

Doug Lea关于jdk里面并发同步器的实现。

2014-08-17

J2EE性能优化

J2EE性能优化

2013-09-06

Tomcat 架构 原理

Tomcat 架构 原理

2013-09-06

j2ee APIs 标准

JAVA EE APIs 标准 描述文档

2013-09-03

模仿GOOGLE自动提示功能

模仿GOOGLE自动提示功能 !

2010-08-06

extjs3.0API中文文档

ext3.0 API 中文文档 用ext的朋友可以下来查询

2010-08-01

extjs3.0API查询文档

extjs3.0API查询文档,有需要的朋友来下吧

2010-08-01

ssh2完整项目源代码

struts2完整项目源代码,可以下来学习,从整体体会ssh2

2010-07-30

struts2教程例子跟包

里面是struts2教程例子所需的包,学习受struts2的朋友可以下来看看

2010-07-30

最新的完整的ext包

这个是完整的ext包,开发ext的朋友来下

2010-07-30

struts2教程(简明扼要)

这个事struts2教程,简明,囊括了所有要点!现学现用.......

2010-07-25

内调焦望远镜课程设计

要做课程设计的同学们啊,来啊,内调焦望远镜课程设计

2010-06-03

ibatis教程 要的快点来下啊

ibatis教程 要的快点来下啊 请要的同学快来下

2010-06-03

空空如也

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

TA关注的人

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