- 博客(257)
- 资源 (129)
- 收藏
- 关注
原创 马上要走了,去北京.....
马上要走了,去北京闯一闯,去北京一直是我的初衷,经过这么长时间的各种波澜,还是决定趁年轻,多出去闯闯,追求自己想要的东西,毕竟,人生在世,能有这么几次呢,也就年轻这么一次。年轻,是谁都有过的资本,但是有限时间,让年轻发挥出最大的价值,还是自己决定的,路,还得是自己走! 想想去北京,新的平台,新的机会与更严峻的挑战等着呢,还是勇往直前,好好干吧! 挺感谢公司的同事们和
2016-03-16 00:52:22 9325 59
翻译 Java永久代去哪儿了
在Java虚拟机(以下简称JVM)中,类包含其对应的元数据,比如类的层级信息,方法数据和方法信息(如字节码,栈和变量大小),运行时常量池,已确定的符号引用和虚方法表。在过去(当自定义类加载器使用不普遍的时候),类几乎是“静态的”并且很少被卸载和回收,因此类也可以被看成“永久的”。另外由于类作为JVM实现的一部分,它们不由程序来创建,因为它们也被认为是“非堆”的内存。在JDK
2015-09-08 08:54:40 5393 2
原创 深入剖析tomcat之servlet容器
其实我们开发中经常用tomcat应用服务器,tomcat就一个servlet容器,能够运行基于serlvlet的应用程序并响应相应的http请求,开发时间长了,还是想想具体知道它是怎么运行的,尤其是servlet容器的机理,所以有幸拜读了外国人的《深入剖析tomcat》,感觉挺不错的,可以在此点击免费下载电子书,建议大家有时间读读,在读的过程中边读边翻阅着tomcat的源码,更有助于你理解它的各个
2015-09-01 08:54:46 7479 2
原创 springMVC工作原理
SpringMVC框架介绍 1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring
2015-07-30 09:03:43 11921 1
翻译 深入分析Java ClassLoader原理
一、什么是ClassLoader?大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,则会引发系统异
2015-07-29 08:49:27 2950 2
原创 深入理解Memcached原理
1.为什么要使用memcache 由于网站的高并发读写需求,传统的关系型数据库开始出现瓶颈,例如:1)对数据库的高并发读写:关系型数据库本身就是个庞然大物,处理过程非常耗时(如解析SQL语句,事务处理等)。如果对关系型数据库进行高并发读写(每秒上万次的访问),那么它是无法承受的。2)对海量数据的处理:对于大型的SNS网站,每天有上千万次的数据产生(如twitter, 新浪微博)
2015-07-24 08:59:40 14815
转载 ConcurrentHashMap原理分析
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中
2015-07-16 08:50:48 1416
原创 Nginx优化详细,应对高并发
nginx指令中的优化(配置文件)worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数。worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 为每个进程分配cpu,上例中将8个进程分配到8个cp
2015-07-16 08:48:21 16784 3
原创 触发JVM进行Full GC的情况及应对策略
Full GC又称作Major GC,属于老年代GC,指发生在老年代的GC,相对这种GC的有新生代GC即Minor GC。出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的,Major GC的速度一般会比Minor GC慢10倍以上。下边看看有那种情况触发JVM进行Full GC及应对策略。 1、System.gc()方法的调用 此方法的调用是建议JVM进行Fu
2015-07-01 08:54:00 97562 13
翻译 Linux与JVM的内存关系分析
引言在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m。从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所示。同时,由于SWAP和GC同时发生会致使JVM严重卡顿,所以我们要追问:内存究竟去哪儿了?
2015-07-01 08:51:03 4893 6
原创 Linux中CPU与内存性能监测
在系统维护的过程中,随时可能有需要查看 CPU 使用率内存使用情况的需要,尤其是涉及到JVM,程序调优的情况,并根据相应信息分析系统状况的需要。top命令top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制
2015-06-29 09:05:09 11926 1
翻译 一次非常有意思的SQL优化经历:从30248.271s到0.001s
场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表create table Course(c_id int PRIMARY KEY,name varchar(10))数据100条学生表:create table Student(id int PRIMARY KEY,name varchar(10))数据70000条
2015-05-19 08:42:15 4578 6
翻译 java6,7,8中String.intern进化史与深度剖析
这篇文章将要讨论 Java 6 中是如何实现 String.intern 方法的,以及这个方法在 Java 7 以及 Java 8 中做了哪些调整。字符串池字符串池(有名字符串标准化)是通过使用唯一的共享 String 对象来使用相同的值不同的地址表示字符串的过程。你可以使用自己定义的 Map<String, String> (根据需要使用 weak 引用或者 soft 引用)并使用
2015-05-14 08:48:23 2966
原创 10个对开发项目有害的编程习惯
避免这些常见的编码习惯,会让我们的工作更轻松、软件更安全且更易于扩展。帕雷托法则明确指出,20%的因导致80%的果。又称为80-20法则,它适用于几乎每一个需要人作为劳动主体的相关领域。在软件开发领域,这个法则可以概括为,大多数的问题都是由少数不良编码习惯造成的。改变这些习惯,你会更有效率。10个对开发项目有害的编程习惯下面讲讲最要不得的10条编码习惯:1.拼写错误让我
2015-04-27 09:13:01 3386 4
翻译 java虚拟机垃圾回收被误解的7件事
对Java垃圾回收最大的误解是什么?它实际又是什么样的呢?当 我还是小孩的时候,父母常说如果你不好好学习,就只能去扫大街了。但他们不知道的是,清理垃圾实际上是很棒的一件事。可能这也是即使在Java的世界中, 同样有很多开发者对GC算法产生误解的原因——包括它们怎样工作、GC是如何影响程序运行和你能对它做些什么。因此我们找到了Java性能调优专家Haim Yadid,并把名为Java p
2015-04-22 09:15:46 2140
原创 oracle到底能不能insert into 多个values!?
稍微熟悉oracle的都知道,如果我们想一条SQL语句向表中插入多个值的话,如果INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....;这样会报错的,因为oracle是不支持这种写法的,如果多个INSERT INTO VALUEES(各个值);这样以“;”隔开一同执行也是不行的,oracle也是不支持的。 不过MySQL这两种方式都是支持的。
2015-04-21 08:51:10 91248 16
翻译 详解java类的生命周期
引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮助,
2015-03-29 22:31:01 1177
原创 字典树-大量字符串前缀及出现次数是否存在统计(Trie树-java)算法实现
前言 字典树又称单词查找树,它是一种树形结构,是一种哈希树的变种,典型应用是用于统计,保存大量的字符串(但不仅限于字符串),统计以是否有以某字符串最为前缀的字符串,有的话有多少,某字符串出现了多少次等,所以经常被搜索引擎系统用于文本词频统计。 它与字典很相似,当你要查一个单词是不是在字典树中,首先看单词的第一个字母是不是在字典的第一层,如果不在,说明字典树里没有该单
2015-03-28 22:59:45 14851 12
原创 透过J2Cache的吐槽,领悟代码的设计
经常去开源社区的,大部分应该都知道J2Cache吧,不过没听说过也没关系,这 是 开源中国社区OSChina 目前正在使用的两级缓存框架,托管在OSG@Git上,大部分由设计人红薯来维护。它的第一级缓存使用 Ehcache,第二级缓存使用 Redis 。由于大量的缓存读取会导致 L2 的网络成为整个系统的瓶颈,因此 L1 的目标是降低对 L2 的读取次数。该缓存框架主要用于集群环境中。单机也可
2015-03-25 22:19:53 12032 7
原创 Java代码优雅之道-Guava
Guava,中文是石榴的意思,Guava项目,是基于java的Google的开源的工具类库,包含了许多被Google的java项目广泛依赖的核心库,例如:集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。 为什么项目开发中我们要选择Guava,借用网友的回答:•瓜娃是java API蛋糕上的冰激凌
2015-03-24 23:21:04 12011
原创 最常用的15大Eclipse开发快捷键技巧
引言 做java开发的,经常会用Eclipse或者MyEclise集成开发环境,一些实用的Eclipse快捷键和使用技巧,可以在平常开发中节约出很多时间提高工作效率,下面我就结合自己开发中的使用和大家分享一下Eclipse中常用到的快捷键和技巧。 1、alt+?或alt+/:自动补全代码或者提示代码这个是我最得意的快捷键组合了,尤其是当输入syso几个字符之后,2个
2015-03-24 22:35:09 218688 47
翻译 20个 Unix/Linux 命令技巧
让我们用这些Unix/Linux命令技巧开启新的一年,提高在终端下的生产力。我已经找了很久了,现在就与你们分享。删除一个大文件我在生产服务器上有一个很大的200GB的日志文件需要删除。我的rm和ls命令已经崩溃,我担心这是由于巨大的磁盘IO造成的,要删除这个大文件,输入:> /path/to/file.log# 或使用如下格式: > /path/to/file.log# 然后
2015-03-23 21:10:18 2421
转载 各种排序算法的深入分析及java实现
排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下
2015-03-23 20:56:18 1895
翻译 每个Java程序员必须知道的5个JVM命令行标志
本文是Neward & Associates的总裁Ted Neward为developerworks独家撰稿“你不知道5个……”系列中的一篇,JVM是多数开发人员视为理所当然的Java功能和性能背后的重负荷机器。然而,我们很少有人能理解JVM是如何进行工作的—像任务分配和垃圾收集、转动线程、打开和关闭文件、中断和/或JIT编译Java字节码,等等。不熟悉JVM将不仅会影响应用程序性能,而且当J
2015-03-20 22:34:00 2303
原创 Dom4j解析xml文件-递归遍历所有节点和属性
引言 Dom4j是java中常用读取xml文件的工具,就方便性和性能方面,一定程度要优于JDK中Domcument和SAX解析的,感兴趣的童鞋可以看看这篇文章 java解析XML的四种方式及比较,相关jar包可免费下载:dom4j-1.6.1.jar,下边我就分享一下用Dom4j对xml文件进行遍历,一看代码就明白了,注释的很详细。被测试的xml文件test.xml
2015-03-17 22:00:01 94180 30
原创 EasyUI-DataGrid多行动态选择性合并算法实现
jQuery EasyUI中有一个很好用的数据列表控件,即DataGrid控件,后台以一定的json格式传给控件就能在前台展示出来,功能很强大,不过有时需求需要这样即多行合并,如在列表中如果相同的部门字段上下合并达到Excel展示相同的效果,而且有时不止这一个字段的合并,还有其他字段根据内容相同或者其他字段的ID相同啊进行合并。 官网上没有对应的类似的Demo,可能开发中遇到这种情
2015-03-12 23:03:53 18119 9
原创 华为 Java 编程军规,每季度代码验收标准
1、引言:这个标准是衡量代码本身的缺陷,也是衡量一个研发人员本身的价值。华为作为一家全球化的 IT 公司,十几万员工,无论是人事管理,还是代码管理,都是一件不容易的事情,没有规范的约束,想想都是件可怕的事情。下面挑选了一些网上流传的编程规范,一起来学习下,以下内容不涉及基础的语法规范(请见 Refer),更侧重于一些编程习惯,如何提高程序的健壮性、可维护性等。(PS:以下内容未经官方考证,如阅
2015-03-10 13:07:42 2793
原创 代码典型缺陷分析—代码质量分析会上的报告
前几天事业部召开代码质量分析会,其中一个环节就是讲解一下一些产品的开发过程中一些代码缺陷,让我们的研发人员代码编写更加规范,是的,这个环节是我讲解的。 非常感谢部门经理给与我这个机会,这是我很好的一次锻炼机会,也是经理对我的信任,所以我不能辜负经理对我的信任,不能浪费掉这次锻炼的机会,也不能丢我们部门的脸。尽管时间很紧张,准备时间很短,但我还是抽掉了好几个大晚上就准备它。开会的前
2015-03-08 16:29:32 3281
原创 pinyin4j把中文句子(含有多音字字母)转成拼音(二维数组递归求所有组合情况返回list)算法实现!
介绍 Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制,然而真正的把含有多音字、数字、字母的中文句子转成拼音得到所有的组合情况却有很大难度,我看过很多有关博客或者帖子,被广大网友视为它的短板和不足,很多网友哀声叹气不能真正得到所有组合情况,一部分也只是用简单循环得到中文句子的拼音组合情况的一种,鄙人利用业余时间研究了研究,把研究结果分享
2015-03-05 21:43:44 6144 7
原创 StringBuilder性能真的优于StringBuffer?!!!!
大家都知道,StringBuilder和StringBuffer主要区别是前者不是线程安全的,后者是线程安全的,余JDK预留的对外接口几乎是一模一样的,所以在确定线程安全的环境的前提下,优先使用SringBuilder,肯定不相同条件下的StringBuffer性能要高,因为那维护同步数据的正确性肯定要消耗资源的。 然而在今天的事业部代码质量报告会上,我在讲解StringBuild
2015-03-05 21:16:05 8960 6
原创 java序列化一定要应该注意的6个事项!
1、如果子类实现Serializable接口而父类未实现时,父类不会被序列化,但此时父类必须有个无参构造方法,否则会抛InvalidClassException异常。2、静态变量不会被序列化,那是类的“菜”,不是对象的。3、transient关键字修饰变量可以限制序列化。4、虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重要的一点是两个类的序列化 ID 是否一致,
2015-02-15 11:06:21 12560
原创 IT行业,唯一不变的原则—“变”!
最为一个程序猿的我,尽管刚出来,但还是对这个行业的变化之快很感概。应该是,也确实是,IT行业因为“变”才能跟上和推动整个人类的发展,IT行业唯一不变的原则就是“变”,尤其是互联网上的技术,刚盛行没几年技术就能很快被更好更新的技术替代了,很多技术都经历这个淘汰的过程,从大一,到现在,我也是深有些体会。 我认为,作为一个IT工作者,要时时刻刻准备并很快跟上这种“变”,不管你是小小的程序猿
2015-02-13 23:02:45 2025
原创 为何百度的产品大多数半死不活?
百度之殇,重搜索缺失 前两天在和一个在百度代理商工作的朋友喝茶,期间聊到移动互联网对传统搜索引擎流量的冲击。其开始颇为不以为然,“即使在移动互联网时代,百度仍是手机端的第一搜索引擎呀,外面平时在外面遇到问题还不会想到拿出手机,百度一下?” 可是他不明白的,问题就出在这儿。就像百度一直以来的Slogan “百度一下,你就知道”一样,百度所解决的问题,在移动互联网时代越 来越被局限在 “
2015-02-13 09:20:55 2369 1
原创 Array.asList:数组转list时你一定要知道的“陷阱”!
最近开发中,业务上处理,经常用到asList方法,这让我不经想起了它的很多容易让人犯错的地方或者误解的地方,所以就想抽出时间来,整理一下,和大家分享出来,深夜了,话不多说,主要以代码为主,简易的代码,你一看就知道了!大家都知道这个方法是将数组转成list,是JDK中java.util包中Arrays类的静态方法。大家使用时一定要注意(请看代码): String
2015-02-12 22:57:47 45868 17
原创 读取Excel表格报错问题分析总结(用apache POI读取,表格稍微改动就报错导入不进去)
首先是建立在用apachePOI解析Excel时一定几率是能成功解析导入的,如果一点也不能的话,也可以参考看看我总结的原因,也许也是导致你屡次导入不能的原因之一。 这个问题是前天客户反应的,不用下载的好的模版套进内容再导入的话就报错,怎么也导入不进去,客户即想用从其他直接导出的数据导入我们的产品中用想能自己复制一些其他的内容到自己建立的excel表格中导入进去
2015-02-11 22:21:02 6709 1
原创 String中substring方法内存泄漏问题
众所周知,JDK中以前String类中的substring方法存在内存泄漏问题,之所以说是以前,是因为JDK1.7及以后的版本已经修复了,我看都说JDK1.6的版本也存在这个问题,但是我本机上安装的1.6看了看源码不存在内存泄漏问题啊,又看了1.7的源码,和我本机的1.6的一样,是不是我的1.6版版其实是1.7的?!唉,不管了,反正1.7版本肯定没有这个问题(1.5及更老版本肯定有)了,大家就放心
2015-02-08 21:12:01 7052 2
原创 雷军北大15分钟演讲:我至少有胆量去想
大家好,非常感谢在“一刻演讲”跟大家交流,这么一个大的话题。昨天我在乌镇参加了全球互联网峰会,在这个会议上有马云,也有苹果公司的高级副总裁,主持人抛出了一个问题,说雷军你说你有一个目标,要用5到10年的时间做智能手机市场风格全球第一。我忙着点头,我的确说过,但是他们又问我,他去问苹果公司的高管,说你怎么看?这个苹果公司的高管也很厉害,他说Easy to say hard to do,我英文
2015-01-27 11:12:10 5468 4
转载 Java的静态代理、动态代理,CGLib的动态代理,使用动态代理基于AOP的AspectJ框架—深入探究
目录(?)[-]一概念二jdk的静态代理一jdk动态代理一cglib 动态代理五 jdk动态和cglib动态代理比较六 面向切面编程几个应用面向切面的概念使用aspectj实现aop编程七总结 Java之代理... 1一. 概念... 1二. jdk的静态代理... 1三. jdk动态代理... 4
2015-01-10 21:36:02 3870
原创 java程序猿应该了解的10个面向对象设计原则(每次看都很有感悟,特意拿来和大家共享)
Java编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计。查看Apache和Sun的开放源代码能帮助你发现其他Java设计原则在这些代码中的实际运用。面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模
2014-12-17 21:03:49 1823
转载 Redis上踩过的一些坑-美团
上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DBA负责人侯军伟给大家介绍了美团网在redis上踩得一些坑,讲的都是干货和坑。 分为5个部分: 一、周期性出现connect timeout 二、redis bgrewriteaof问题 三、redis内存占用飙升 四、redis内存使用优化 五、redis cluste
2016-01-17 01:08:00 51746 8
hamcrest-core-1.3.jar 单元测试JUnit框架必须jar包
2015-03-13
hamcrest-library-1.3.jar程序文件
2015-03-13
Optimizeit Profiler6.0完整版+使用手册.rar )
2015-01-28
java注解、Spring注解、Hibernate注解、Struts2注解等注解大全
2015-01-11
深入理解Java虚拟机--JVM高级特性与最佳实践.pdf
2015-01-05
阿里巴巴java电话面试整理
2014-12-26
timeseriesForecasting.jar.zip-weka.jar里时间序列预测必备jar
2017-09-06
java邮件功能三大jar包commons-email-1.3.3,activation,mail.zip
2015-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人