- 博客(83)
- 收藏
- 关注

原创 postgresql中position函数相关性能探究~
起因: postgresql中position函数提供,从头查找返回第一个匹配到字符串的下标。 而我需要返回从后向前查找第一个匹配到的坐标,但是postgressql并未提供相关函数,所以自己写了如下代码提供相关功能:CREATE OR REPLACE FUNCTION lastindexof(text, character) RETURNS i
2015-01-14 15:17:31
9198
原创 字节,字符串,字节样的字符串
print(bytes('中文','utf-8')) # 将 string 转 byteprint('abc'.encode('ascii')) # 同上 string 转 byte print(b'dsa'.decode('ascii')) # byte 转 stringprint(b'\u6211'.decode('utf-8')) # byte 转 stringprint(b'\u6211'.decode('ascii')) # byte 转 stringprint(b'\u.
2021-06-18 15:49:02
198
原创 ExecutorService 为什么需要shutdown()?
一段类似的代码 void test(){ ExecutorService exec = Executors.newCachedThreadPool(); exec.execute(()->{});// exec.shutdown();//point 1 }exec到底是否需要shutdown()?finalize()是...
2019-05-24 18:05:23
9919
1
原创 java 线程结束做了什么?
public class ThreadA extends Thread{ @Override public void run() { try { TimeUnit.SECONDS.sleep(10); } catch (InterruptedException e) { // } ...
2019-05-20 20:46:30
315
原创 java1.8 stream关于类型转换的一些问题
类型转换 double[] b1 = (double[])new Object();//Object 可以直接转换数组 double[] b2 = (double[])new Object[3];//error 对象数组不能转基本类型数组 Double[] b3 = new Double[3]; double[] b4 = (do...
2019-05-15 15:18:05
9994
原创 Java 泛型返回值 泛型<T> T 与 T 的区别
最近看源码有的方法返回值是<T> T有的方法返回值是T那么区别在哪里?public class Request<T> { private <T> T getListFisrt(List<T> data) { if (data == null || data.size() == 0) { ...
2019-05-13 18:16:55
4621
原创 我敢赌一把房价的拐点来了
【仅以此文,记录我的观点】 【早期】 牛刀喊跌,人人支持他,顶他,只是因为他说出了符合大多数的诉求,此人应该只是一个妄人换点名气,坑了不少人。而那时候的,大多数人不敢说房地产会继续涨,因为那不符合大多数人的利益。 【中期】 14-15年,房价暴涨,包括之前的房价上涨。本质都是供需关系,因为需要城镇化,城镇化自然带来的大量人口进程,房子的供...
2018-12-24 11:27:09
355
1
原创 linux shell 文件处理 小练习记录
cat alarm.log.2018-07-23 | grep "ALARM_PUSH" | grep "type=1" > l #初次过滤日志sed -i "s/.*ALARM_PUSH://g" l #替换所需字段前面sed -i "s/_.*//g...
2018-07-24 16:10:14
216
原创 一次工作中程序bug的调试总结
一个服务端程序,跑了1年半了,基本没出过啥问题,但是最近4个月宕机了2次,很是纠结!而且没有任何出错日志。和下面的链接描述很像。http://www.iteye.com/problems/102390https://q.cnblogs.com/q/64085/阅读后,还是得到了不少启发。之前我也jstack对比过进程因为数量繁多。又没给线程起明确的名字,排除的时候有很多
2017-03-26 17:10:56
420
原创 关于kill的一些思考
一个正常运行很久的程序,突然挂了。很是奇怪。怀疑是误操作的时候kill了其中一个线程。因为我无法找到程序中的任何出错日志,但这个线程确确实实就没了。我想查下历史记录, 由于history只保存了最近100条,已经覆盖了过去的操作记录。看样以后有必要调大这个参数,甚至每天记录保存一次。
2016-11-30 16:22:29
315
原创 也谈字符流和字节流
之前对一些文件用字符流的方式去读取,结果转回String的时候没太注意,发生了一些异常,很诡异。做一次记录。 //读取文件内容 try { FileInputStream fs = new FileInputStream(file); byte[] buf = new byte[(int)file.length()]; fs.read(buf);
2016-11-22 14:47:36
307
原创 《EXPERT.ONE.ON.ONE.J2EE.DEVELOPMENT.WITHOUT.EJB》读书笔记
用户事务管理 是一个AOP的典型应用。比如控制哪些方法组成一个事务。方法入口的切面日志,也是一个AOP的典型应用。有一点比较模糊是类似数据源或者其它链接的open(),close() 这个是面向切面处理的还是模板方法处理的?我觉得两者都可以,而spring的JdbcTemplate的认为用的是模板方法与AOP无关,有关的是事务管理。事务管理只有3个方法,获得事务,事务提交,事务回滚
2016-11-10 16:03:14
436
原创 怎么理解一个Java程序
突然顿悟一件事,我们启动一个Java程序,相当于启动了一个进程用于启动JVM,而Main函数其实其中的一个线程。每次总是关注着Thread是不是守护状态。生怕Main函数结束了,Thread还在跑,其实不用那么忧愁。因为进程都挂了,相当于停止了JVM,线程自然也活不了。
2016-10-17 16:31:18
499
原创 Linux df和du不一致问题排查
df显示磁盘满了,但是并未发现那么多数据,执行命令lsof | grep deleted 找到进程号,然后kill掉。
2016-10-10 19:19:46
948
原创 《Java并发编程实战》读书笔记
3.1可见性 “...因此,从内存可见性的角度来看,写入volatile变量相当于退出同步代码块,而读取volatile变量相当于进入同步代码块。” 是否理解为,写入是没有锁的(所以并发写会产生问题),读取的时候有锁,所以读到的不是缓存的数据,同时不会被写入操作更改。 volatile变量适用于一写多读。
2016-09-24 15:38:58
1080
1
原创 java测试父子类中的锁对象
本来想测试一下子类中调用父类方法,如果都是同步方法,锁对象是否相同。后来还发现很多理解不够深入的地方,一起写代码测试了一下。//测试锁对象class Father { int a = 1; synchronized void doX() { System.out.println(this.toString()); System.out.println(super.toStrin
2016-08-23 10:49:23
560
原创 Netty权威指南读书笔记
《Netty权威指南》花了一个星期看完了,看书效率的提高,更多的是因为很多东西多少都已了解些。 不过,依然有很多东西写的比较精彩,开阔了眼界。1. p458页,“java内存的交互协议...” lock,unlock,read,write 主内存变量 load,use,assign,store 工作内存变量 书中store和write这里的解释
2016-07-12 14:18:55
369
原创 总结一下java volatile
读了很多书籍,深有体会。volatile的主要有2个作用 第一,阻止虚拟机对代码优化。解决指定重排问题。第二,线程中变量可以实时同步到主存中,解决可见性问题。
2016-07-11 14:44:04
297
原创 java编程思想读书笔记
听说过很多人都说编程思想翻译的太烂,读了200来页深有体会。做个总结吧214页局部内部类不能有访问说明符!访问说明符指的是 private ,prototced,public.
2016-07-08 19:39:07
672
原创 谈谈java的Collections.synchronized()
java中Collections.synchronized()的方法很好用~有一次看到一个很优秀的同事写了以下一串代码,如下private static volatile ConcurrentMap<String, Map<Integer, Set<String>>> all;public void demo(){ ... Map&l...
2016-06-17 17:23:23
2472
原创 内存速度测试以及猜想
之前http://blog.csdn.net/yibei8811/article/details/47168657 写过,可以测试硬盘速度,有一点倒不是很全,因为由于bs和count参数的变化,会带来性能上的变化。猜想可知,如果bs过小。那么count执行循环需要消耗大量的cpu,cpu的瓶颈会限制硬盘的速度。如果bs过大,是否因为找寻出一块足够大的内存存放数据消耗太多时间?我们猜想内
2016-06-07 14:17:46
574
原创 tomcat Maven插件的安装使用指南
首先看官方文档 http://tomcat.apache.org/maven-plugin-2.2/左上角Modules中选Apache Tomcat Maven Plugin :: Tomcat 7.x 跳转至http://tomcat.apache.org/maven-plugin-2.2/tomcat7-maven-plugin/index.htmlgoals page跳
2016-05-25 14:56:42
445
原创 长程序启动脚本,关闭脚本,清理日志~
启动脚本$JAVA_HOME/bin/java -classpath "/*/lib/*" com.*.MainService > ./1.txt &杀死程序pid=`ps aux|grep com.*.MainService|grep -v grep | awk '{print $2}'`kill -9 $pid当程序长期运行的时候,日志可能越来越大。为了规避风险,我
2016-05-13 14:16:06
433
原创 JQuery datatables测试!
不太喜欢用这些东西,很蛋疼!既然觉得简单也就没必要问人,所以照着官方文档测试。居然耗了一下午都掉不通。怀疑版本问题,等等一系列原因,步步回溯。最后baidu.com执行以下搜索site:datatables.club aadata妈的原来版本不同,名字都换了。我说怎么原来的名字看的那么奇怪。
2016-05-10 19:45:02
287
原创 crontab失效原因
检查相对路径问题。同时shell添加下面代码 不然用户后面配置的环境变量加载不进去#!/bin/sh. /etc/profile. ~/.bash_profile
2016-05-09 14:19:12
1178
原创 nohup一些测试
nohup xxx 关闭当前shell可以继续执行。ctrl -c 标识结束任务,会退出xxx & 直接后台运行, 当前shell退出程序也退出 日志会一直输出到前端 除非把日志重定向nohup xxx & 后台运行程序 并且忽略nohup 信号shell写命令nohup xxx 关闭当前shell可以继续执行。ctrl -c 标识结束任务,会退出xx
2016-04-21 16:26:36
469
原创 zookeeper curator 源码试读
首先看PathChildrenCache.java private volatile Watcher childrenWatcher = new Watcher() { @Override public void process(WatchedEvent event) { offerOperation(new
2016-04-15 14:28:52
681
原创 zookeeper的坑(二)
接上篇,同样的代码,同样的地方debug。zkCli.sh执行[zk: localhost:2181(CONNECTED) 13] ls /t[][zk: localhost:2181(CONNECTED) 14] create /t/1 "1"Created /t/1[zk: localhost:2181(CONNECTED) 15] create /t/2 "1"
2016-04-14 16:35:33
1145
原创 zookeeper的坑(一)
都说zookeeper是保证顺序,但是保证啥顺序?博文http://blog.csdn.net/kobejayandy/article/details/12432137中有句话【但ZooKeeper保证了一个顺序:一个客户端在收到watch事件之前,一定不会看到它设置过watch的值的变动】是不是只保证了这个顺序,这个顺序又该如何理解?以前一会以为watcher是有序的,今天无意发
2016-04-14 16:18:14
1844
原创 mysql 实现 generate_series()
我需要生成一个序列,postgresql的generate_series()非常方便。mysql却没有对应的函数。检索相关资料,有篇文章引起了我的注意,老外们的思维还是很厉害的。http://stackoverflow.com/questions/6870499/generate-series-equivalent-in-mysql通过以上思路,改写了一下,生成了我需要的序列。
2016-03-31 14:38:11
5295
原创 cooklie的另一种设置方式
我们知道服务器后端可以轻易的设置Cookie,抓包的时候Http Response中有Set-Cookie参数项,告诉浏览器把Cookie放入本地。其实还有另外一种方式就是JavaScript。以后抓包的时候发现莫名其妙多出了很多Cookie可以细心找找。比如访问http://script.cloudytrace.cn/wsa/common/ctwsa-sa.js的时候,就会发现很
2016-03-17 15:12:12
925
原创 ssh远程机器并执行命令输出到终端
如果你希望ssh链接slave01,然后执行命令并将结果输出到终端怎么办呢?你可能想到的是:ssh slave01;hostname;执行后,你会发现不仅你的终端变成slave01,而且hostname并未输出。当您执行exit退出之后,hostname会紧接着执行,返回的却是当前主机名。仔细想想你会明白为什么。我们应该这么做:ssh slave01 hostnam
2016-03-16 15:29:20
2538
原创 修改HttpServletRequest的中的参数值
利用SpringMVC上传文件文件,方法A: @RequestMapping(value = "/saveJobInfoFromFile", method = {RequestMethod.POST}) @ResponseBody public ReturnInfo saveJobInfoFromFile(HttpServletRequest request,HttpServletRespon
2016-03-11 19:06:13
8201
原创 HttpClient模拟登陆
利用HttpClient模拟登陆,因为是SSO的单点登录,需要牵涉到很多跳转。做一次记录。 CloseableHttpClient httpclient = HttpClients.createDefault(); HttpPost httppost1 = new HttpPost("http://ssopre.foo.com/ids/login");//单点登录服务器认证接
2016-03-11 17:19:12
892
原创 Eclipse Maven WebApp迁移至MyEcipse
很久不写web程序,每次调试都去找接口人,很是麻烦。所以决定自己部署一下程序,遇到了不少麻烦事情,做下记录。首先MyEclipse-->Web-->Context Root -->Web-root folder: 显示为"foo",并且无法修改。我检索项目下所有文件,发现.jsdtscope文件存在“foo”,所以修改为"src/main/webapp";接着MyEclipse-->D
2016-03-11 16:27:50
644
原创 HOOK的测试代码
一个HOOK类,表明当前类结束后,会调用方法。package hadoop.util;import java.util.ArrayList;import java.util.List;public class Hook { static Hook hook = new Hook(); static List list = new ArrayList(); stati
2016-03-06 17:28:37
467
原创 hadoop之IOUtils是否需要关闭流?
很久没写blog,有很多值得写的地方。慢慢补。Hadoop中有个常用的方法org.apache.hadoop.io.IOUtils.copyBytes(InputStream in, OutputStream out, int buffSize),用于将本地文件上传至hdfs。入参数in和out用完后是否需要关闭流呢?显而易见的是流用完后需要关闭,但是经验告诉我,每次写mapreduce,
2016-03-06 16:53:38
6242
原创 基于Yarn的一个项目总结之bug记录
这段时间基于yarn写了一个监控告警模块,项目其实不是很难,但也确实花了2个月的时间。里面用的很多知识不熟悉,单独每块弄懂也算轻松,但是串起来运用就需要大量的经验了,正因如此整个项目我是改了又改。项目中主要是以Service形式提供的,这在我以往的时候并不是很熟悉,甚至对于Service应该还需要设计recovery目前也没细想。里面基于的事件的Dispatch开始也没完全弄懂,就直接
2015-11-29 15:48:57
1037
原创 hadoop之yarn Protocol Buffers
我学习使用的hadoop源码是2.2版本,里面有一个相关Protocol Buffers的Jar包叫protobuf-java-2.5.0.jar。使用protobuf生成的java类会import protobuf-java-2.5.0.jar中的类。所以Jar包的版本和protoc.exe版本必须一致。可以去https://github.com/google/protobuf/rele
2015-10-07 21:15:01
641
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人