- 博客(56)
- 资源 (129)
- 收藏
- 关注
翻译 详解java类的生命周期
引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮助,
2015-03-29 22:31:01 1167
原创 字典树-大量字符串前缀及出现次数是否存在统计(Trie树-java)算法实现
前言 字典树又称单词查找树,它是一种树形结构,是一种哈希树的变种,典型应用是用于统计,保存大量的字符串(但不仅限于字符串),统计以是否有以某字符串最为前缀的字符串,有的话有多少,某字符串出现了多少次等,所以经常被搜索引擎系统用于文本词频统计。 它与字典很相似,当你要查一个单词是不是在字典树中,首先看单词的第一个字母是不是在字典的第一层,如果不在,说明字典树里没有该单
2015-03-28 22:59:45 14823 12
原创 透过J2Cache的吐槽,领悟代码的设计
经常去开源社区的,大部分应该都知道J2Cache吧,不过没听说过也没关系,这 是 开源中国社区OSChina 目前正在使用的两级缓存框架,托管在OSG@Git上,大部分由设计人红薯来维护。它的第一级缓存使用 Ehcache,第二级缓存使用 Redis 。由于大量的缓存读取会导致 L2 的网络成为整个系统的瓶颈,因此 L1 的目标是降低对 L2 的读取次数。该缓存框架主要用于集群环境中。单机也可
2015-03-25 22:19:53 12009 7
原创 Java代码优雅之道-Guava
Guava,中文是石榴的意思,Guava项目,是基于java的Google的开源的工具类库,包含了许多被Google的java项目广泛依赖的核心库,例如:集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。 为什么项目开发中我们要选择Guava,借用网友的回答:•瓜娃是java API蛋糕上的冰激凌
2015-03-24 23:21:04 11995
原创 最常用的15大Eclipse开发快捷键技巧
引言 做java开发的,经常会用Eclipse或者MyEclise集成开发环境,一些实用的Eclipse快捷键和使用技巧,可以在平常开发中节约出很多时间提高工作效率,下面我就结合自己开发中的使用和大家分享一下Eclipse中常用到的快捷键和技巧。 1、alt+?或alt+/:自动补全代码或者提示代码这个是我最得意的快捷键组合了,尤其是当输入syso几个字符之后,2个
2015-03-24 22:35:09 218577 47
翻译 20个 Unix/Linux 命令技巧
让我们用这些Unix/Linux命令技巧开启新的一年,提高在终端下的生产力。我已经找了很久了,现在就与你们分享。删除一个大文件我在生产服务器上有一个很大的200GB的日志文件需要删除。我的rm和ls命令已经崩溃,我担心这是由于巨大的磁盘IO造成的,要删除这个大文件,输入:> /path/to/file.log# 或使用如下格式: > /path/to/file.log# 然后
2015-03-23 21:10:18 2408
转载 各种排序算法的深入分析及java实现
排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下
2015-03-23 20:56:18 1886
翻译 每个Java程序员必须知道的5个JVM命令行标志
本文是Neward & Associates的总裁Ted Neward为developerworks独家撰稿“你不知道5个……”系列中的一篇,JVM是多数开发人员视为理所当然的Java功能和性能背后的重负荷机器。然而,我们很少有人能理解JVM是如何进行工作的—像任务分配和垃圾收集、转动线程、打开和关闭文件、中断和/或JIT编译Java字节码,等等。不熟悉JVM将不仅会影响应用程序性能,而且当J
2015-03-20 22:34:00 2291
原创 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 94125 30
原创 EasyUI-DataGrid多行动态选择性合并算法实现
jQuery EasyUI中有一个很好用的数据列表控件,即DataGrid控件,后台以一定的json格式传给控件就能在前台展示出来,功能很强大,不过有时需求需要这样即多行合并,如在列表中如果相同的部门字段上下合并达到Excel展示相同的效果,而且有时不止这一个字段的合并,还有其他字段根据内容相同或者其他字段的ID相同啊进行合并。 官网上没有对应的类似的Demo,可能开发中遇到这种情
2015-03-12 23:03:53 18089 9
原创 华为 Java 编程军规,每季度代码验收标准
1、引言:这个标准是衡量代码本身的缺陷,也是衡量一个研发人员本身的价值。华为作为一家全球化的 IT 公司,十几万员工,无论是人事管理,还是代码管理,都是一件不容易的事情,没有规范的约束,想想都是件可怕的事情。下面挑选了一些网上流传的编程规范,一起来学习下,以下内容不涉及基础的语法规范(请见 Refer),更侧重于一些编程习惯,如何提高程序的健壮性、可维护性等。(PS:以下内容未经官方考证,如阅
2015-03-10 13:07:42 2783
原创 代码典型缺陷分析—代码质量分析会上的报告
前几天事业部召开代码质量分析会,其中一个环节就是讲解一下一些产品的开发过程中一些代码缺陷,让我们的研发人员代码编写更加规范,是的,这个环节是我讲解的。 非常感谢部门经理给与我这个机会,这是我很好的一次锻炼机会,也是经理对我的信任,所以我不能辜负经理对我的信任,不能浪费掉这次锻炼的机会,也不能丢我们部门的脸。尽管时间很紧张,准备时间很短,但我还是抽掉了好几个大晚上就准备它。开会的前
2015-03-08 16:29:32 3266
原创 pinyin4j把中文句子(含有多音字字母)转成拼音(二维数组递归求所有组合情况返回list)算法实现!
介绍 Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制,然而真正的把含有多音字、数字、字母的中文句子转成拼音得到所有的组合情况却有很大难度,我看过很多有关博客或者帖子,被广大网友视为它的短板和不足,很多网友哀声叹气不能真正得到所有组合情况,一部分也只是用简单循环得到中文句子的拼音组合情况的一种,鄙人利用业余时间研究了研究,把研究结果分享
2015-03-05 21:43:44 6128 7
原创 StringBuilder性能真的优于StringBuffer?!!!!
大家都知道,StringBuilder和StringBuffer主要区别是前者不是线程安全的,后者是线程安全的,余JDK预留的对外接口几乎是一模一样的,所以在确定线程安全的环境的前提下,优先使用SringBuilder,肯定不相同条件下的StringBuffer性能要高,因为那维护同步数据的正确性肯定要消耗资源的。 然而在今天的事业部代码质量报告会上,我在讲解StringBuild
2015-03-05 21:16:05 8934 6
原创 加班与效率
微博上看到了这么一个贴子,就像以前在《腾讯,竞争力 和 用户体验》中批评过腾讯说自己的核心竞争力是员工加班一样,我顺着Winter的回复也批评了一下这个微博——“靠加班超越对手?!劳动密集型么?我要是对手的话,我就来趁机挖人了,直接摁死你……//@寒冬winter: 当一个管理者的智慧无法衡量一支团队的产出的时候,他就会把“工时”当做最后的救命稻草,死死抱住——这是他唯一听得懂的东西了。”
2015-03-31 22:42:15 1737
翻译 玩转图片Base64编码
引言 图片处理在前端工作中可谓占据了很重要的一壁江山。而图片的Base64编码可能相对一些人而言比较陌生,本文不是从纯技术的角度去讨论图片的base64编码。标题略大,不过只是希望通过一些浅显的论述,让你知道什么是图片的base64编码,为什么我们要用它,我们如何使用并且方便的使用它,并让你懂得如何去在前端的实际工作中运用它。 什么是base64编码? 我不是来讲概
2015-03-31 22:36:09 3423
翻译 ConurrentHashMap和Hashtable的区别
集合类是Java API的核心,但是我觉得要用好它们是一种艺术。我总结了一些个人的经验,譬如使用ArrayList能够提高性能,而不再需要过时的Vector了,等等。JDK 1.5引入了一些好用的并发集合类,它们对于大型的、要求低延迟的电子商务系统来说非常的有用。这篇文章中将会看看ConcurrentHashMap和Hashtable之间的区别。这篇文章是HashMap的工作原理以及HashM
2015-03-30 10:17:10 2283
原创 Strings类的简单使用-代码优雅之道Guava(一)
前言 前边已经对Guava类库做了简单介绍(博文:Java代码优雅之道-Guava(有相关jar包下载)),下面就简单介绍一个Strings工具类的使用,学会灵活使用Strings工具,会使用我们在开发中,更加省时省力,代码健壮性和可读性更高,废话不多说,一看代码就全明了了。Strings类常用功能和使用 /** * Guava Strings工具类的使用,null和e
2015-03-29 23:02:27 18785 2
翻译 Java中的五种同步辅助类
当你使用synchronized关键字的时候,是通过互斥器来保障线程安全以及对共享资源的同步访问。线程间也经常需要更进一步的协调执行,来完成复杂的并发任务,比如wait/notify模式就是一种在多线程环境下的协调执行机制。通过API来获取和释放锁(使用互斥器)或者调用wait/notify等方法都是底层调用的方式。进一步来说,有必要为线程同步创建更高层次的抽象。通常用到的同步辅助类,就是对2
2015-03-29 22:36:45 1976
原创 乐视市值是360两倍说明啥:卖水模式终结 生态战开打
一家互联网公司到底值多少钱?IPO前看融资估值,IPO后市值就是标的。以往,互联网企业靠自身内在驱动成长,市值变化不大,但放在当下“互联网+”的时代背景下,投资、入股的局越来越多,市值排名也就会出现冰火两重天的现象,这也是为什么游戏、工具类上市企业退市几率最高的原因。如果把时间放到2014-2015年来审视下主流互联网企业的市值会发现,BAT变化不大,但二线企业剧烈震荡。拿两家最具代表性的企业
2015-03-28 00:32:20 3092 2
原创 Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理
前言 java开发中经常遇到对图片的处理,JDK中也提供了对应的工具类,不过处理起来很麻烦,Thumbnailator是一个优秀的图片处理的开源Java类库,处理效果远比Java API的好,从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片
2015-03-27 23:22:31 43379 14
原创 JavaScript计算指定日期与当前日期的相差天数
java中处理2个时间段相差几天很容易,直接调相关方法就行,不过js处理这类问题稍微有点不易,项目开发中也用到了,如下://计算两个日期天数差的函数,通用function dateDiff(sDate2) { var sDate1=new Date().pattern("yyyy-MM-dd"); sDate2=LEx.util.Format.formatDate(sDate
2015-03-26 22:33:12 7497
翻译 超越线程池:Java并发并没有你想的那么糟糕
很多人一直唠叨着并发中的新概念。然而,许多开发人员还没有机会把过多的注意力都放在上面。在这篇文章中,我们将带您了解Java 8 streams、 Hadoop、 Apache Spark、 Quasar fibers以及响应式编程,让你迅速入门。尤其是如果你不经常用它们的话。一句话,它并不遥远,它就在我们身边。我们该怎么做?谈到并发,一种很好的方式来形容当前的问题是来回答几个小问题以便更好
2015-03-25 21:11:05 2330 2
原创 图片加载由模糊变清晰-图片优化
开发过程中,一些图片的展示时,加载很慢很久,后来把图片缩放压成缩略图吧,速度是快了但是模糊不清,如何处理这样问题,下面就和大家分享一下自己的处理方法。先让客户端加载像素小的缩略图:然后用js处理:var img = new Image();//新建一个图片对象 img.src = "原图.jpg"; //最终显示的大图img.onload = function() {
2015-03-24 22:21:24 15021 5
原创 Java过滤器与SpringMVC拦截器之间的关系与区别
今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来,大家仔细看后也一定会有一个比较新的认识(在此非常感谢那些大牛们的无私奉献,分享他们的经验与心得,才能让像我这样的小白有机会站一下你们这些巨人的肩膀,才能
2015-03-23 23:14:35 160732 50
原创 Struts2的优缺点总结
Struts2框架以前用过一阵子,最近一直在用SpringMVC,今天突然想结合自己以前的一点经验总结一下Struts2的优缺点,参考部分网友的帖子结合自己的想法,总结如下:优点: (1) 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现。 (2) 丰富的标签库,大大提高了开发的效率。 (3) Struts2提供丰富的拦截
2015-03-23 22:49:01 52847 1
原创 SpringMVC与Struts2区别与比较总结
1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式
2015-03-23 21:45:43 298158 69
原创 找回MD5加密的密码及MD5加密数据库中数据
有时,在开发过程中,如果不小心更改掉了项目管理员帐号的密码而又忘了,存在数据库里的密码又是MD5加密后的,这时候怎么办?最为菜鸟的我,刚开始也很迷茫,不过向前辈们请教了请教,自己也查了查资料,特意整理记录一下,并分享给大家。 前提是你知道这个密码存在在哪个表的哪个字段,只不过是加密了,如果是oracle数据库的话,可以用DBMS_OBFUSCATION_TOOLKIT.MD5 (
2015-03-22 22:36:50 4701
原创 Attempted to lock an already-locked dir:org.tigris.subversion.javahl.ClientException-SVN提交报错问题解决方法
今天提交代码时,无论怎么弄,重启,clean project都报异常,提交不上去:org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dirsvn: Working copy workspace\WebRoot\' lockedorg.tigris.subversion.ja
2015-03-20 23:40:08 15134
原创 数组转List-典型代码缺陷分析(三)
以上为开发过程中,部分程序猿数组转list的“笨”方法,为什么说笨呢,因为这样做代码很繁琐不简练容易出错可读性叫差,而且还比较耗时,因为我要一个一个遍历数组,然后把这个元素添加到list中(不过以上代码还有几点,最好给ArrayList指定一个初始容量,注意和LinkedList的区别,以及split方法使用的效率和可能内存泄漏问题,此文不再详述,此处重点解读数组转list)。 其
2015-03-20 22:57:23 2440 1
翻译 JVM性能优化,提高Java的伸缩性
很多程序员在解决JVM性能问题的时候,花开了很多时间去调优应用程序级别的性能瓶颈,当你读完这本系列文章之后你会发现我可能更加系统地看待这类的问题。我说过JVM的自身技术限制了Java企业级应用的伸缩性。首先我们先列举一些主导因素。主流的硬件服务器提供了大量的内存分布式系统有大量内存的需求,而且该需求在持续增长一个普通Java应用程序所持有的对空间大概在1GB~4GB,这远远低于一个硬件服务
2015-03-20 22:37:50 2428
翻译 Linux查看HotSopt虚拟机GC线程的CPU占用率
下面的问题将会检验你有关Linux系统上的Java程序的垃圾回收和High CPU排错的知识。在过度调用GC或及CPU占用率过高的时候,这种排错技术是至关重要的。假设你没有使用像是Compuware dynaTrace或者JVisualVMware这样先进的监视工具。有关于这些工具的使用教程将会在以后发布,但是请先确保自己掌握了基础的排错原则。问题:在Linux系统运行的时候,怎样可以
2015-03-18 22:10:24 4681
转载 java用正则表达式过滤特殊字符
java正则表达式 过滤特殊字符的正则表达式// 过滤特殊字符 public static String StringFilter(String str) throws PatternSyntaxException { // 只允许字母和数字 // String
2015-03-18 21:05:42 20396 1
转载 JavaScript、Java正则表达式详解
什么是正则表达式?正则表达式(Regular Expression)就是用某种模式去匹配一类字符串的公式。如你要在一篇文章中查找第一个字是“罗”最后一个字是“浩”的三个字的姓名,即“罗*浩”;那么“罗*浩”就是公式,也称作模式(Pattern),这篇文章就是要匹配的串(或叫文本text)。再如,你要检查输入的一个字符串是否是126邮箱的格式,你得制定一个规则去查检,这种规则就是正则表达式。
2015-03-18 20:56:08 3049
翻译 Java8中时间日期库的20个常用使用示例
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API。Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的。看来Java已经意识到需要为时间及日期功能提供更好
2015-03-18 13:01:41 34912 5
原创 Dom4j解析xml文件-操作节点和属性及写入其他xml文件
引言 上一篇把Dom4j遍历xml文件的所有节点和属性分享了一下,这篇我就简单明了的分享一下,对xml文件的各个节点及属性进行增、删、改的操作并写入新的或者保存到xml文件中,下边的代码很详细,注释很明了,大家一看即可了解。测试的xml文件test2.xml 张三 创建File对象获取Document和根节点 /*
2015-03-17 22:46:58 26744 6
翻译 程序猿必须知道的JavaScript开发的45个经典技巧
JavaScript是一个绝冠全球的编程语言,可用于Web开发、移动应用开发(PhoneGap、Appcelerator)、服务器端开发(Node.js和Wakanda)等等。JavaScript还是很多新手踏入编程世界的第一个语言。既可以用来显示浏览器中的简单提示框,也可以通过nodebot或nodruino来控制机器人。能够编写结构清晰、性能高效的JavaScript代码的开发人员,现如今已成
2015-03-17 19:49:55 1449
原创 循环体中用“+”拼接字符串-代码典型缺陷分析(二)
如上图所示,在一个循环体中用“+”动态拼接字符串,这是我们开发中非常的忌讳的方式,虽然它也能达到我们想要的效果但是性能上包括时间和内存都造成了很大程度的浪费,尤其是访问量很高的循环次数很多的情况下,很容易引起内存溢出。 因为“+”拼接字符串,每拼接一次都是再内存重新开辟一个新的内存区域(堆里边),然后把得到的新的字符串存在这块内存,字符串如果很大,循环次多又多,那么浪费了很多时间和
2015-03-16 22:04:30 13074 1
转载 JUnit4高级篇-由浅入深
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和publ
2015-03-14 16:00:31 13544 3
原创 JUnit4使用教程-快速入门
序言 大学刚学java的时候就听说过JUnit了,单元测试框架,很好用的测试框架,JUnit测试框架将测试更加便捷和容易,编写测试代码也是简单、明了,功能强大。今天我给大家简单分享一下最新JUnit4的使用,几分钟入门!导入jar包 在集成开发环境中导入相应jar包:junit-4.12.jar、hamcrest-core-1.3.rc2.jar、hamcres
2015-03-14 14:46:16 72723 11
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关注的人