01 2018 档案

摘要:定义 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主体对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式结果图 subject:抽象主题,定义了具体添加、删除观察者接口、通知接口。 concreteSubject:具体主题,具体实现 阅读全文
posted @ 2018-01-31 16:45 woniu4 阅读(163) 评论(0) 推荐(0)
摘要:kibana,ELK中的K,主要为ES提供界面化操作,据说还是比较炫的,今天安装5.5.2版本进行尝试一把。 安装过程不难,简单的配置了一下端口和IP即可,难度不大。 config下的kibana.yml中配置相关参数: 之后在bin目录下直接启动即可,比较幸运,没有任何错误的启动了。 ./kiba 阅读全文
posted @ 2018-01-31 10:55 woniu4 阅读(159) 评论(0) 推荐(0)
摘要:错误堆栈信息: 通过网上查询,发现是由于缺少jar包导致,引入了asm4.1.jar,又出现新的错误信息。 异常堆栈信息如下: 问题原因是由于版本不配套导致,将asm.jar改用3.3.1版本,问题得到解决。 阅读全文
posted @ 2018-01-30 10:55 woniu4 阅读(1331) 评论(0) 推荐(0)
摘要:代理模式,为其他对象提供一种代理以控制对这个对象的访问。【大话设计模式】 一张图,说明代理模式的结构。代理在客户端和目标对象起到的是中介的作用,一种桥梁,也如大话设计模式中所言,为他人做嫁衣。 代理模式按照创建时期可以分为两类:静态代理、动态代理。 静态代理 首先介绍一下静态代理,静态代理的结构完全 阅读全文
posted @ 2018-01-30 10:48 woniu4 阅读(155) 评论(0) 推荐(0)
摘要:对于oldTable中存储的为15、7、4、5、8、1,长度为8的一个数组中,存储位置如下 0 1 2 3 4 5 6 7 8 1 4 5 15 7 当扩容到一倍后,对于新的位置的选择通过e.hash & oldCap 确认其在新的数组中的位置, 如: 8:1000 与原来长度8:1000相与后,为 阅读全文
posted @ 2018-01-26 17:07 woniu4 阅读(1373) 评论(0) 推荐(0)
摘要:装饰模式,动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。【大话设计模式】 装饰模式的结构图如下: 个人认为,装饰即修饰,动态的给主类添加一些功能,而不需要修改主类的功能。 场景介绍 如大话模式一书中提到的穿衣的场景。 人即为一个主体,我们现在需要的是给其添加修饰的衣 阅读全文
posted @ 2018-01-26 17:05 woniu4 阅读(147) 评论(0) 推荐(0)
摘要:volatile详解接下来,我们详细讲述一下volatile关键字volatile关键字具有两重语义 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这个新值对其他线程来说是立即可见的。 禁止指令重排序 依然使用上文RunThread案例说明,上文中已经提到了,由于主线程修 阅读全文
posted @ 2018-01-22 16:26 woniu4 阅读(168) 评论(0) 推荐(0)
摘要:引起线程并发问题,可以简单的总结为以下三条: 原子性问题 可见性问题 有序性问题(重排序问题) 原子性问题 什么是原子性? 原子性,即一个操作或者多个操作,要么全部执行并且执行过程中不会被任何因素打断,要么全部都不执行。 如常见的银行转账、count++操作等,都必须具备原子性才能保证不出现意外。 阅读全文
posted @ 2018-01-22 16:23 woniu4 阅读(191) 评论(0) 推荐(0)
摘要:【题目描述】 Implement regular expression matching with support for '.' and '*'. 【解决思路】 大概可以运用动态规划的思想,将其分为几种情况进行迭代即可解决: 1、当正则表达式为空时,只需要判断原字符是否为空即可。 2、当都不为空时 阅读全文
posted @ 2018-01-22 09:48 woniu4 阅读(182) 评论(0) 推荐(0)
摘要:this指针逃逸是指在构造函数返回之前,其他线程已经就持有了该对象的应用,产生的结果自然和预期可能会产生差异。常见的this指针逃逸,在并发编程实战一书中,作者指出:在构造函数中注册事件监听,在构造函数中启动新线程。由于注册事件,并没有用过,因此以线程为例说明问题。: 解决办法是,不在线程中启动线程 阅读全文
posted @ 2018-01-19 11:08 woniu4 阅读(1918) 评论(0) 推荐(0)
摘要:private void getMappingByIndex(String indices) throws IOException { GetMappingsRequest getMappingsRequest = new GetMappingsRequest(); getMappingsRequest.indices(indices).... 阅读全文
posted @ 2018-01-18 19:12 woniu4 阅读(5762) 评论(0) 推荐(0)
摘要:显示结果: 阅读全文
posted @ 2018-01-18 19:09 woniu4 阅读(1048) 评论(0) 推荐(0)
摘要:根据上边代码的分析,发现其在多并发的情况下,似乎并不会发生之前版本中形成死锁的情况,其可以保持数据位置的不变性。 阅读全文
posted @ 2018-01-17 09:39 woniu4 阅读(1225) 评论(0) 推荐(0)
摘要:在my-default.ini文件中添加如下信息: 重启mysql服务即可解决 net stop mysql net start mysql 重新进入mysql,查询当前mysql的字符设置show variables like '%char%'; 阅读全文
posted @ 2018-01-16 15:10 woniu4 阅读(128) 评论(0) 推荐(0)
摘要:实现方式大致分为两种 懒汉模式 饿汉模式 懒汉模式:在第一次使用该对象时,才会初始化实例,以免了资源的浪费,同时,需要考虑的是线程安全问题。 饿汉模式:在类初始化时就需要创建一个实例对象出来,当时并不一定会使用该对象,可能会造成资源的浪费,好处是不用考虑安全问题。 下面看下几种常见的实现方式: 首先 阅读全文
posted @ 2018-01-15 11:52 woniu4 阅读(258) 评论(0) 推荐(0)
摘要:“共享”意味着变量可以由多个线程同时访问,而“可变”则意味着变量的值再其声明周期内可以发生变化。 如果当多个线程访问同一个可变的状态变量时没有使用合适的同步,那么程序就会出现错误,有三种方式可以修复这个问题: 不在线程之间共享该状态变量(有点扯,既然我要共享一个状态变量,怎么可能不共享,只能说不共享 阅读全文
posted @ 2018-01-14 21:48 woniu4 阅读(169) 评论(0) 推荐(0)
摘要:一、Tomcat下载与安装: 1、直接到官网下载Tomcat安装程序包:http://tomcat.apache.org/ 2、下载下来后是个压缩包,如:apache-tomcat-8.0.26,解压到一个非中文目录下即可完成安装。 3、tomcat目录结构: tomcat的目录结构 bin 包含启 阅读全文
posted @ 2018-01-11 19:21 woniu4 阅读(302) 评论(0) 推荐(0)
摘要:eclipse集群tomcat 1、 File -> new -> other 选择server。 2、 选择Apache下边对应的tomcat版本,配置tomcat名称即可。由于我本地安装的是tomcat8.0版本,因此选择8.0版本。 3、 选择tomcat的安装路径,以及使用的jre,一般选择 阅读全文
posted @ 2018-01-11 19:18 woniu4 阅读(121) 评论(0) 推荐(0)
摘要:遇见问题:1、执行MySql启动命令:net start mysql 报错:Mysql 服务正在启动Mysql 服务无法启动 服务没有报告任何错误。 解决办法:在mysql的安装目录下在my-default.ini文件中添加一行配置:skip-grant-tables 2、第一次登录mysql -u 阅读全文
posted @ 2018-01-11 10:51 woniu4 阅读(293) 评论(0) 推荐(0)
摘要:通过mapping中的映射,将&映射成and 对于字符串"a & b" 输出的结果为a and b,感觉怪怪的,当前的应用常见没前还不清楚。先记录下这个功能吧。 另一种,可以通过正则表达是的方式,来匹配字符,如下,重新将com.test.abc分词成了com, test, abc 阅读全文
posted @ 2018-01-10 17:08 woniu4 阅读(432) 评论(0) 推荐(0)
摘要:You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contai 阅读全文
posted @ 2018-01-03 17:33 woniu4 阅读(152) 评论(0) 推荐(0)
摘要:1、top -H -p PID 查看对应进程的哪个线程占用CPU过高 2、printf "%x\n" tid 将需要的线程ID转换为16进制格式 3、jstack pid >> java.txt 导出CPU占用高进程的线程栈 之后就要靠业务逻辑查看为啥CPU靠业务上去分析问题了。 阅读全文
posted @ 2018-01-02 20:00 woniu4 阅读(154) 评论(0) 推荐(0)
摘要:以下几种用法 -flags pid :打印当前VM的参数 -flag <name> pid:打印指定JVM的参数值 -flag [+|-]<name> pid:设置指定JVM参数的布尔值 -flag <name>=<value> pid:设置指定JVM参数的值 -sysprops pid : 获取当 阅读全文
posted @ 2018-01-02 19:50 woniu4 阅读(858) 评论(0) 推荐(0)
摘要:codecache代码缓存区,主要存放JIT所编译的代码,同时还有Java所使用的本地方法代码也会存储在codecache中.不同的jvm、不同的启动方式codecache的默认值大小也不尽相同。 JVM 版本和启动方式 默认 codeCache大小 32-bit client, Java 8 32 阅读全文
posted @ 2018-01-02 16:12 woniu4 阅读(1918) 评论(0) 推荐(0)