- 博客(76)
- 收藏
- 关注

转载 从雅虎到阿里巴巴-----一个程序员的心路历程__雅虎是一个好公司
很早就想写这么一篇文章了。我离开中国雅虎已经一年有余,在中国雅虎工作的那段时光是我最珍贵的回忆之一,和以前的同事吃饭聊天的时候也经常会怀念一下中国雅虎,怀念得多了,就觉得不如写篇文章好好回顾一下。很多事情虽然已经过去,但有些话不说出来,到底意难平。 从 2008年7月份毕业之后加入了中国雅虎,到2009年9月份跟着中国雅虎工程技术部全体人员“被跳槽”到淘宝,我在中国雅虎只呆了一年多的
2013-05-23 11:03:37
4525
1

原创 Spring中配置数据源的4种形式
不管采用何种持久化技术,都需要定义数据源。Spring中提供了4种不同形式的数据源配置方式:spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源,JNDI数据源。1.spring自带的数据源DriverManagerDataSourceXML代码:<bean id="dataSource" cla
2013-02-27 02:16:13
57501

转载 Java 性能优化转载
***Java 性能优化0.Java性能优化[0]:概述 http://blog.youkuaiyun.com/program_think/article/details/39961421.Java性能优化[1]:基本类型 vs 引用类型 http://blog.youkuaiyun.com/program_think/article/details/39961472.Ja
2013-01-17 17:30:09
534

原创 深入Java核心_JVM内存分配&内存使用查看
Java中的内存泄露 当以前分配的一块内存不再使用或不再访问,但系统却没有释放该块内存。那么对于该进程来说,总的可用的内存会减少,这种现象就叫做内存泄漏。预防和减少内存泄露? 1.了解内存是怎么分配的。 2.了解内存是怎么释放的—GC。Java运行时数据区 Runtime Data Area组件:它主要分为二个部分(堆和非堆),GC主要作用于堆。
2013-01-06 11:34:20
1576

