自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

源码物语

二进制的围城。。为了活着,为了梦想,

  • 博客(65)
  • 收藏
  • 关注

原创 ClassLoader原理与实践(分享讲稿整理,不放图)

java.lang.ClassLoader(类加载器)是JRE中一个重要成员,因为大家一直都在主动或被动地在使用。首先来讲一讲classloader到底是什么。大家知道平时写的java文件编译完之后会得到class文件,然后要发挥作用需要被写入到jvm的内存里。而类文件的二进制字节码写入内存的关键过程就是由类加载器来做的。而且载入这个动作对用户类是动态的,即只有当要用到这个类的时候,只

2017-09-16 12:04:05 417

原创 动态加载进阶,从组件到容器

又来了一个需求,而且和上一个几乎一模一样,却还是需要走开发和上线的冗长流程,不能忍了,必须要优化。效率就是生命,复用就是延长生命的长度,如果通过配置文件就能拿下这类需求,就很赞了。当然,前提是,系统在架构上支持复用。暨能够在组件的层级上,抽象出一个个功能组件,能够在服务的层级上,抽象出一个个服务组件链。不同的服务,链路上根据不同需求,装配自己要的组件bean,全部通过配置文件搞定。

2017-04-25 13:42:27 429

原创 单测Spring的bean装配情况

ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("xxx.xml");applicationContext.start();xxxService x = (xxxService) applicationContext.getBean("xxxService");

2017-04-18 15:05:56 421

原创 可序列化对象压缩和解压缩byte数组实例

