摘要:
对一个线程不安全的集合进行多线程操作, 并不会破单个元素的完整性, 根据java内存模型可知, public class TestCl { List<Integer> no = Collections.synchronizedList(new ArrayList<>()); //List<Integ 阅读全文
摘要:
DELIMITER $$ ALTER DEFINER=`dbmanager`@`%` EVENT `book_info 定时更新` ON SCHEDULE EVERY 1 DAY STARTS '2017-10-16 23:00:00' ON COMPLETION PRESERVE ENABLE D 阅读全文
摘要:
Integer i = 0; String s = "0"; 上述两个代码都会保存在运行时常量池中 而 final Integer i = 200; 只会保存在堆内存或栈内存中, final只代表这是个常量, 不允许修改, 而不代表其存储区域 阅读全文
摘要:
public class TestCl{ static final Integer ii = 1000; private final Integer b = 1000; public static void main(String[] args) { TestCl cl = new TestCl() 阅读全文
摘要:
IndexSearcher是搜索的入口,主要提供的api都是关于search的。关于搜索,比较有意思的话题有这么几个:如何计算打分,这个问题已经在空间向量模型一文中讨论过?如何从一个搜索词得到一个Query对象?如何从Query对象到评分器从而计算打分的?几个重要的参数是如何在被组织起来计算的,比如 阅读全文
摘要:
在lucene4以前,一直都是使用经典的向量空间模型作为其检索模型,这种方式虽然统一了评分算法,简化了计算,但是带来的问题是很难去调整,一旦向量空间模型不适合,也很难去替换一种更好的算法。 而lucene4则将检索模型与事实上的搜索做了解耦和抽象,并且加入了另外几种检索模型的实现,其中就有经典的BM 阅读全文
摘要:
maxDoc()和numDocs()。前者返回下一个可用的内部Document号,后者返回索引中的Document的数目。因为我们的索引只含有两个Document,numDocs()返回2;又因为Document号从0开始,maxDoc()也返回2。 注意:每个Lucene的Document有个唯一 阅读全文
摘要:
匿名类即没有名字的类,在某个类内部使用,因为没有名字,别的类将无法调用它,只能在创建的时候,使用new语句声明它们。如this.addWindowListener(new WindowAdapter(){});因此,理解的时候可以将匿名类当做匿名内部类; 匿名内部类,即没有名字的内部类,正因为没有名 阅读全文
摘要:
Lucene生成的索引文件 由上文中提到的代码生成的索引文件如下所示: 格式都相当怪异,那些这些文件里面都存放了些什么东西?我们先来了解如下名词 a) 段信息(SegmentInfo):它包含段的元数据; b) 字段名(Field name):它包含了用来构建索引的字段名; c) 存储的字段值(St 阅读全文
摘要:
public class Pthread extends Thread { private ThreadPool pool; private volatile boolean isShutdown; private Runnable target; public Pthread(Runnable t 阅读全文
摘要:
问题: 我有一个集合,如下,请问,我想判断里面有没有”world”这个元素,如果有,我就添加一个”javaee”元素,请写代码实现。 使用普通迭代器出现的异常: ConcurrentModificationException:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。 产生的原因: 阅读全文
摘要:
同步弊端: 效率低如果出现了同步嵌套,就容易产生死锁问题 死锁问题及其代码重现 死锁: 是指两个或者两个以上的线程在执行的过程中,因争夺资源产生的一种互相等待的现象 举例: 中国人、美国人吃饭案例 正常情况: 中国人:筷子两支 美国人:刀和叉 现在: 中国人:筷子一支,刀一把 美国人:筷子一支,叉一 阅读全文
摘要:
答案:会执行,在return 前执行 代码示例1: /* * java面试题20--如果catch里面有return语句,finally里面的代码还会执行吗? */ public class FinallyDemo2 { public static void main(String[] args) 阅读全文
摘要:
答案:通常不可以,但可以采取另类方法达到这个需求。 解释:为了不让我们写System类,类加载采用委托机制,这样可以保证爸爸们优先,爸爸们能找到的类,儿子就没有机会加载。而System类是Bootstrap加载器加载的,就算自己重写,也总是使用Java系统提供的System,自己写的System类根 阅读全文
摘要:
1 开门见山 以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结果并不是自己想象的那样。题目如下: class SingleTon { private static SingleTon singleTon = new SingleTon(); public sta 阅读全文
摘要:
第一种:实质上就是一个迭代器, 在遍历过程中修改元素值, 会报错java.util.ConcurrentModificationException, 这是因为迭代器中有参数expectModCount:预期被修改的次数 来做并发安全的控制 HashSet<String> s = new HashSe 阅读全文
摘要:
编译类型和运行类型的概念 运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息。 多态(polymorphism)是基于RTTI实现的。RTTI的功能主要是由Class类实现的。 Class类 C 阅读全文
摘要:
做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结。因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspot Jvm. 本文将会从JDK默认的提供的ClassLoader,双亲委托模型,如何自定义Class 阅读全文
摘要:
package java.util.concurrent.atomic; import java.util.function.LongUnaryOperator; import java.util.function.LongBinaryOperator; import sun.misc.Unsafe 阅读全文
摘要:
看程序写结果1: ==:比较引用类型时 比较地址值是否相同 equals:只比较引用类型 比较地址值是否相同 而String类重写了equals()方法,比较的是内容是否相同 /* * 看程序写结果 * */ public class StringDemo1 { public static void 阅读全文
摘要:
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆: 只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM 阅读全文
摘要:
lucene 的评分机制 elasticsearch是基于lucene的,所以他的评分机制也是基于lucene的。评分就是我们搜索的短语和索引中每篇文档的相关度打分。 如果没有干预评分算法的时候,每次查询,lucene会基于一个评分算法来计算所有文档和搜索语句的相关评分。 使用lucene的评分机制 阅读全文
摘要:
主要功能 概述 显示jvm运行时的参数,Java版本,以及系统属性。 监控 显示当前这个pid的cpu,堆,PermGen,类,线程的运行情况,可以主动进行垃圾回收,以及生成此时刻的dump文件。 线程 显示所有线程的“实时”状态(运行,休眠,等待,监视)以及时间,(调整好刷新时间),可以通过放大, 阅读全文
摘要:
stack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式: jstack [-l][F] pid 如果java程序崩溃生成core文件,jstack工具 阅读全文
摘要:
Java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能: 1、通过Unsafe类可以分配内存,可以释放内存; 类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充 阅读全文
摘要:
JDK内置工具使用 一、javah命令(C Header and Stub File Generator) 二、jps命令(Java Virtual Machine Process Status Tool) 三、jstack命令(Java Stack Trace) 四、jstat命令(Java Vi 阅读全文
摘要:
看到大量 Java Thread State 的第一反应是: 1,线程状态为“waiting for monitor entry”: 意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。 此时线程状态一般都是 Blocked: java.lang.Thread.State: 阅读全文
摘要:
zookeeper实现了分布式数据的发布订阅功能, 当一个主题对象发生变更时, 会通知给所有的订阅者, 使订阅者做出相应的处理. zookeeper发布订阅功能的实现是依靠watcher机制来实现的.简单来说, 客户端向服务器注册watcher, 客户端存储watcher, 主体对象发生变化服务器向 阅读全文
摘要:
1. 每个znode上可以保存数据, 同时还可以挂载子节点, 因此构成一个层次化的命名空间, 被称之为树 2. 在zk中, 事务只是能够改变服务器状态的操作, 每一个事务请求zk都会分配一个全局唯一的事务id 3. znode分为持久节点, 临时节点, 顺序节点, 其中临时节点只能作为叶子节点 4. 阅读全文
摘要:
1. 心跳检测, 存储supervisor和worker的心跳(包括它们的状态),使得nimbus可以监控整个集群的状态, 从而重启一些挂掉的worker; 2. 提交任务 3. 存储整个集群的所有状态信息, 供ui显示 4. storm在zk上的存储结构 /-{storm-zk-root} -- 阅读全文
摘要:
zk如果是单点服务, 则不涉及到分布式同步协议的问题, 所有的数据都有一个节点处理即可, 该节点用来同步客户端分布式集群中的消息同步, 然而单点是不可靠的, zk本身也要实现分布式集群以保证高可用高并发的特性. 所以zk自身的分布式集群间的数据同步问题采用了ZAB协议实现, 而对客户端而言, 一个z 阅读全文
摘要:
1.采用的一致性协议ZAB(zookeeper atomic broadcast) 2.zookeeper用来保证分布式系统中的数据一致性问题, 包括:顺序一致性, 原子性, 单一视图, 可靠性, 实时性 3.zk包含的基本概念:集群角色, 会话(session), 数据节点(znode), 版本, 阅读全文
摘要:
如果想要搜索结果按某一field排序, 而相同的field情况下匹配度高的优先 1) 使用sort 可见使用sort排序只满足将section=3的排在前面, 但是同样都是section为3的不符合按相似度排序 2) 应该对排序字段加权才是正解 阅读全文
摘要:
q=zhishidian:抗日战争^5 是对"抗日战争"分词后得到的所有结果进行加权 阅读全文
摘要:
1 TermVector.YES 2 TermVector.WITH_POSITIONS 3 TermVector.WITH_OFFSETS 4 TermVector.WITH_POSITIONS_OFFSETS 阅读全文
摘要:
IK分词器在加载词典时, 词典中的大小写字符加载到内存时一律变为小写, 但是在分词时大小写是不会转换的, 所以就有以下情况发生: 当词典中有"HL定理", 对"HL定理的应用"分词时是不能分出"HL定理"的, 处理办法:在讲要分词的句子输入分词器前, 先将所有的大些字母转化为小写, 这样分词出来的就 阅读全文
摘要:
动手测试之: 新建表: CREATE TABLE varchar_test ( `id` int(11) NOT NULL , `string` varchar(20) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8COLLATE=utf8_general_ci 阅读全文
摘要:
(实际上是在适配lucene) 一.入口 iktokenizerfactory extentends tokenizerfactory implements resourceloaderaware 1) solr会实例化该工厂类并调用create(AttributeFactory factory) 阅读全文
摘要:
在hql语句中,不能使用limit来限制显示的条数FROM user_info order by createdTime desc limit 1 显示的数目不是1条,而是你查询出来的条数,所以上述写法是错误的。如何解决limit在hql中不能使用,并设置查询出来集合的数目,我们应该使用setMax 阅读全文
摘要:
ResourceLoaderAware回调接口 ResourceLoaderAware回调接口负责将ResourceLoader对象注入到当前的受管Bean实例中,其定义如下。当受管Bean获得ResourceLoader对象后,它便能够通过它获得各种资源。 public interface Res 阅读全文