转载 分享高手对JAVA程序员成长之路的总结
我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱玩微博,唯独喜欢百度贴吧,潜水很久了,手痒来给新人分享下从新手成长为老鸟的已见,也刷刷存在感,应该不比曝照差吧。首先初识语法的阶段,必须要学会怎么操作对象,操作if和for,操作list set map,然后是线程、IO和jdbc什么的,其余的,若是一时不理解,可以后边需要时再学。这阶段完了,你可
2012-12-14 14:17:24
1480
原创 代码重构 & 代码中的坏味道
1.重构1.1 为什么要重构 1.1.1 改进程序设计 程序员为了快速完成任务,在没有完全理解整体架构之前就开始写代码,导致程序逐渐失去自己的结构。重构则帮助重新组织代码,重新清晰的体现程序结构和进一步改进设计。 1.1.2 提高程序可读性 容易理解的代码很容易维护和增加新功能。代码首先是写给人看的,然后才是计算机看的。 重构是一个Code Rev
2013-06-27 16:31:52
1871
原创 设计模式系列之四_策略模式 和 模版方法模式(Template method)
1.策略模式1.1 策略模式 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 1.2 策略模式的组成 (
2013-03-12 16:28:14
4533
原创 设计模式系列之三_代理模式(Proxy)
1.什么事代理模式(Proxy Pattern) 23种java常用设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。类图如下:2.代理模式中涉及到的三个角色 (1)抽象角色:声明真实对象和代理对象的共同接口。 (2)真实角
2013-03-12 11:08:31
1085
原创 设计模式系列之二_责任链模式(Chain of Responsibility)
1.职责链模式定义 为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。2.Chain of Responsibility模式主要涉及两个角色 1)抽象处理者角色(Handler):它定义了一个处理请求的接口。当然对于链子的不同实现,也可以在这个角色中实现后继链。 2)
2013-03-12 10:05:10
1231
原创 Lucene In Action 学习笔记(一)
1.1 怎样应对信息爆炸时代 信息检索技术 1.2 Lucene是什么1.2.1 Lucene是什么 Lucene是一款高性能的,可扩展的信息检索工具库。信息检索是指文档搜索,文档内信息搜索,文档相关元数据操作。 信息检索(Information retrieval) 使用lucene后,你会发现它为你提供了一套#简单而强大的核心API#。1.2.
2013-03-11 10:17:09
2244
原创 linux 常用命令分类整理
1.系统的关机、重启以及注销 shutdown -h now 关闭系统(1) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间关闭系统 shutdown -r now 重启(1) init 0 关闭系统(2) telinit 0 关闭系统(3) reboot 重启(2)
2013-03-07 11:02:22
5257
原创 软件开发模式介绍和对比(瀑布、迭代、敏捷等)
1.瀑布模型 1.1 瀑布模型介绍 1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。 1.2 瀑布模型核心思想 瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件
2013-03-06 16:42:23
45193
转载 Java几款性能分析工具的对比
1.程序的性能 在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能分析,自然也要用到一些分析工具。Java有许多的性能分析工具,可以帮助我们弄清楚这个问题,但是我
2013-03-06 11:22:20
1110
原创 Sql优化系列之(1)__where子句条件优化
1.为什么要进行SQL优化 系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性。2.where子句条件优化2.1 SQL语句用大写: 因为oracle总是先解析sql语句,把小写的字母转换成大写的再执行。2.2 W
2013-03-04 17:55:55
11691
原创 Sql优化系列之(2)__索引没有被使用
1.为什么要进行SQL优化 系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性。2.劣质的sql语句 在多数情况下,Oracle使用索引来更快地遍历表,优化器主要根据定义的索引来提高性能。但是,如果在SQL语句的
2013-03-04 16:45:17
3219
原创 Java 中常用的数据源
数据源:存储了所有建立数据库连接的信息。就象通过指定文件名你可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。1.JNDI方式创建DataSource 1.1 配置数据源的相关连接信息,该配置可以在Tomcat安装目录下的conf/context.xml文件中配置。其配置如下: …… <Resource name
2013-02-26 16:33:50
7129
原创 Java 笔试题(1)
1.面向对象的特征有哪些方面? 封装,继承,多态,抽象。2.String是最基本的数据类型吗? 不是。3.Java中有没有goto? goto在java中是保留字,现在没有在Java中使用。4.int 和 Integer的区别? int是Java的原始数据类型,Integer是Java为int提供的对应的封装类。5.String中有没有len
2013-02-24 16:52:08
1106
原创 Java基础学习笔记之六(3)_常用类_File类
File类 An abstract representation of file and directory pathnames. #文件#和#目录路径#名的抽象表示形式。 常用构造: 1.File(String pathname); Creates a new File instance by converting the given pathname
2013-02-22 17:40:05
944
原创 Java基础学习笔记之六(2)__常用类StringBuffer
StringBuffer介绍 A string buffer is like a String, but can be modified. 一个类似于 String 的字符串缓冲区,但可以修改 (可变的字符序列) StringBuffer 常用方法: 1.public StringBuffer append(...); Appends the strin
2013-02-22 17:37:11
624
原创 JS 操作Cookies
Cookies1:功能:保存一小块数据2:常用Cookies属性:expires,path,domain,secure3:写入Cookies:格式 name=value4:用escape编码,unescape解码 5:用obj.setTime(obj.getTime+60*1000)设置过期时间6:cookie保存的数据不能超过4000bytes7:cookie读取
2013-02-01 15:50:13
946
原创 Java基础学习笔记之六(1)__常用类String
String 类 Strings are constant; their values cannot be changed after they are created. String 代表不可变的字符序列。备注:在内存中的位置String str = "abc"; 1.引用str放在栈中 2.字符串常量放在常量池(字符串常量池)中,第一次创建放入池中,第二次使
2013-01-31 20:00:46
2656
原创 OSCache 学习笔记(2)__缓存整个页面 & 缓存局部页面
1.缓存整个页面 在OSCache组件中提供了一个CacheFilter用于实现页面级的缓存。主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成PDF格式文件/报表、图片文件等的页面,不仅减少了数据库的交互、减少数据库服务器的压力,而且对于减少web服务器的性能消耗有很显著的效果。 该功能是通过在web.xml中进行配置来决定缓存哪一个或者哪一组页面,而且还可以设置
2013-01-31 17:51:12
4901
原创 OSCache 学习笔记(1)__OSCache的作用 & 在项目中集成OSCache
OSCache 的应用:1.缓存对象(将一个对象以key-value的形式放入缓存中) putInCache(String key,Object content); getFromCache(String key); removeEntry(String key); 主要通过GeneralCacheAdministrator类来实现。2.对局部页面进
2013-01-31 16:51:28
8164
原创 Log4j学习笔记(2)_log4j配置示例&Spring集成log4j
log4j配置示例#定义根日志级别和输出端(定义了两个输出端)log4j.rootLogger=ERROR,CONSOLE,Orclight#定义第一个输出端,输出到控制台log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout=org.apache.log4j.Pat
2013-01-31 11:12:46
36769
原创 Log4j学习笔记(1)_log4j 基础架构&配置项解析
Log4j的组成: Log4j由三个重要的组成构成:日志记录器(Loggers),输出端(Appenders)和日志格式化器(Layout)。1.日志记录器(Loggers):控制要输出哪些日志记录语句,对日志信息进行级别限制。2.输出端(Appenders):指定了日志将打印到控制台还是文件中。3.日志格式化器(Layout):控制日志信息的显示格式。类图结构如下,
2013-01-31 10:47:03
3842
转载 深入Java核心 Java 内存泄露原因
Java中内存的管理 Java的内存管理就是对象的分配和释放问题。在Java中,内存的分配是由程序完成的,而内存的释放是由垃圾收集器(Garbage Collection,GC)完成的。什么是内存泄露 当以前分配的一块内存不再使用或不再访问时,但却并没有释放它;那么对于该进程来说,总的可用的内存会减少,这时就出现了内存泄漏。在Java中导致内存泄露的主要原因
2013-01-30 09:58:03
729
转载 设计模式系列之一__单例模式(2)__各种实现的优缺点
1、时间和空间效率比较上面两种写法:懒汉式是典型的时间换空间,也就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间。当然,如果一直没有人使用的话,那就不会创建实例,则节约内存空间。饿汉式是典型的空间换时间,当类装载的时候就会创建类实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要再判断了,节省了运行时间。2、线程安全(1)从线程安全性上讲,不加同步的
2013-01-29 09:24:08
699
原创 设计模式系列之一__单例模式(1)__基本定义以及实现
单例模式定义 单例模式(singleton)顾名思义,就是一个类只有一个实例。 作为对象的创建模式[GOF95], 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的实现原理 1.一个类能够被创建多个实例,问题的根源在于类的构造方法是公开的,在类的外部可以通过构造方法创建多个实例。 2.要想控制一个类只被创建一
2013-01-29 01:58:58
806
原创 java基础学习笔记之十--反射(1)
***参考文章1.Java反射研究(1)———常用API http://blog.youkuaiyun.com/xiazdong/article/details/6950277
2013-01-28 17:55:25
520
转载 Java编程中“为了性能”需做的26件事
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用
2013-01-28 11:24:57
559
原创 Servlet 学习笔记
---Servlet 学习笔记---1.Sevlet 工作流程 1.用户用浏览器提交请求--http协议的文本(包括了很多信息,甚至客户端的所用操作系统的信息) 2.Web服务器(比如:Tomcat),把该请求封装成HttpSevletRequest,同时封装一个HttpServletResponse对象用来输出结果 3.通过web.xml中的配置,根据请求找到后台对
2013-01-26 21:22:49
638
原创 Java基础学习笔记之七(4)--Iterator&Comparable
***Iterator 接口 Iterator对象称作迭代器用以方便的实现对容器内元素的遍历操作。 1.boolean hasNext() Returns true if the iteration has more elements. 如果迭代器中还有元素可以迭代,则返回true (判断游标右边是否还有元素可以迭代) 2.E next()
2013-01-26 10:47:28
537
原创 Java基础学习笔记之七(3)--Map接口
***Map接口 An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。 map中key不能重复,用hashCode进行比
2013-01-26 10:45:33
1366
原创 Java基础学习笔记之七(2)--List&Set
***List 接口 An ordered collection (also known as a sequence).Unlike sets, lists typically allow duplicate elements. List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,而且是可以重复的。 List容器中的元素都对应一个整数型
2013-01-26 10:43:24
709
原创 Java基础学习笔记之七(1)--Collection接口&Collections集合工具类
***容器API Collection接口定义了存取单个对象的方法,其子接口分别定义存储的方式和形式。 1.List:存储的数据有顺序,可以重复。 2.Set:存储的数据没有顺序,并且不可以重复 3.Map接口定义了用来存储"键值对" key-value的方法 ***Collection A collection represents a group
2013-01-26 10:39:47
2162
原创 Web应用乱码(2)__原因以及解决方案详解
---Servlet 中文乱码问题以及解决方案--- Servlet中乱码分为request乱码和response乱码。一.request中文乱码 request请求分为post和get,产生乱码的原因大致都一样,但是对于不同的请求方式解决方式不一样。***Post请求执行过程: 1.浏览器发出http请求(请求按浏览器的默认码表编码--一般是GB2312)
2013-01-25 15:26:48
849
转载 深入Java核心 Java 内存分配(2)_字符串的存储
***字符串常量池 String是一个特殊的包装类数据。可以用: String str=new String("abc"); String str="abc"; 两种的形式来创建。 1.第一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。 2.而第二种是先在栈中创建一个对String类的对象引用变量str,然后通过符号引用去
2013-01-25 11:25:16
577
转载 深入Java核心 Java 内存分配__栈和堆(1)
***深入Java核心 Java内存分配***1.一般Java在内存分配时会涉及到以下区域 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。 堆:存放用new产生的数据。 静态域:存放在对象中用static定义的静态成员。 常量池:存放常量。 寄存器:我们在程序中无法控制。 非RAM存储:硬盘等永久存储空间。 2
2013-01-25 10:29:33
582
原创 Java基础学习笔记之一_JVM参考文章
***参考文章1.JVM学习之:内存的分配以及回收 http://blog.youkuaiyun.com/sun7545526/article/details/78933102.JVM学习之:GC的算法简述 http://blog.youkuaiyun.com/sun7545526/article/details/78669753.JVM学习之:GC的算法的具体实现(垃圾收集器) http://
2013-01-22 13:51:01
554
原创 OSCache 入门中的入门
1.OSCache是什么? OSCache是个一个被广泛采用的高性能的J2EE缓存框架,由OpenSymphony设计,它是一种开创性的缓存方案。OSCache不但提供了对普通的Java对象的缓存解决方案,它还提供了对JSP页面的内存缓存功能。2、OSCache的特点 (1) 缓存任何对象:你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存
2013-01-21 18:39:43
1138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人