public static byte[] serialize(List result) throws IOException { ByteArrayOutputStream bos = new ByteArrayOutputStream(); JavaBinCodec codec = new JavaBinCodec(null); codec.marshal(result,bos);

2017-03-26 14:15:28 729

原创 uber jar,shade jar和包冲突

我们日常遇到的包冲突主要是依赖jar的版本冲突。在包都向下兼容的前提下,这类问题比较容易解决,exclusion对低版本的依赖即可。但也有不兼容导致多个依赖无法兼顾的情况,如何解决,下文再说。考虑另一种情况,完全不同的jar实现了同名类,而且包名也一模一样。此时对java类加载器而言,和上一类问题是同质的。基于JVM的有则运行,无则加载的类处理原则,实际上生效的也将是加载顺序在前的类。这种

2017-02-22 20:28:24 1426

原创 记录方法运行时间——基于spring的面向切面编程简单实例

工程中有很多方法需要记录方法的运行时间,本质上这是独立于主业务逻辑且复用性很强的功能,类似的还有权限控制,用户验证,打log等。如果每个方法里都要反复去写是一件很low的事情,但是如果改用切面编程来实现就十分清爽了。spring中用@Aspect可以定义一个切面类,用@Pointcut定义一个切点表达式方法。Pointcut的execution即是用正则表达式定义的包+类+方法组成的切

2017-02-07 20:40:06 775

原创 拉取hadoop集群上的hdfs文件

从hadoop集群拉取hdfs文件是一个常见的需求,基于org.apache.hadoop即可做到。但是hadoop包有个明显的缺点是引用太多,经常需要排包,包括但不限于httpclient,servlet,slf4j,tomcat等等@Servicepublic class HdfsClientManager implements Manager{ private s

2017-02-07 20:20:59 3453

原创 个性化搜索架构设计探索

随着中心化流量的增长,早期简单通用的搜索排序越来越难以支撑提高搜索整体体验乃至转化率的重任。基于种种急需解决的痛点,需要平台级项目支持商品搜索实现个性化,需求期望细化为以下四点:1.根据积累的用户数据,在搜索排序中引入个性化因子,打破千人一面的排序格局。精排序时,除通用的商品精排分数,还引入了用户偏好特征和商品特征,用于u2i和i2i加权。2.对于能够做到个性化定制的垂直领

2017-02-03 18:01:58 1607

原创 Java参数引用传递之例外:null

众所周知的是,java中除基本类型外,参数都是引用传递。但是,有一个例外,就是当实参为null时,其实,它依然是一个值传递。也就是说,传参为null,不管函数体内用这个参数做了什么,跳出函数体后该参数依然是null或者说,引用传递退化成为了值传递。再进一步分析,其实是基本类型和指向null的非基本类型的指针,都在栈而非堆中,而引用传递的是堆内存地址。类似的还有String类型。

2016-07-16 01:20:35 3466

原创 Mac virtualBox 微软官方Win7镜像下载安装全过程

官方镜像下载地址  https://az412801.vo.msecnd.net/vhd/VMBuild_20141027/VirtualBox/IE8/Windows/IE8.Win7.For.Windows.VirtualBox.zip这个镜像据说主要的用途是给大家来测试IE的。。。。。。囧下载完解压缩会得到一个vmdk文件,这时候用命令处理下  VBoxManage clonehd

2016-07-03 16:38:41 18494 1

原创 自动装配引起的Spring注入错误

当XML文件中添加了default-autowire="byName"时,会自动为属性注入同名的bean实例,即使为该属性显式指定了一个ref也不生效。 以上配置文件中,其实两个数据库的操作类操作的数据源都是DB_100。因为其实updateBDbUse

2016-05-29 01:42:49 2558

翻译 solr使用cursorMark做深度分页

深度分页深度分页是指给搜索结果指定一个很大的起始位移。普通分页在给定一个大的起始位移时效率十分低下,例如start=1000000,rows=10的查询,搜索引擎需要找到前1000010条记录然后再返回最后10条。Solr为了最后10条记录只会检索排序字段,但是前1000010条记录的内部排序开销依然十分大。普通分页基础上的深度分页对分布式搜索引擎而言甚至是更低效的,因为为了找到正确的

2016-05-25 21:32:59 3184 2

原创 httpclient4.4的简单demo

public class HttpClientUtil { private static Logger logger = LoggerFactory.getLogger(HttpClientUtil.class); private static PoolingHttpClientConnectionManager connectionManager = null; pr

2016-05-24 16:43:01 3771

原创 hive建外表时默认分隔符错误导致行数增加和数据错误

hive根据hdfs建立外表时,一般使用这种格式规范: ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'这种方式识别的默认行分隔符其实并不只是行分隔符'\n',还包括'\r','\r\n','\u0001','\u0002','\u0003'因此有如果字段中存在'\r',可能会导致外表行数与预期不一致的增加这种处理应该是为了兼容windows

2016-05-12 13:07:23 2236 1

翻译 solr 原子更新

solr中如何对索引数据进行增量更新?原子更新是一种很好的方式。该目前原子更新支持以下五种修改器。set: 对指定的field,修改其为指定的值(也可以是Null)add: 对指定的多值field,添加指定的值remove: 对指定的多值field,移除指定的值removeregex: 对指定的多值field,移除符合指定正则表达式的值

2016-03-23 17:36:20 1098

原创 mysql 安装后报 ERROR 1045 (28000): Access denied for user 'root'@'localhost'

今天在一台新mac上装了mysql+官方的workbench,安装过程中系统随机给出了一个root初始密码。之前由于养成了习惯,经常用mysql -h x.x.x.x -P 3306 -u xxx -pxxx;这种命令去登远程数据库,所以这次命令行连本地数据库时也依样画葫芦。结果由于这个初始密码有转义字符,报语法错误,给密码加了转义斜杠再连,结果是报Access denied for us

2016-03-22 21:15:50 736

原创 hive字符串SUM

hive中使用sum能很方便地实现数值聚类求和,但如果对象是字符串,要求把字符串聚合成一个长串(用逗号分隔),最好还要去重,该如何实现?下面的sql语句实现了在一个id对应多个图片(pic_id)的情况下,获得每个id对应的所有pic_id这一需求select id,concat_ws(',',collect_set(pic_id)) as pic_ids from (sele

2016-03-09 17:46:19 6298

原创 Java中repalceAll和split的转义问题

Java中String的两个常用方法split和replaceAll实际上调用了正则表达式中的方法,因此其字符参数需要考虑到正则表达式中的转义问题正则表达式中的转义字符:. $ ^ { [ ( | ) * + ? \参见https://msdn.microsoft.com/zh-cn/library/4edbef7e(v=vs.110).aspx如果用以上字符分割或取代字符串,

2016-02-24 11:49:57 781

原创 编译不完全导致调试时无法查看局部变量的值

因为项目需要,需要用框架代码动去解析执行另一部分动态代码。然而用eclipse在调试动态代码时,发现只能看成员变量的值,局部变量的值不能查看(cannot be resolved to a var),方法参数只能以参数1、参数2的形式看到而没有名字估计到编译期可能有问题,在框架代码编译动态代码时加上参数-g即可javac的参数-g可以生成所有的调试信息,默认情况下不会生成保存局部变量的

2016-01-04 16:57:29 1631

原创 通过HttpClinet类用get方法获得远程接口返回的Json串

public class HttpClientUtil { public static String requestByGetMethod(String s) { CloseableHttpClient httpClient = HttpClients.createDefault(); StringBuilder entityStringBuilder = n

2015-12-30 13:53:09 6514

原创 pat 1083. List Grades WATER

实在没什么好说的,上码#include#includestruct node{ int grade; char name[12]; char id[12];};node arr[105];int com(const node &a,const node &b){ return a.grade>b.grade;}int main(){ int n,i,g1,

2014-11-23 00:12:46 527

原创 pat 1082. Read Number in Chinese 整数串和字符串转化

其实也比较水,但是要考虑的东西还是不少测试用例:101010101

2014-11-22 22:14:44 1340

原创 pat 1081. Rational Sum (公约数公倍数)

其实也是道简单题,

2014-11-22 17:54:33 561

原创 pat 1080. Graduate Admission(排序模拟)

此题要注意的点包括排序函数不要定义错,

2014-11-06 16:22:00 562

原创 pat 1079. Total Sales of Supply Chain(树模拟)

偏简单的题目,注意考虑N=1的特殊情况

2014-11-06 10:17:51 918

原创 pat 1078. Hashing (哈希表模拟)

本题中首先是要把N转化为最近的

2014-11-05 21:28:48 1387 1

原创 pat 1077. Kuchiguse (字符串水题)

送分题一道#include#includeusing namespace std;string arr[105];int main(){ int i,j,n,len,l; string s; scanf("%d",&n); getchar(); int min=256; for(i=0;i<n;i++) { getline(cin,arr[i]);

2014-11-05 19:47:42 567

原创 pat 1025. PAT Ranking (水)

感觉陈越姥姥很喜欢出这类排名中存在并列的题

2014-10-21 22:46:25 456

原创 pat 1024. Palindromic Number (大水)

又是道水题。。。#include#include#includeusing namespace std;int ctoi(char ch){ return ch-'0';}char itoc(int i){ return i+'0';}string resum(string s){ string ss=s; reverse(ss.begin(),ss

2014-10-21 16:05:17 457

原创 pat 1023. Have Fun with Numbers (大水)

C++ string 搞定,真的没什么好说的

2014-10-20 01:30:50 407

原创 pat 1022. Digital Library (字符串水题)

字符串处理题如果在vc中编程,可能因为getline()的问题遇到一些调试上的不爽

2014-10-15 20:27:04 406

原创 pat 1021. Deepest Root (并查集,搜索)

此题首先想到用并查集,然后但是单独用dfs或bfs也是可以的

2014-10-14 19:57:57 446

原创 pat 1020. Tree Traversals (重建二叉树模板题)

很典型的一道题,根据后序和中序建树,再层次输出

2014-10-11 20:21:22 438

原创 pat 1019. General Palindromic Number (水。。。)

水题一道虽然进制基数可能很大

2014-10-10 17:25:57 540

原创 pat 1018. Public Bike Management (dijkstra+dfs)

最短路问题,复习dijkstra和dfs

2014-10-10 13:33:14 2296

原创 pat 1017. Queueing at Bank (模拟优先队列)

好就没有做pat了,重新开刷本想从水题入手可以快点,结果却

2014-10-08 16:16:41 2284

原创 统计学习分类名录

1.感知机(perceptron)

2014-09-03 16:31:20 670

原创 ubuntu中修改python默认版本后造成ibus输入法异常的修复

ubuntu中部分bash与python2.7结合十分之精密

2014-09-02 20:53:03 1140

原创 hadoop初学

近来开始一个人撸hadoop尝试在ubuntu上使用hadoop

2014-07-21 17:27:50 448

原创 2014考研 浙大CS、MSE 小记

为什么要考研?除却少量大牛,研究生总体上找工作比本科生要好得多,自己又没下决心准备去美帝。选择浙大因为学校确实好,计算机领域也是全国前列的。招生人数多,因而分数线相对华东其他四校偏低。mse接收较多本校调剂,算是有一条后路。总之性价比高。于是准备了约半年,结果408统考317分,没上,去了软院= =  简单扒一扒初试的准备工作。政治很简单,可以10月开始准备。今年肖4押

2014-04-10 14:14:29 2016 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除