- 博客(354)
- 资源 (39)
- 收藏
- 关注
转载 HashMap多线程死循环问题
HashMap不是线程安全的,在被多线程共享操作时,会有问题,具体什么问题呢,一直没有个清晰的理解,今天写了个测试程序调了一下,才明白其中道理。主要是多线程同时put时,如果同时触发了rehash操作,会导致HashMap中的链表中出现循环节点,进而使得后面get的时候,会死循环。【关于什么是rehash,读者可以自行去google了】本文主要参考了:http://coolshel
2017-04-01 17:08:51 512
转载 Java HashMap的死循环
目录(?)[-]问题的症状Hash表数据结构HashMap的rehash源代码正常的ReHash的过程并发下的Rehash其它在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为
2017-03-30 19:37:48 528
转载 GC学习笔记
GC学习笔记写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里。一、GC特性以及各种GC的选择1、垃圾回收器的特性2、对垃圾回收器的选择2.1 连续 VS. 并行2.2 并发 VS. stop-the-world2.3 压缩 VS. 不压缩 VS. 复制二、GC性能指标三、分代回收四、J2SE 5.0的Ho
2017-03-28 22:17:47 422
转载 数据分析与处理(Leveldb 实现原理)
郑重声明:本篇博客是自己学习 Leveldb 实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可以浏览原始页面 :-),感兴趣的话可以一起讨论 Leveldb 的实现原理!LevelDb日知录之一:LevelDb
2017-03-24 16:35:22 641
转载 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
目录(?)[-]环境准备工具目录结构所需jar包项目的配置配置ConnectionFactory配置生产者配置消费者ActiveMQxmlwebxml运行效果总结前言这篇博文,我们基于spring+JMS+ActiveMQ+Tomcat,做一个Spring4.1.0和ActiveMQ5.11.1整合实例,实现了Point-To
2017-03-10 17:11:55 426
转载 深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例
目录(?)[-]开发环境搭建开发环境运行总结第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点。第二篇博文深入浅出JMS(二)–ActiveMQ简单介绍以及安装,我们介绍了消息中间件ActiveMQ,安装,启动,以及优缺点。
2017-03-10 17:10:27 433
转载 深入浅出JMS(二)——JMS的组成
目录(?)[-]JMS ProviderAdministered ObjectsConnectionFactoryDestinationJMS客户端消息生产者消息消费者MessageHeaderPropertiesBodyJMS Provider 实现了JMS规范的消息系统,该系统还提供必须的用于管理和控制全方位的功能,
2017-03-10 17:09:35 338
转载 深入浅出JMS(一)--JMS基本概念
摘要:The Java Message Service (JMS) API is a messaging standard that allows application components based on the JavaPlatform Enterprise Edition (Java EE) to create, send, receive, and read messages.
2017-03-10 17:08:47 402
转载 JPA概要
JPA定义了Java ORM及实体操作API的标准。本文摘录了JPA的一些关键信息以备查阅。如果有hibernate的基础,通过本文也可以快速掌握JPA的基本概念及使用。Table of Contents1 JPA概述2 实体生命周期3 实体关系映射(ORM)3.1 基本映射3.2 ID生成策略3.3 关联关系3.4 继承关系4 事件及监听5 Q
2017-03-10 17:01:09 358
转载 利用 JTA 处理事务
利用 JTA 处理事务什么是事务处理事务是计算机应用中不可或缺的组件模型,它保证了用户操作的原子性 ( Atomicity )、一致性 ( Consistency )、隔离性 ( Isolation ) 和持久性 ( Durabilily )。关于事务最经典的示例莫过于信用卡转账:将用户 A 账户中的 500 元人民币转移到用户 B 的账户中,其操作流程如下 1. 将 A 账户
2017-03-10 16:55:47 472
转载 Java threadpool机制深入分析
Java threadpool机制深入分析简介 在前面的一篇文章里我对java threadpool的几种基本应用方法做了个总结。Java的线程池针对不同应用的场景,主要有固定长度类型、可变长度类型以及定时执行等几种。针对这几种类型的创建,java中有一个专门的Executors类提供了一系列的方法封装了具体的实现。这些功能和用途不一样的线程池主要依赖
2017-03-09 20:54:20 428
原创 一个朋友的面试总结,算自己的知识回顾补偿吧
面试总结 作者 codertom 关注2017.03.06 00:02* 字数 2351 阅读 26评论 2喜欢 31.美团美团好像近期在大肆招人,我面试也是很快,请了一上午的假去的,面试官很不错,顺着简历问了一些项目的问题,问题也主要是项目的问题,也指出项目上可能存在的一些问题,问一下我的解决方案,主要问题汇总一下:LocalCache
2017-03-08 20:46:12 2091
转载 Spark Streaming实时计算框架介绍
Spark Streaming实时计算框架介绍 随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐、用户行为分析等。 Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用。本文将详细介
2017-03-06 15:35:33 656
转载 G1垃圾收集器入门
[-]G1垃圾收集器入门说明概述目的需要的时间简介硬件与软件环境需求准备条件Java 技术 和 JVMJava 概述JREJava Runtime EditionJava 编程语言JDKJava Development KitJVMJava Virtual Machine探索 JVM 体系架构Hotspot 架构Hotspot 关键部分性
2017-03-02 14:58:31 1037
转载 深入JVM锁机制-synchronized
[-] 1 线程状态及状态转换1 ContentionList虚拟队列2 EntryList自旋锁偏向锁1 CAS及SMP架构2 偏向解除总结 目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与
2017-01-27 17:43:04 467
转载 深入JVM锁机制-reentrantlock
[-]ReentrantLock的调用过程锁实现加锁1 SyncnonfairTryAcquire2 AbstractQueuedSynchronizeraddWaiter3 AbstractQueuedSynchronizeracquireQueued解锁Lock VS Synchronized前文(深入JVM锁机制-synchronized)分析了JVM
2017-01-27 17:20:51 632
原创 冒泡排序,仔细看看有什么不同?
public class BubboSort { public static void main(String[] args) { int[] array={1,2,4,3,6,9,7,10,5,8}; BubboSort(array); for(int item:array) { System.out.println(item); } } public sta
2017-01-20 20:59:10 544
转载 mapreduce创建solrcloud索引
原理图(摘自网络):1、datasourcehdfs或者TableMapReduceUtil来scan数据(不建议HFileInputFomat方式,易丢失数据)2、mapsetup()方法中通过zkHost创建CloudSolrServer,目的是通过docId,来计算这个docId应该router到哪个shardId,关键代码为:// cop
2017-01-17 15:06:07 549
转载 lucene的IndexReader的初始化过程
在使用Lucene时,有一条建议”不要频繁去打开关闭硬盘索引”。为什么会有这条建议?这就需要在IndexReader的实例化过程中找答案。先说一个结论“IndexReader的实例化过程是一个非常耗时的过程”。由于IndexReader只是一个抽象类,在调用代码:真正得到的是StandardDirectoryReader对象。首先来看一下StandardDirectoryReader的类图
2017-01-16 15:16:30 3372
转载 贝叶斯分类(这个讲的比较清晰,一看就明白)
原文地址:http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html1.2、分类问题综述 对于分类问题,其实谁都不会陌生,说我们每个人每天都在执行分类操作一点都不夸张,只是我们没有意识到罢了。例如,当你看到一个陌生人,你的脑子下意识判断TA是男是女;你可能经常会走在路上对
2016-12-22 23:13:40 24725 2
转载 最小二乘法多项式曲线拟合原理与实现(错误地方已经修改底层补充自己写的java实现)
目录(?)[-]概念原理运行前提代码运行效果 概念最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x)。原理[原理部分由个人根据互联网上的资料进行总结,希望对大家能有用] 给定数据点pi(xi,yi),其中i=1,2,…,m。求近似曲
2016-12-07 15:00:58 4251
转载 红黑树(一)之 原理和算法详细介绍
红黑树(一)之 原理和算法详细介绍 原文地址:http://www.cnblogs.com/skywang12345/p/3245399.html概要目录1 红黑树的介绍2 红黑树的应用3 红黑树的时间复杂度和相关证明4 红黑树的基本操作(一) 左旋和右旋5 红黑树的基本操作(二) 添加6 红黑树的基本操作(三) 删除 作者:S
2016-12-06 15:25:09 612
转载 Kmeans算法参考记录
[-]基本Kmeans算法1注意问题1K如何确定与层次聚类结合2稳定性方法3系统演化方法3使用canopy算法进行初始划分42初始质心的选取3距离的度量4质心的计算5算法停止条件6空聚类的处理适用范围及缺陷实现1.基本Kmeans算法[1][cpp] view plain copy选择K个点作为
2016-12-05 16:41:08 591
转载 分类算法之朴素贝叶斯分类(Naive Bayesian classification)
分类算法之朴素贝叶斯分类(Naive Bayesian classification)0、写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感。而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的。 一直想写关于算法的博文,也曾写过零散的两篇,但也许是相比于工程性文
2016-12-01 16:36:26 434
转载 simhash算法介绍-尾部添加比较经典的实现代码,代码值得一读
方法介绍背景如果某一天,面试官问你如何设计一个比较两篇文章相似度的算法?可能你会回答几个比较传统点的思路:一种方案是先将两篇文章分别进行分词,得到一系列特征向量,然后计算特征向量之间的距离(可以计算它们之间的欧氏距离、海明距离或者夹角余弦等等),从而通过距离的大小来判断两篇文章的相似度。另外一种方案是传统hash,我们考虑为每一个web文档通过hash的方式生成一个指纹(finge
2016-11-25 20:50:16 1687
转载 深入理解Java:注解(Annotation)自定义注解入门
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target,
2016-11-15 14:38:21 379
转载 深入理解Java:注解(Annotation)--注解处理器
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Annotati
2016-11-15 14:26:38 358
转载 文件锁(Filelock)与锁定映射文件部分内容
文件锁JDK 1.4引入了文件加锁机制,允许我们同步访问一个共享文件,不过,竞争同一文件的两个线程有可能在不同的java虚拟机上,或者一个是java线程,另一个是操作系统中其他的某个线程,但文件锁对其他线程或其他操作系统进程都是可见的,因为java的文件加锁直接映射到了本地操作系统的加锁机制。注,这里讲的锁是指锁定其他应用程序,而不是锁定同一虚拟机里访问的同一文件的其他线程 。如果
2016-11-13 19:56:11 1633
转载 Java NIO
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buff
2016-11-11 21:49:41 431
原创 maven+springMVC+mybatis+velocity+mysql+junit 代码生成器
最近刚把spring的源码过了一遍,但总感觉看完不能就这么结束了,得做点什么留下个脚印,所以自己基于maven+springMVC+mybatis+velocity+mysql+junit搭建个工程项目,并且做了对应框架的代码生成工具。下面就把项目框架介绍下,并在最后附带代码下载地址1.项目基本框架代码生成器基于velocity作为模板生成,目前主要做了jar包的生成以及web
2016-11-06 17:07:40 1451
原创 maven+springMVC+mybatis+velocity+mysql+junit项目框架搭建
最近刚把spring的源码过了一遍,但总感觉看完不能就这么结束了,得做点什么留下个脚印,所以自己基于maven+springMVC+mybatis+velocity+mysql+junit搭建个工程项目,底下有具体代码下载地址,并且做了对应框架的代码生成工具,代码生成工具单独介绍。对于springmvc的流程借用网上的流图:Spring MVC工作流程图图一
2016-11-06 15:09:39 977
转载 Ubuntu16.04下hadoop-2.6.0单机配置和伪分布式配置
[-]注意安装之前最好删除hadoop-260dfsdata下的所有文件避免出现各种问题尤其安装包不是官方现下载的需要重新编译的教程httpblogcsdnnetggz631047367articledetails42460589在Ubuntu下创建hadoop用户组和用户在Ubuntu下安装JDK安装ssh服务 建立ssh无密码登录本机安装hadoop测试Hadoop伪分布式配置
2016-09-22 17:16:43 3779
转载 各种 Java Thread State 第一分析法则
使用 TDA 工具,看到大量 Java Thread State 的第一反应是:1,线程状态为“waiting for monitor entry”:意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。此时线程状态一般都是 Blocked:java.lang.Thread.State: BLOCKED (on object m
2016-09-22 14:39:47 1332
转载 你真的了解一段Java程序的生命史吗
你真的了解一段Java程序的生命史吗作为一名程序猿 ,我们每天都在写Code,但你真的了解它的生命周期么?今天就来简单聊下它的生命历程,说起一段Java Code,从出生到game over大体分这么几步:编译,类加载,运行,GC。编译Java语言的编译期其实是一段“不确定 ”的过程,因为可能是一个前端编译器把*.java
2016-09-04 20:07:20 587
转载 对象序列化的几种方式的比较
在java中socket传输数据时,数据类型往往比较难选择。可能要考虑带宽、跨语言、版本的兼容等问题。比较常见的做法有两种:一是把对象包装成JSON字符串传输,二是采用java对象的序列化和反序列化。随着Google工具protoBuf的开源,protobuf也是个不错的选择。对JSON,Object Serialize,ProtoBuf 做个对比。定义一个待传输的对象UserVo:
2016-09-04 19:43:50 3683
转载 Java序列化机制和原理
Java序列化机制和原理 Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及Java序列化的算法,我们用一个实例来示范序列化以后的字节是如何
2016-09-02 22:35:18 445
转载 磁盘临时表与内存临时表的差异
一、磁盘临时表与内存临时表的差异 从磁盘临时表与内存临时表的差异中大家可以看到,磁盘临时表只是内存临时的一个替代品。这就好像操作系的虚拟内存一样。当内存不够用时,可以在硬盘上的一个空间作为其替代品,将内存中的部门数据转移到虚拟内存中。这个磁盘临时表也是相同的道理。 但是这里需要注意的是,硬盘的效率与内存的效率是不同的。在执行相同的一个作业时,内存的性能要高于硬盘的性能,一般会高上百倍,
2016-08-22 18:00:16 2693
转载 hive严格模式
hive严格模式 hive提供了一个严格模式,可以防止用户执行那些可能产生意想不到的不好的效果的查询。即某些查询在严格 模式下无法执行。 1)带有分区的表的查询 如果在一个分区表执行hive,除非where语句中包含分区字段过滤条件来显示数据范围,否则不允许执行。换句话说, 就是用户不允许扫描所有的分区。进行这个限制的原因是,通常分区表都拥有
2016-08-17 21:06:37 841
转载 JAVA socket FTPserver HTTPserver chatting RMI(Remote Method Invocation)
目录(?)[-]github-httpserverftpserverchattingRoomRMIRMI Remote Method Invocationhttpserver遇到的问题FTP客户端连接到服务器端 c语言伪码Java版见github客户端连接到 FTP 服务器接收欢迎信息客户端发送用户名和密码登入 FTP 服务器让服务器进入被动模式在数据端口监听客户端通过
2016-07-23 20:15:31 509
转载 原子变量(AtomicLong, AtomicInteger, AtomicReference)
一、何谓Atomic? Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位。计算机中的Atomic是指不能分割成若干部分的意思。如果一段代码被认为是Atomic,则表示这段代码在执行过程中,是不能被中断的。通常来说,原子指令由硬件提供,供软件来实现原子方法(某个线程进入该方法后,就不会被中断,直到其执行完成) 在x86 平台上,CPU提供了在指令执行期间对总线
2016-07-15 22:59:57 1773
流程引擎之compileflow idea 2024.*插件支持
2024-05-27
SkyAR完整代码+依赖文件:checkpoints-G-coord-resnet50
2023-06-11
视频换天造物实践秒变科幻大片实践相关资料:checkpoints-G-coord-resnet50
2023-06-11
gradle-4.3&jdk10-mac.zip|gradle-4.3&jdk10-mac.zip
2020-11-07
spi-demo java spi小例子
2019-02-12
java垃圾回收以及jvm参数调优概述
2017-06-18
maven+springMVC+mybatis+velocity+mysql+junit 代码生成器
2016-11-06
maven+springMVC+mybatis+velocity+mysql+junit项目框架搭建
2016-11-06
IK源码及讲解中的测试代码
2014-12-09
solr4.7示例包含需要的jar包
2014-03-19
抽象工厂模式简洁介绍附带net简单用例代码如果你还不理解是老天爷的错
2013-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人