Java多线程:volatile变量、happens-before关系及内存一致性 什么是 Volatile 变量?Volatile 是 Java 中的一个关键字。你不能将它设置为变量或者方法名,句号。认真点,别开玩笑,什么是 Volatile 变量?我们应该什么时候使用它?哈哈,对不起,没法提供帮助。volatile 关键字的典型使用场景是在多线程环境下,多个线程共享变量,由于这些变量会缓存在 CPU的缓存中,为了避免出现内存一致性错误而采用 volat
诊断Java中的内存泄露 每次我怀疑有内存泄漏时,我都要翻箱倒柜找这些命令。所以,这里总结一下以备后用:首先,我用下面的命令监视进程:1while( sleep 1) ; dops -p $PID -o %cpu,%mem,rss ; done
手把手教你用 Strace 诊断问题 运维技巧 早些年,如果你知道有个 strace 命令,就很牛了,而现在大家基本都知道 strace 了,如果你遇到性能问题求助别人,十有八九会建议你用 strace 挂上去看看,不过当你挂上去了,看着满屏翻滚的字符,却十有八九看不出个所以然。本文通过一个简单的案例,向你展示一下在用 strace 诊断问题时的一些套路。如下真实案例,如有雷同,实属必然!让我们看一台高负载服务器的 to
排除jar包冲突的三板斧 Maven对于新手来说是《步步惊心》,因为它包罗万象,博大精深,因为当你初来乍到时,你就像一个进入森林的陌生访客一样迷茫。 Maven对于老手来说是《真爱配方》,因为它无所不能,利如刀锋,使用Maven做开发,如饮美酒如悦美人。 Maven对于新手来说,最痛苦的一件事莫过于包之间的冲突,由于Maven的依赖传递性,当你引入一个依赖类时,其身后的依赖类也一起如过江之鲫纷至沓来了。
依赖注入与JSR-330的参考实现——Guice 依赖注入(控制反转的一种形式),它是Java开发主流中一个重要的编程范式(思维方式)。简单的说,使用DI技术可以让对象从别处获得依赖项,而不是由它自己来构造。使用DI有很多好处,它能降低代码之间的耦合度,让代码更易于测试、更易读。Java DI的官方标准是JSR-330,本文我们还会介绍JSR-330的参考实现Guice 3,一个轻量级 的DI框架。IoC and DI使用Io
SCP 命令 linux之cp/scp命令+scp命令详解 名称:cp使用权限:所有使用者使用方式:cp [options] source destcp [options] source... directory说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。把计-a 尽可能将档案状态、权限等资料都照原状予以
一次寻找邻居单词列表的算法优化 朋友发来了一道题目进行讨论,题目的主体可以简化为如下:定义一个单词的邻居为,与其长度相同,有且仅有一个字母不同的其他单词。对于一个单词列表,计算所有单词的邻居列表。例如:单词son与sun为邻居,而与song不为邻居,因为它们长度不一样。读者朋友们,看完这道题目后,请先进行独立思考,然后再展开阅读。p.s. 本文将不包含具体代码。暴力法第一个想法很直
中文分词算法 之 基于词典的全切分算法(有点儿柱搜索的味道) 在使用 基于词典 的分词方法的时候,如果我们解决了下面4个问题:1、如何把一句话中所有的词找出来呢?只要词典中有就一定要找出来。2、如何利用1中找出来的词组合成完整的句子?组合成的句子要和原句一样。3、如何保证2中组合而成的句子包含了所有可能的词序?4、如何从所有可能的词序中选择最完美的一种作为最终的分词结果?那么我们的分词方法称之为:基于词典的全切分算法。
整数压缩算法 1 0~255的整数可以只用一个字节表示,256~65535的数据只需2个字节,65536~16777215需要3个字节,16777216以上4个字节int uncompressed[] = {...}byte compressed[] = {...}Encode Integers:int outPos = 0, previous = 0;for (int in
构造模式实践 这是我第一篇文章(也是我关于这个主题的第一篇博客)。我记不清在哪读过这项内容(尽管我基本上确认是在Practices of an Agile Developer上看到的),但是写博客应该能帮助你全神贯注。具体点来说,通过花些时间来解释你所知道的东西,你能更好的理解它。这也正是我想要努力去做的,通过解释一件事,继而进一步理解这件事。并且还有个额外的好处,当我回忆曾经做过的事情时,它是一个
语义分析的一些方法(一) 语义分析,本文指运用各种机器学习方法,挖掘与学习文本、图片等的深层次概念。wikipedia上的解释:In machine learning, semantic analysis of a corpus is the task of building structures that approximate concepts from a large set of documents(or imag
awk经典总结 copy from http://blog.chinaunix.net/uid/11172773.html1 前言awk是Unix环境下一种非常好的语言,适合于文本处理和报表生成,它还有许多精心设计的特性,允许进行特殊技巧程序设计。对于短消息来说,比如处理话单文件,使用awk就非常方便,鉴于测试组大部分人对awk并不熟悉,因此仅以本文作一个提纲挈领的介绍,希望对初
JNA 之 初识(上) JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架。使用JNI调用共享类库(.dll/.so文件)是非常麻烦的事情,既需要编写java代码,又要编写C语言的代理方法,这其中需要很多数据类型的转换,是让人非常头痛。JNA框架就是为了解决这些问题和繁琐的事情而开发的,它提供一组Java工具类用于在运行期动态访问系统
Charles(最强大的http调试工具)详细教程(上) 2014-02-24 16:31 3064人阅读 评论(0) 收藏 举报目录(?)[-]界面功能初探本地代理和远程代理如何判断是否代理成功呢去除代理配置mobile代理功能试试远程代理代理配置原文链接:http://blog.csdn.net/wildfireli/article/details/19829479Charles是目
危险!在HashMap中将可变对象用作Key 本文中我们将会讨论在Java HashMap中将可变对象用作Key。所有的Java程序员可能都在自己的编程经历中多次用过HashMap。那什么是HashMap呢?HashMap是一种用哈希值来存储和查找键值对(key-value pair,也称作entry)的一种数据结构。为了正确使用HashMap,选择恰当的Key是非常重要的。Key在HashMap里是不可重复的。内容
基于互信息和左右信息熵的短语提取识别 原文链接:在中文语言处理领域,一项重要的任务就是提取中文短语,也即固定多字词表达串的识别。短语提取经常用于搜索引擎的自动推荐,新词识别等领域。本文主要实现了从陌生文本中自动发现固定短语,并给出原理和步骤。测试数据算法工程师算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或
线性回归与梯度下降法 前言最近在看斯坦福的《机器学习》的公开课,这个课程是2009年的,有点老了,不过讲的还是很好的,廓清了一些我以前关于机器学习懵懂的地方。我的一位老师曾经说过:什么叫理解?理解就是你能把同一个事情用自己的语言表达出来,并且能让别人听得懂。本着这样的原则,同时也为了证明自己是”理解”的,于是决定打算在学习《机器学习》公开课的时候,写一些系列文章类巩固学到的东西。机器学习中的
Libsvm和Liblinear的使用经验谈 Libsvm和Liblinear都是国立台湾大学的Chih-Jen Lin博士开发的,Libsvm主要是用来进行非线性svm 分类器的生成,提出有一段时间了,而Liblinear则是去年才创建的,主要是应对large-scale的data classification,因为linear分类器的训练比非线性分类器的训练计算复杂度要低很多,时间也少很多,而且在large scale data上的性
Java中的泛型方法 泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test{}。这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类型,例如:Test t = new Test();,指明泛型T的类型为Object。 但是Java中的泛型方法就比较复杂了。 泛型类,是在实例化类的时候指明泛型的具体类型;泛型方