- 博客(90)
- 资源 (4)
- 收藏
- 关注
原创 重构技术导读-《重构 改善既有代码的设计》
《重构技术导读》 李超利 2018.03.28 任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。 《重构 改善既有代码的设计》重构序言所谓的重构其实是这样的一个过程,在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。重构是一种经千锤百炼形成的有条不紊的程序整理方法,可以最大限度地减少整理过程中引入的错误的几率。本质上说,重构...
2018-03-31 15:33:45 871 1
翻译 【分析】声明“双重检查锁坏了”
双重检查锁在多线程环境中作为一种有效的实现延迟初始化的方法被广泛在使用。 不幸的是,在java实现的平台中,它将不会可靠的工作而没有额外的同步 。当在其他语言中实现时,例如 c++,双重检查锁依赖处理器的内存模型。在编译器与同步函数库之间,编译器是重新排序执行的。所以少数情况下,c++语言能够工作。即基于少数c++的编译器的内存模型使用内存屏障可以使双重检查锁正常的工作,但是在java中却是不
2016-06-23 10:21:26 884
原创 【总结】网站性能分析-前台优化
对于一个大型网站来说,前台的性能直接影响用户的操作体验,直接影响的就是网站的用户活跃度和业务质量。那么如何评测一个网页的性能至关重要。虽然不能得知所有用户访问一个页面的加载流畅情况,但是至少要满足80%的用户操作可用性。从一个页面让用户访问开放的渠道比较多,签入到app移动端,wap端,web端等端应用场景,一般注重移动端性能场景较多,毕竟目前用户手机的内存和性能都比pc小的太多。所以解决移动端访问
2016-05-09 15:53:25 2326
原创 【总结】深插浅出重拾Linux
版权说明:重拾Linux笔记,禁止转载哈。关于勘误:如有错误,请直接回复批评与指教。笔者会及时更新滴。关于重拾:笔者自我感觉对LinuxOS理解不够深入,尴尬ing。想从以下两方面入手给自己一些启发: Linux应用面(完结) Linux内核面(整理中)重拾目的:笔者从事工作侧重于大吞吐量高性能分布式系统,对服务端优化部分理解不够深入,虽然现在找到一些突破方向,但是希望自己能够在OS层面找
2016-02-02 15:29:08 2223
原创 【计划】2015下半年做些什么事情
明天周五要从阿里实习离职了,回学校大概有如下计划。1.预计复习高等数学,概率统计分析,凸优化,矩阵分析。 1)对于高等数学大概比较快,统计分析有本书《统计学习方法·李航》还没看过,所以先吃掉这本。 2)矩阵分析,以前搞过MATLAB,对于处理矩阵还是会一点的。为了补充知识,再吃掉《矩阵分析与应用·张贤达》,到此为止,目的就只有一个啊啊啊啊,机器学习! 2.对于计划一估计在6月
2015-05-21 16:58:21 1549 4
原创 【实践】搭建agent服务+javassist字节码操作
写测试框架必备技术,agent+javassist。对于agent,是在vm启动,执行方法前,将字节码修改的服务代理。 对于javassist,是修改字节码具体实现。 字节码处理工具,bcel,asm与虚拟机指令打交道。Javassist采用java编码的方法处理字节码,性能相对较低,但方便。
2015-05-19 16:18:40 4827 2
原创 【总结】深入JVM之类执行机制
犹豫的日子里需要淡定,╮(╯▽╰)╭,加油哎。JVM系列 1.深入JVM之源码编译机制 2.深入JVM之类加载机制 3.深入JVM之类执行机制 4.JVM内存诊断工具 关于类执行机制 关于类执行机制模式机制 关于类执行机制中的模式选择
2015-05-15 17:32:07 1698 1
原创 【总结】深入JVM之类加载机制
总结下类加载机制相关的知识图谱。 类加载机制,包括三大步骤。 1.装载load 。目的是生成类加载实例id 2.链接 ,检测字节码格式以及内部调用匹配情况。静态变量初始化 3.初始化。主要是类加载器加载类的顺序。 对于自定义类加载,开发者完成自己的实现。 bootstrap负责rt.jar类加载,rt是java规范定义的接口与实现。 extension扩展jre中的jar。 s
2015-05-15 17:17:15 1546
原创 【总结】深入JVM之源码编译机制
对于jvm源码编译机制,参考资料是《分布式Java应用 基础与实践》。学习后,大概的总结如下。 最近没有更博客,心情比较乱,╮(╯▽╰)╭,javac编译.java文件为.class文件。
2015-05-14 19:39:52 2209 1
原创 【问题】N+同步消费问题,来谈如何避免业务坏账
遇到一个比较蛋碎的问题,就是同时间过来N个并发电话,如何保证同步消费完30分钟,而不会超过30分钟产生的坏账
2015-05-05 19:22:56 1417
原创 【总结】性能调优:JVM内存诊断工具
性能调优:消耗分析思维导图*号代表是重点工具。 这部分总结了内存诊断的相关工具。具体的工具使用,我会在这篇中增加子链接。
2015-04-27 20:29:35 2969
原创 【总结】性能调优:消耗分析
一张图解释性能调优中之消耗分析。 性能调优系列的其他篇幅,请查阅。 性能调优:CPU消耗分析 性能调优:IO消耗分析
2015-04-24 20:33:39 2289 1
原创 【总结】性能调优:IO消耗分析
如何分析IO消耗?IO消耗分文件IO和网络IO。对于文件IO,主要是输入输出流与内存的消耗。而网络IO,一般是网卡的吞吐量,java程序一般不会产生网络IO消耗....
2015-04-23 18:11:46 9269 8
原创 【总结】性能调优:CPU消耗分析
cpu消耗分析总体概要图 一张思维导向图,不用说了。 top命令,请查阅这篇 http://blog.csdn.net/supera_li/article/details/45220205 pidstat命令,请查阅这篇 http://blog.csdn.net/supera_li/article/details/45221211参考资料: [1]java分布式应用基础与实践 [2]c
2015-04-23 14:29:50 3615 1
原创 【实践】安装sysstat,使用pidstat命令
安装sysstat权限不够在命令前键入sudo –u admin 赋予文件执行权限chmod +x [firename] 1.下载sysstat-10.0.5.tar.gz到本地 2.通过CRT使用rz命令上传 3.解压zip: unzip sysstat-10.0.5.tar.zip 解压gz: tar -zxvf sysstat-10.0.5.tar.gz 4.cd systa
2015-04-23 14:19:53 4772
原创 【总结】Effective java经验之谈,并发编程
内容包括,并发与并行,并发约束,并发下的集合类性能分析,并发相关包的概述,并发场景,并发总结集合包
2015-04-22 17:49:53 2702
原创 【总结】Effective java经验之谈,枚举,注解,方法,通用设计,异常
这几章看的比较快,内容就如同标题一样比较容易理解,所以只有部分内容会在[]中解释,其他的就直接理解标题,并不影响阅读质量。不过如果时间充足的话,还是仔细读一读原书的内容,相信还是有所收获的。主要最近自己想进入算法与机器学习部分,尽快结束这本书。 另一方面,讨论一些自己感兴趣的内容,我会将搞过的东西总结下。后面可能写一部分关于java字节码阅读以及编写的东西。只所以这么来,是因为字节码编程还是非常用途
2015-04-20 21:27:19 2235 5
原创 【总结】Effective java经验之谈,泛型
对于泛型这一章,在起始写框架的时候,并没有注意细节,造成了很多方法或者类的错误设计。这本书在这点上弥补了我一个短板。大概的总结如下。
2015-04-15 20:02:32 1852
原创 【总结】Effective java经验之谈,通用方法
对于通用方法,其实应用的场景是比较多的,我们在写一个类的时候,就要考虑是否要编写该方法的通用方法。这使得我们为以后该类的扩展性与使用方面提供很大的便利。
2015-04-13 23:34:31 1794
原创 【探索】狗血探索篇,如何发挥出SSD应有的性能
这个200分数当场吓尿。开机1分27s,尼玛,老年机,不能这么吧,博主愤怒了,博主要鲁了!!!博主要给改变这个蛋碎的结果。于是开启了老年机改装之旅。什么是老年机呢?博主大笔一挥,10年之前的笔记本就是了,包括10年。为什么?sata3.0一般在10年之后开启大规模生成,之前一般是sata2.0。他们最大传输为前者600 M/s 后者300 M/s。
2015-04-13 21:04:27 1517
原创 【总结】Effective java经验之谈,类与接口
本章描述的是,自己在做系统重构的时候,阅读的章节,给自己在架构方面提供很大帮助。总结出一些干货分享一下啊啊啊~~主要应用场景是编写类与接口的时候需要注意的问题。每一章不一定按照顺序更新。欢迎拍砖补充。
2015-04-08 14:45:56 1837
原创 【总结】Effective java经验之谈,创建和销毁对象
关于Effective java 这本书,自己的一些总结性的思考。篇幅可能不按照目录来,因为自己喜欢先看哪一章就直接阅读了。不过能确定的是,每一章都会有总结。欢迎大家拍砖与补充。
2015-04-08 14:38:13 2120 2
原创 【实践】分享一个年会抽奖程序
由于大部分网上的抽奖程序,可能会采集用户的信息,所以基于安全性而言,还是自己写一个吧。公司,单位,学校,班级,等集体年会抽奖程序必备。对于开发,还可以继续更改逻辑,扩展趣味性。对于用户,可以配置奖励物或者参与者。
2015-02-05 17:10:30 7468 2
原创 【建议】高性能代码的一些规范性建议
从一位前辈那边学习到的一些规范,加上自己的一些编程方面实践性,提炼出三方面,数据库,编码,配置等能够改进代码效率以及降低工程风险的参考性建议。
2014-12-16 17:39:03 1276
原创 【实践】源码分析工具Doxygen+Graphviz
Doxygen+Graphviz的快速搭建教程,轻松阅读源码项目。拿到一个新项目或者一个开源框架,看源码的方式不是先进行单步调试!最好的方式是先画出整个项目或者开源框架的类,协作,已经方法调用图。可以帮助你更快的理解框架或者项目的设计。
2014-12-15 16:29:56 2056
原创 【面试】2015届校招阿里巴巴研发工程师杭州站offer经历与详细过程
ps:自己的面经是不是有点晚啊~,~呵呵。2014年9月24日杭州终面详细过程。前面有其他岗位同学的汇总篇:http://blog.csdn.net/supera_li/article/details/39254825研发工程师杭州站面试成功面试经验 技术一面XX(花名保密吧):ME:好紧张啊~~(刚走到面试官的桌子旁边,还没有坐下去~~囧啊,随口来了句)D:不要紧张,
2014-12-08 19:35:34 3098
原创 【实践】从eclipse集成快速上手到IDEA14集成开发环境最可能出现的问题与解决办法
最近在跟进项目,使用idea工具,据说这个工具室未来java中效率提高最屌的一个。然后楼主果断相信了,下载了,装机了,被坑了。。。遇到几个和eclipse对比起来的问题总结下。给予最新的非社区版idea14。1.NEW Module就是创建项目,和eclipse中的NEW Project一样,不然目录会错,这点刚开始用就被坑了2.VCS菜单下面checkout...有各种svn工具,我
2014-12-08 18:50:49 1984
原创 java初始化问题,其实记住三点就ok了~~~
java初始化问题~~~只需要记住三点就行了~~~~看别人的实验,搞的我都郁闷死了,给大家总结下: * 1.先顺序加载static变量 * 2.无论何时只要执行构造函数,那么在执行构造函数方法体之前必须完成非静态变量,方法的加载(不限次数) * 3.static执行完成后,classloader会执行main方法体,然后就正常执行呗~~~
2014-09-20 14:27:57 1441
原创 从网页相关性TF-IDF到余弦定理的新闻分类的程序实现
TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。权重计算方法经常会和余弦相似度(cosine similarity)一同使用于向量空间模型中,用以判断两份文件之间的相似性。应用到余弦定理到新闻分类的算法模拟程序
2014-09-19 23:52:12 2557
原创 【淘宝技术这十年】,读后总结篇
淘宝技术这10年,里面涉及的技术确实颇有传奇色彩。突然觉得,没有时间看书,而且需要补充技术营养的技术宅来说,勤奋的渣渣我来提供福利了,萃取一些精华分享给大家吧
2014-09-18 22:43:08 3596 2
原创 Java集合类源码同步否~
Synchronized,volatile,lock锁->[就绪队列,堵塞队列]第一个是jvm层次实现的。与volatile不同的是,后者不能从工作内存写回到主存。所以后者常用于类变量的同步lock来说,在竞争资源激烈的情况下,效率最高。
2014-09-18 14:04:47 1413 1
转载 数据挖掘面试题01
转载地址:http://blog.sina.com.cn/s/blog_54a0b86b0100yxhm.html1.给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方
2014-09-16 23:11:15 1022
原创 查找二叉树中符合特定条件的值
二叉树查找特定节点: 1.节点的深入最小->递归深度,循环数组最小 2.节点为孩子节点->左右子树而空 3.节点位于最右侧 ->每层最右侧
2014-09-15 11:19:00 2703
转载 java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。 依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例, 其代码在虚拟机的解释下得以执行。
2014-09-14 11:33:19 1804
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人