
技术积累
文章平均质量分 68
「已注销」
这个作者很懒,什么都没留下…
展开
-
Java的垃圾回收
引言 Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但是由于内存的转载 2015-10-30 10:39:12 · 2686 阅读 · 4 评论 -
HTTP协议浅谈
待续原创 2015-02-26 18:13:41 · 2594 阅读 · 0 评论 -
TCP/IP协议浅谈
待续原创 2015-02-26 18:14:28 · 2666 阅读 · 0 评论 -
Code Review工具Jupiter的使用
Jupiter里,代码评审(code review)分为4个流程Configuration(配置):review发起者设置“Review ID”,指定要评审的代码,参与代码评审的人员,要讨论的问题等等。Individual review(个人评审):每个人独自审查代码,把可能出现问题的代码加入checklistTeam review(团队评审):大家在一起讨论之前检查出的问题代码,并决定如转载 2015-01-04 18:59:52 · 5955 阅读 · 8 评论 -
前端工程与性能优化
每个参与过开发企业级web应用的前端工程师或许都曾思考过前端性能优化方面的问题。我们有雅虎14条性能优化原则,还有两本很经典的性能优化指导书:《高性能网站建设指南》、《高性能网站建设进阶指南》。经验丰富的工程师对于前端性能优化方法耳濡目染,基本都能一一列举出来。这些性能优化原则大概是在7年前提出的,对于web性能优化至今都有非常重要的指导意义。 然而,对于构建大型we转载 2015-01-20 11:31:20 · 2898 阅读 · 4 评论 -
浏览器内部工作原理
英文原文:How Browsers Work: Behind the Scenes of Modern Web Browsers一、介绍 浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。 将讨论的浏览器 今天,有五种主流浏览器——IE、Firefox、Safari、转载 2015-01-12 11:01:58 · 2878 阅读 · 4 评论 -
Quartz Cron
如果想要使用定时任务如Quartz,则必须了解其Cron表达式。与正则表达式规定字符串格式类似,Cron以一种十分简洁的方式,定义了时间间隔的规则:在哪个时刻,或者,隔了多长时间。如果使用过类似谷歌日历等事件管理的软件,你会发现Cron实际上更像谷歌日历中事件触发规则的抽象表达。CronTrigger CronTriggers往往比SimpleTrigger更有用,而非Simpl原创 2014-12-22 23:59:23 · 3091 阅读 · 7 评论 -
近况及稍后
从本次入职到现在,因为项目时间很紧,博客没有及时更新,原创 2014-12-22 23:30:53 · 2899 阅读 · 11 评论 -
MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
初识 MyBatis是一款一流的支持自定义SQL、存储过程和高级映射的持久化框架。MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果。MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素、Map接口和POJOs(普通java对象)到数据库中的记录。简介 每个MyBatis应用程序主要都是使用SqlS转载 2015-01-26 17:16:26 · 2884 阅读 · 6 评论 -
Java内存泄露的理解与解决
Java内存管理机制在C++ 语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(garbage colle转载 2015-07-23 16:58:43 · 2779 阅读 · 2 评论 -
synchronized 与 Lock 的异同
最近在做一个监控系统,该系统主要包括对数据实时分析和存储两个部分,由于并发量比较高,所以不可避免的使用到了一些并发的知识。为了实现这些要求,后台使用一个队列作为缓存,对于请求只管往缓存里写数据。同时启动一个线程监听该队列,检测到数据,立即请求调度线程,对数据进行处理。 具体的使用方案就是使用同步保证数据的正常,使用线程池提高效率。 同步的实现当然是采用锁了,java中使用锁的两个基本工具是转载 2015-07-21 15:02:48 · 4177 阅读 · 2 评论 -
RESTful APIs
介绍说RESTful之前,先说说其它的问题。网站定位?CS软件,我们称之为软件,不涉及到RPC时,对数据和业务都是用面向对象的方式处理,那么网站算不算软件?面向对象?Java语言本身是面向对象的,经过Hibernate、Mybatis等ORM框架,数据操作也是面向对象的,还有什么没有被OO?不觉得http://ip:host/deleteUserByCidAndName?cid=xx&name原创 2015-05-13 18:12:06 · 4048 阅读 · 3 评论 -
MySQL server has gone away 问题的解决方法
mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了。 造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分转载 2015-04-17 09:24:03 · 6355 阅读 · 8 评论 -
如何更好地学习dubbo源代码
Dubbo的官方首页在这里:http://code.alibabatech.com/wiki/display/dubbo/Home 很荣幸,作为这样一款业界使用率和好评率出众的RPC框架的维护者,今天这个文章主要是想帮助那些热爱开源的同学,更好的来研究dubbo的源代码。一、Dubbo整体架构 1、Dubbo与Spring的整合 Dubbo在使用上可以做到非常简单,不管是转载 2015-04-16 18:37:16 · 4230 阅读 · 5 评论 -
MySQL的语句执行顺序
MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过相应的步骤。 下面我们来具体分析一下查询处理的每一个阶段:FORM:转载 2015-04-03 11:08:03 · 2591 阅读 · 6 评论 -
Spring AOP: 织入的顺序
Spring AOP 可以管理多个的切入顺序.转载 2015-03-27 15:21:45 · 4948 阅读 · 3 评论 -
再说Servlet
概述 Servlet也是JavaEE的一种规范,位于javax.servlet下,Servlet规范还包含Filter。该包下分为两部分:servlet有关和http有关。 为什么会有两部分?设计该规范时认为Servlet是一种服务模型,不应与协议耦合,因此就抽象出了一个 javax.servlet,同时提供一套基于HTTP协议上的Servlet扩展,当然就现在看,还没有基于其原创 2014-08-07 15:10:47 · 1677 阅读 · 3 评论 -
再说JDBC
上篇文章《再说Java EE》说明了一下什么是规范,有什么作用,这篇文章来细说一下JDBC。JDBC JDBC(Java Database Connection)也是Java EE中的一个规范,所谓规范是一组接口,如JDBC接口包含在java.sql及javax.sql包中,其中java.sql属于JavaSE,javax.sql属于JavaEE,部分如下图:原创 2014-08-01 15:22:38 · 2055 阅读 · 11 评论 -
再说Java EE
说到JavaEE(以前叫J2EE)是什么,你可能回答:JavaEE是一组规范,这么说是没错,但是自己不觉得这个答案很大、很空么?什么又是规范?规范能组成应用么?能在JVM中跑起来么?要理解这些,先得从什么是规范说起。规范 因为Java开源,任何开发者都能写代码,然后提供给其他人使用,以数据库访问为例,现在有MySQL、Oracle两家数据库厂商,各自用java写自己的数据库访原创 2014-07-31 21:36:17 · 1780 阅读 · 9 评论 -
Java反射原理
classforname原创 2014-06-29 18:08:31 · 1746 阅读 · 4 评论 -
Java反射的应用
反射在java中的应用原创 2014-07-13 09:54:40 · 2028 阅读 · 6 评论 -
JVM概览
JVM概览原创 2014-07-22 21:26:27 · 1325 阅读 · 4 评论 -
事务的一阶段提交协议和二阶段提交协议
事务日志原创 2014-09-04 09:48:56 · 6577 阅读 · 13 评论 -
再说JNDI
说到JNDI,即熟悉又陌生,熟悉在经常使用,如EJB3.0中的@EJB注入,底层实现即是JNDI的方式;喜闻乐见的:Context ctx=new InitialContext();Object obj=(Object)ctx.lookup("java:obj");更是最常用的方式。说它陌生,是因为,对于JNDI,我们仅限于基本的使用,本文就是带领大家进入JNDI分析阶段。JNDI作用原创 2014-08-16 08:24:04 · 2314 阅读 · 5 评论 -
memcached基础
memcached是什么?memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为 mixi、 hatena、 Facebook、 Vox、LiveJournal等众多服务中 提高Web应用扩展性的重要因素。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在转载 2014-10-08 22:17:49 · 2887 阅读 · 7 评论 -
Hibernate对比MyBatis
最近做了一个Hibernate与MyBatis的对比总结,希望大家指出不对之处。第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。MyBatis 参考资料官网:http://w转载 2014-10-08 21:53:13 · 1461 阅读 · 7 评论 -
Java集合中对象排序
Java API针对集合类型排序提供了两种支持:java.util.Collections.sort(java.util.List)java.util.Collections.sort(java.util.List, java.util.Comparator) 第一个方法要求所排序的元素类必须实现java.lang.Comparable接口;第二个方法要求实现一个java.u原创 2014-10-08 21:54:19 · 3987 阅读 · 7 评论 -
再说JTA和JTS
事务是编程中必不可少的一项内容,基于此,为了规范事务开发原创 2014-09-02 19:26:51 · 5075 阅读 · 15 评论 -
再说注解
当今的各种框架:Hibernate、Struts、Spring等,包括EJB,现在都支持注解形式,注解相比XML配置而言确实更为简洁,本文注解 从形式上看,注解是类似注释,它为代码提供了一种新的标识方式,可以在编译器先定义、使用,等到运行时再去解析这些注解对应的含义。在JDK1.5中引入,现在的JDK已经把注解的地位提升到和二进制码相同,当然如果你稍微关注过注解,你应该知道注解解析过原创 2014-08-16 08:25:58 · 1911 阅读 · 11 评论 -
设计模式六大原则
目录:设计模式六大原则(1):单一职责原则设计模式六大原则(2):里氏替换原则设计模式六大原则(3):依赖倒置原则设计模式六大原则(4):接口隔离原则设计模式六大原则(5):迪米特法则设计模式六大原则(6):开闭原则设计模式六大原则(1):单一职责原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题转载 2014-08-09 22:01:45 · 1346 阅读 · 6 评论