02 2017 档案

摘要:Java多线程编程中,常用的多线程设计模式包括:Future模式、Master-Worker模式、Guarded Suspeionsion模式、不变模式和生产者-消费者模式等。这篇文章主要讲述Future模式,关于其他多线程设计模式的地址如下: 关于Master-Worker模式的详解: 并行设计模 阅读全文
posted @ 2017-02-27 22:28 星火燎原智勇 阅读(4101) 评论(0) 推荐(1)
摘要:Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,我们只要上好相应的锁即可。如果你的 阅读全文
posted @ 2017-02-27 17:44 星火燎原智勇 阅读(13157) 评论(5) 推荐(1)
摘要:1. 首先下载本地IntelliJIDEA注册服务机(没有密码哦) http://pan.baidu.com/s/1hsyZp0C 2、解压后进入解压的文件夹,找到自己操作系统对应的版本,我这里使用 IntelliJIDEALicenseServer_windows_amd64.exe,双击打开运行 阅读全文
posted @ 2017-02-27 11:32 星火燎原智勇 阅读(10764) 评论(0) 推荐(0)
摘要:Java多线程编程中,常用的多线程设计模式包括:Future模式、Master-Worker模式、Guarded Suspeionsion模式、不变模式和生产者-消费者模式等。这篇文章主要讲述Master-Worker模式,关于其他多线程设计模式的地址如下: 关于Future模式的详解: 并行设计模 阅读全文
posted @ 2017-02-26 22:50 星火燎原智勇 阅读(3656) 评论(0) 推荐(0)
摘要:com.google.common.base.CaseFormat是一种实用工具类,以提供不同的ASCII字符格式之间的转换。 其对应的枚举常量 从以上枚举中可以看出,java程序员最常用的转换类型为:UPPER_CAMEL,即我们常说的"驼峰式"编写方式;其次,我们常用的是:UPPER_UNDER 阅读全文
posted @ 2017-02-23 22:39 星火燎原智勇 阅读(9240) 评论(0) 推荐(1)
摘要:摘要:对于中文的搜索来说,词库系统是一个很比较重要的模块,本篇以IK分词器为例子,介绍如何让分词器从缓存或文件系统中自动按照一定频次进行加载扩展词库 Lucene、Solr或ElasticStack如何从外部动态加载词库进入到内存作为分词使用,且这一系列动作不需要重启相应的搜索服务?当前市面上各种博 阅读全文
posted @ 2017-02-22 14:04 星火燎原智勇 阅读(7803) 评论(8) 推荐(2)
摘要:问题描述: 有ListA和ListB,其中A、B中元素都是可以保证没有重复的,现要合并A、B得到新的ListC,要求C中不能有重复元素 我的反应: 看了下Java List、Collection的API,没找到合适的 于是乎,遍历A、B中元素个数较少的,往另一个集合中add,当然add时候判断下,有 阅读全文
posted @ 2017-02-21 23:19 星火燎原智勇 阅读(394) 评论(0) 推荐(0)
摘要:ThreadLocal用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据。 每个线程调用全局ThreadLocal对象的set方法,就相当于往其内部的map中增加一条记录,key分别是各自的线程,value是各自的set 阅读全文
posted @ 2017-02-20 23:33 星火燎原智勇 阅读(859) 评论(0) 推荐(0)
摘要:题目:有一APP客户端需要增加一个功能,限制用户输入密码登陆次数1小时内不得超过5次尝试,否则认为是在作弊,将予以保护不得用户再继续进行操作。 思路:此处应该加锁,但是加锁会影响登录效率.看题目发现用户id是作为传入参数。所以我们可不可以拿用户id作为一个锁呢?这样就只会锁住该用户,而不会锁住别人. 阅读全文
posted @ 2017-02-19 19:43 星火燎原智勇 阅读(2297) 评论(0) 推荐(3)
摘要:1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一 阅读全文
posted @ 2017-02-17 18:29 星火燎原智勇 阅读(354) 评论(0) 推荐(0)
摘要:concurrentHashMap 1.8 与 1.7 比较请查看:从ConcurrentHashMap演进看 java多线程核心技术 1. Concurrent相关历史 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的 阅读全文
posted @ 2017-02-16 22:30 星火燎原智勇 阅读(4464) 评论(0) 推荐(0)
摘要:质数概念 质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。最小的素数是2,也是素数中唯一的偶数;其他素数都是奇数。质数有无限多个,所以不存在最大的质数。 目前总结大概有3中计算方式求解,具体如下 1. 粗鲁暴力定义求解法 阅读全文
posted @ 2017-02-16 12:14 星火燎原智勇 阅读(874) 评论(0) 推荐(0)
摘要:声明:以下源代码使用的都是基于JDK1.8_112版本 1. ArrayList源码解析 <1. 集合中存放的依然是对象的引用而不是对象本身,且无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合中去 <2. 集合中放置的都是Object类型,因此取出来的也是Object类型,那么必 阅读全文
posted @ 2017-02-14 17:31 星火燎原智勇 阅读(3437) 评论(0) 推荐(0)
摘要:浮点数会有精度损失这个在上大学的时候就已经被告知,但是至今完全没有想明白其中的原由,老师讲的时候也是一笔带过的,自己也没有好好琢磨。终于在工作的时候碰到了,于是google了一番。 问题: 对两个double类型的值进行运算,有时会出现结果值异常的问题。比如: 输出: 39.989999999999 阅读全文
posted @ 2017-02-12 23:16 星火燎原智勇 阅读(2727) 评论(0) 推荐(0)
摘要:1. org.apache.commons.lang中StringUtils判空使用经验之谈 StringUtils.isEmpty(String str) StringUtils.isEmpty(String str) 判断字符串str是否为空串且是否长度为0,即: str == null && 阅读全文
posted @ 2017-02-09 17:48 星火燎原智勇 阅读(630) 评论(0) 推荐(1)
摘要:Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient,transient是Java语言 阅读全文
posted @ 2017-02-09 16:32 星火燎原智勇 阅读(6132) 评论(2) 推荐(0)
摘要:方法一: Integer.parseInt(); 返回的是一个 int 的值。 方法二: new Integer.valueof(); 返回的是 Integer 的对象。 new Integer.valueof().intValue(); 返回的也是一个 int 的值。 笔试应用例题: 设有下面两个 阅读全文
posted @ 2017-02-09 14:33 星火燎原智勇 阅读(2272) 评论(0) 推荐(0)
摘要:执行以下代码: 以上提供1.6、1.7和1.8三个版本的比较 1.6版本执行结果为: 1.7版本执行结果为: 1.8版本执行结果为: 从两方面去查证结果的原因,分别是:查看API文档 和 查看对应的源代码 【查看API文档】 1.6版本对应的API文档: 1.7版本对应的API文档: 1.8版本对应 阅读全文
posted @ 2017-02-08 23:19 星火燎原智勇 阅读(1688) 评论(0) 推荐(1)
摘要:悲观并发控制(PCC) 这一点在关系数据库中被广泛使用。假设这种情况很容易发生,我们就可以阻止对这一资源的访问。典型的例子就是当我们在读取一个数据前先锁定这一行,然后确保只有读取到数据的这个线程可以修改这一行数据。 乐观并发控制(OCC) Elasticsearch所使用的。假设这种情况并不会经常发 阅读全文
posted @ 2017-02-08 22:43 星火燎原智勇 阅读(1172) 评论(0) 推荐(0)
摘要:不仅是ElasticStack有以下这样的问题,包括solr或者说分布式系统在一定程度上都会存在以下的问题 脑裂 也叫网络分区,当网络由于发生异常情况,导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式系统的所有节点中,只有部分节点之间能够进行正常通信,而另一些节点则不能。当脑裂出现 阅读全文
posted @ 2017-02-08 18:29 星火燎原智勇 阅读(627) 评论(0) 推荐(0)
摘要:segment归并的影响 归并线程配置与策略 optimize ES数据写入流程 1. segment归并的影响 影响原因: 由之前的讲解我们已经知道数据怎么进入ElasticSearch并且如何才能让数据更快的被检索使用。其中用一句话概括了Lucene的设计思路就是“开新文件”,但另一个方面看,开 阅读全文
posted @ 2017-02-08 18:19 星火燎原智勇 阅读(673) 评论(4) 推荐(0)
摘要:索引分片 数据路由 mapping解析 倒排索引 写入存储 1. 索引分片 上图所示,一共有3个分片(shard),每个shard上有一个副本(replica),看到的蓝色图片为一个一个不同的datanode,目的是为了高可用。其中3个shard将所有的数据进行分割到不同的片上。如果使用es默认配置 阅读全文
posted @ 2017-02-08 18:08 星火燎原智勇 阅读(791) 评论(0) 推荐(0)
摘要:1. ElasticSearch的几个基本概念 <1. Index 类似于mysql数据库中的database <2. Type 类似于mysql数据库中的table表,es中可以在Index(database)中建立多个type(table),其中每个type结构可以使不同的,通过mapping进 阅读全文
posted @ 2017-02-08 17:16 星火燎原智勇 阅读(1905) 评论(0) 推荐(0)
摘要:ElasticSearch 用于构建高可用和可扩展的系统。扩展的方式可以是 购买更好的服务器(纵向扩展--vertical scale or scaling up) 或者购买更多的服务器(横向扩展--horizontal scale or scaling out)。 ElasticSearch 虽然 阅读全文
posted @ 2017-02-08 16:38 星火燎原智勇 阅读(639) 评论(0) 推荐(0)
摘要:题目:终端随机输入一串字符串,输出该字符串的所有排列。 例如,输入:“abc”,输出:abc、acb、bac、bca、cab、cba 【解决思想与办法】 正常人的思维是,固定第一个字符,然后依次将后面的字符串与前面的交换,那么排列的个数就是除了第一个字符以外,其他字符的排列个数+1。也就是固定一个字 阅读全文
posted @ 2017-02-07 22:51 星火燎原智勇 阅读(8096) 评论(0) 推荐(1)
摘要:面试中有一道笔试题,大概意思如下: 输入一个集合,输出这个集合的所有子集。例如输入:1,2,4 输出结果如下所示: [1][2][4][1, 2][1, 4][2, 4][1, 2, 4] 需要认识的:空集是任何集合的子集;真子集为不包含子集的集合;非空真子集即不包含子集与空集合 解题思路:这道题可 阅读全文
posted @ 2017-02-06 23:04 星火燎原智勇 阅读(878) 评论(0) 推荐(0)