
Language
文章平均质量分 72
Ant
生活每一天都是挑战,离成功还差得很远!
展开
-
初识AngularJS
在使用了AngularJS重构团队内部的平台之后,一直想总结点什么,这里先说说学习和使用AngularJS的感受。AngularJS是一款开源的JavaScript MV*(MVW、MVVM、MVC)框架,目前由Google维护。AngularJS弥补了HTML在构建应用方面的不足,其通过使用标识符(directives)结构,来扩展Web应用中的HTML词汇,使开发者可以使用HTML来声明动态内原创 2013-11-15 17:29:20 · 2564 阅读 · 0 评论 -
如何架构老版本JDK环境的系统
今天继续做机场的项目,开始架构系统首先要针对环境选择合适的开发包,由于早已多次确认生产环境下是websphere6.0而不是6.1,所以只能针对JDK1.4的版本之内选择开发包。这里解释一下,IBM的Websphere6.0只支持JDK1.4,到6.1以后才支持JDK5,当时火星人说了句很掉价的话:Websphere升级到6.1应该拿JDK5重新编译一下源码就可以了。强烈鄙视一下!要知道从JDK1原创 2009-11-25 22:50:00 · 1672 阅读 · 1 评论 -
【转】Socket基础知识分享
Socket Programming Considerations写Socket程序的时候需要注意设置下面的timeout,避免对方没有响应的时候,导致Socket程序挂起或等待时间过长 1.1 Accept TimeoutAccept timeout 仅对ServerSocket有用。ServerSocket 使用accept()方法来监听转载 2010-08-01 15:44:00 · 3962 阅读 · 0 评论 -
Thoughtworks XStream介绍
Xsteam IntroXStream是thoughtworks开发的开源产品,采用的是xpp来进行xml和对象之间的转换。它不需要schema或其他的mapping文件就可以进行java对象和xml文件之间的转换,API调用起来非常方便,并且扩展功能强大。Offical site: http://xstream.codehaus.org/index.html 官方介绍:XStre原创 2010-09-23 00:23:00 · 6175 阅读 · 0 评论 -
【转】关于Java多线程的思考
尽管很少有Java开发者能够忽略多线程编程,且Java平台类库支持它,甚至于更少的开发者能有时间去深入学习线程。相反,我们只是泛泛地学习线程,如果需要的话,会向我们的工具箱中添加新的技巧和技术。通过这种方法你可能会构建且运行好的应用程序,但你还能做得更好。理解Java编译器和JVM的线程特性,可以帮助你编写更高效,性能更佳的Java代码。 在5 things系列的本期文章中,我会转载 2010-11-21 21:02:00 · 2529 阅读 · 0 评论 -
重温控制反转和依赖注入
记得刚大学毕业的时候在上海实习,每天花很多时间来研究Java技术,无意间独到了一篇讲解控制反转和依赖注入的文章,作者是Martin Fowler。那时候刚学习EJB和Spring,只是觉得文章里谈到的设计思想是一种很新鲜的尝试,而且又正好在Spring框架中大量的被使用,所以自己也反复的开始使用并坚持针对接口编程、解耦合等思想。不知不觉五年过去了,突然又在网上看到这篇文章,感概狼多,于原创 2012-04-05 23:15:01 · 2126 阅读 · 0 评论 -
Scala学习笔记(二)Case的作用
这次主要是为了理解Case Class,习惯了Java的编程方式,会觉得Case Class这种写法有一点怪怪的。看看官方的解释是什么吧:Case classes and case objects are defined like a normal classes or objects, except that the definitions is prefixed with the modi原创 2012-02-10 13:50:26 · 2836 阅读 · 0 评论 -
Java NIO杂谈
早期的I/O通信使用Stream编程实现,流I/O可用于内外部通信但需要把对象转换成byte。NIO使用了块级I/O,其目的是为了让 Java 程序可以实现高速 I/O 而无需编写自定义的本机代码。NIO 将最耗时的 I/O 操作(即填充和提取缓冲区)转移回操作系统,因而可以极大地提高速度。1) 面向流I/O的系统,一次处理一个字节的数据。一个输入流每次会读入一个字节的数据,一个输出流原创 2012-04-09 14:14:15 · 1209 阅读 · 0 评论 -
【转】如何保护Java代码
在java代码中往往包含着一 些非常敏感的信息,有些关系到开发者的利益,有些可能因为使用环境不同而关系到软件用户的利益,于是,java程序是赤膊上阵还是全副武装这个现实问题就 摆在了java开发人员的面前,所以在这种情况下,从开发商和用户两方面角度考虑,都非常有必要对java程序进行保护。以下从技术角度就常见的保护措施 和常用工具来看看如何有效保护java代码:1. 将jav转载 2010-07-09 17:04:00 · 3769 阅读 · 0 评论 -
Sun JVM GC总结【Final】
导言SUN官方发布的关于垃圾收集性能调整的文档,在不同JDK下有不同的版本,文档内容大同小异。本文档基于SUN 1.3.1版本调优文档创作,添加了关于1.4.2中可选垃圾收集器的内容。而是加入了我对于GC的一些思考,同时删除了原文档作者不合时宜的幽默。本文档前半部分内容由暴风尖塔独立完成,后半部分引用了原dev2dev版主伍昊献的翻译这里给出官方文档在不同版本之下的链接转载 2009-12-18 11:11:00 · 4606 阅读 · 0 评论 -
Memcached
曾经思考过Oracle和Mysql这两种数据库的性能差别到底体现在哪里,给人直观的感觉是启动Oracle的服务会消耗大量的内存,在SQL Server2000上不存在这种内存消耗,可是到了SQL Server2005发现了跟Oracle同样的现象。其实稍微分析一下其中的原理,还是满简单的。 计算机发明以来就有内存和CPU的概念,CPU执行计算,内存存储数据。虽然CPU有指令寄存器等但从原创 2008-11-26 11:08:00 · 1488 阅读 · 0 评论 -
Scala学习笔记(四)react/receive对比
这回继续研究Actor的应用,我发现scala-lang里关于Actor的Advance Example很有代表性,所以专门花时间研究一下这个例子,以下我经过我修正后的代码并且加入了一些关键的debug信息,因为原始的版本无法在Scala2.8上运行:import scala.actors._import scala.actors.Actor._object Message { de原创 2012-02-11 20:22:17 · 3484 阅读 · 1 评论 -
从JVM Instructions看Java
我们都知道Java程序是运行在JVM里面的一段一段字节码,JVM需要做的就是把这些字节码转换成机器语言,使得Java程序能正确的运行在计算机上,说的更底层一点就是正确分配内存,执行CPU计算并且释放内存。所以任何一个程序如果能做到以下几件事:读入Java Class文件、分析Class文件格式、为变量对象方法动态分配内存、管理这些变量和内存的回收,都可以做为我们所谓的虚拟机为Java程序员服务。从原创 2008-09-09 12:20:00 · 1722 阅读 · 0 评论 -
Python里的闭包和AOP
习惯了写Java和JS代码,突然换成Python还真不习惯,最近在书上看到一段挺有意思的Python代码,才真心感觉到Python长盛不衰的价值。在很多语言里,如果在一个内部函数里,对外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。定义在外部函数内的但由内部函数引用或者使用的变量被称为自由变量。闭包的词法变量不属于全局或者局部作用域,而属于一种“流量”的原创 2013-10-19 22:21:50 · 2697 阅读 · 0 评论 -
HTML5 学习小结
HTML5 小结使用HTML5也是断断续续的有些历史了,但是没有系统的总结过,最近发现公司的图书馆有不少藏书,就借了一本HTML5+CSS3的快速阅读了一下,重温了一些知识,顺便做一下小结: HTML5特性相对于传统网页技术来说,首先我们得明白为什么HTML5会出现。它带来的改变和规范并不是一点小改动而已,在网页技术的方方面面,甚至前端后端都有深远的影响。比如:描述性更强的新标签,原创 2013-06-04 14:46:36 · 6078 阅读 · 1 评论 -
【转】JGroup 介绍
JGroupJGroups is a toolkit for reliable multicast communication.(Note that this doesn't necessarily mean IP Multicast, JGroups can also use transports such as TCP).It can be used to create group转载 2011-04-22 22:44:00 · 1794 阅读 · 0 评论 -
HashMap以及hash冲突知识
HashMap主要是用数组来存储数据的,我们都知道它会对key进行哈希运算,哈系运算会有重复的哈希值,对于哈希值的冲突,HashMap采用链表来解决的。HashMap是线程不安全的,如果被多个线程共享的操作,将会引发不可预知的问题,据sun的说法,在扩容时,会引起链表的闭环,在get元素时,就会无限循环,后果是cpu100%。Open addressing和Chaini转载 2012-04-07 20:26:15 · 3207 阅读 · 0 评论 -
JVM参数设置详解
JVMHeap区域分布:Java Heap分为3个区,Young,Old和Permanent。Young区保存绝大多数刚实例化的对象,当该区被填满时,触发局部GC,局部GC会将Young区清空,仍被引用的对象将被移到Old区。当Old区再被塞满,就会触发FullGC,回收最后能回收的空间。Permanent区全称是PermanentGeneration space,永久区,用于存放Clas原创 2010-01-05 10:11:00 · 6025 阅读 · 0 评论 -
【转】Java中的同步方法和原理
Java的内存模型中Thread会附有自己的堆栈,寄存器,必要时需要和主存即heap之间同步。 可以使用Synchornized关键字和Concurrent包中的Lock可以保证线程互斥和可见性。 互斥性体现在类锁或者对象锁上,每个对象自身都包含一个监视器,该监视器是一个每次只能被一个线程所获取进入的临界区,可以通过wait和notify来退出和准入临界区。可以看出这是一个生产者-消费转载 2010-07-10 09:46:00 · 1829 阅读 · 0 评论 -
Debug Java Application
Debugger Java Application总结一些关于Java Debug的经验,一般来说Java开发者调试Java程序是通过IDE,比如Eclipse,以Debug方式启动之后,可以在任意行加入断点,待程序运行到这一行的时候会被断点阻塞。众所周知Java程序是以class文件中的字节码方式来运行,JVM负责解读字节码转换成JVM内部指令,如果查阅JVM Specification原创 2010-12-21 21:28:00 · 4843 阅读 · 1 评论 -
Srping+dbcp配置
Apache Commons DBCP是个好东西,实现了DataSource接口,包括数据库连接池管理,好就好在它提供的功能仅此而已,不多不少足够使用。查了一下关于dbcp的配置: #JDBC连接需要用到的四个基本参数(以Oracle为例) jdbc.driverClassName=oracle.jdbc.driver.OracleDriver jd原创 2009-04-19 14:40:00 · 1381 阅读 · 0 评论 -
【转】Java Util Logging技术介绍
1.1 Overview of Control Flow控制流概要 应用程序调用Logger对象来记录日志。(例1.1) Loggers被以一种层次命名形式来组织起来,并且子Logger可能自它们的父Logger中继承一些属性。(例1.2) 应用程序调用Logger对象来记录日志。这些Logger对象定位LogRecord对象,这是一些被传送到Handler对象发布的对象(例1转载 2008-12-29 14:02:00 · 1825 阅读 · 0 评论 -
Spring总结之AOP
AOP(Aspect Oriented Programming)面向切面编程,简单来说就是实现横切(crossing)的工具。在一个程序的很多部分重复使用的某一块逻辑我们可以将其抽离出来作为一个切面,重构为一个独立的类,通过声明式配置在那些组件的方法调用前后织入这个切面。AOP将作为OOP的一种辅助,使得代码更加整洁灵活、逻辑更加清晰。 AOP的种类:静态和动态。静态AOP是指横切的逻辑是原创 2008-09-20 13:26:00 · 2218 阅读 · 1 评论 -
JXTA介绍【转摘】
摘要:JXTA是一个用来解决P2P计算的开放的网络计算平台。JXTAP2P平台使开发者在其上建立P toP的应用。2001年4月,发布了第一个源型实现,它是基于JDK1.1.4的。分布式计算发展非常迅速,新技术不断出现,现在出现的P2P技术,让用户可以直接连接到其他用户的计算机,进行文件共享与交换,另外P2P在深度搜索、分布计算、协同工作等方面也大有用途。 现有转载 2008-12-02 21:39:00 · 1736 阅读 · 0 评论 -
SWT初识
SWT是IBM开发一套跨平台的GUI开发框架。它解决了AWT和Swing框架中的问题。SWT框架使用JNI访问本地窗口组件(native widgets),如果一个窗口组件在主机平台上不能获得,那么SWT会模拟这个不能获取的窗口组件。 Display, Shell和Widgets是一个SWT应用程序的基础材料。Displays用于管理事件循环(event loops)和控制UI原创 2008-10-13 08:40:00 · 1354 阅读 · 0 评论 -
Java中如何使用Volatile变量
原文出处:http://www.ibm.com/developerworks/cn/java/j-jtp06197.html简介: Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践转载 2012-11-22 16:18:50 · 1770 阅读 · 0 评论 -
再议JVM的垃圾回收
在JDK 5.0这个版本中就存在四种垃圾回收器(Collector),一般我们不会去选择配置特定的回收器,就会使用默认的叫做Serial Collector。其他三种分别是Throughput Collector、ConcurrentCollector和Train Collector(最老的向前兼容版本)。 大部分情况下是不需要关注特定的GC种类,除非这个应用需要在垃圾回收这方面展现出原创 2009-08-02 21:54:00 · 1564 阅读 · 3 评论 -
关于Hibernate的缓存
关于Hibernate的缓存因为项目用到了Hibernate3.x版本,所以不又得重温了一下关于Hibernate的技巧和原理,其中主要是针对它的缓存进行那个了一番调研,于是想写点什么留下一点纪念。 (一) Hibernate的缓存概念Hibernate是干嘛的不用再解释了,它有两级缓存也是大家都知道的。简单来说一级缓存就是从你拿到Hibernate的session并且open原创 2009-07-13 23:22:00 · 1700 阅读 · 2 评论 -
SWT技术总结【显示效果篇】
从前一直从事Web开发,研究了很多Js和CSS做出来的效果,不过随着Flash越来越流行跟强大,似乎在现实特效上将来还是Flash的天下,但数据处理上不知道ActionScript是否能够取代Js呢?不过需求只是简约风格的网站的话,Js+CSS就足够了。最近一直在用SWT做东西,虽然桌面系统不需要做得太花哨,但该有的效果和用户体验是必须的,所以就总结了一下桌面开发中如何用SWT实现Web界面类似的原创 2008-12-22 11:59:00 · 3963 阅读 · 0 评论 -
SWT小技巧
SWT的一些小技巧(一) 多线程访问SWT的控件SWT中窗口开始show up之后display控件就要开始循环监视events loop了,很多应用程序需要开socket或者使用http协议跟外界通信,收到回复之后再在界面上产生回调行为。而通信逻辑通常封装在另一个线程里,如果直接调用SWT控件会抛出Invalid Thread Access异常,好在SWT提供了多线程访问控件,排队处原创 2009-03-28 11:16:00 · 4209 阅读 · 1 评论 -
读书笔记(J2EE Development without EJB)
《J2EE Development without EJB》Ø 在某种意义上,J2EE是现有中间件技术的发展演化。Ø J2EE和EJB的很多问题都源自它们“以规范为驱动”的本质,历史告诉我们:最成功的标准都是从实践中发展来的,而不是由哪个委员会创造出来的。Ø 我们应该尽量降低架构的复杂度,只为现实的(和合理可预见的)需求提供支持,不要试图预先把所有的问题都考虑进去…重视架构原创 2008-10-15 12:39:00 · 1406 阅读 · 0 评论 -
自制ORM框架—JdbcUnit总结
长期以来繁琐的JDBC代码使得程序员疲惫不堪,这才导致了ORM思想下各种持久层框架的出现,例如OpenJPA、Hibernate、iBatis、Apache OJB等等。其中主流框架的有三种分别是Apache的OpenJPA、JBoss的Hibernate和Sun的EJB 3.0。究其本质,不外乎都是为了完成3件事:1、映射数据库表与Java Class,Class的Instanc原创 2008-10-13 11:29:00 · 1751 阅读 · 0 评论 -
Spring总结之事务管理
传统的J2EE应用中,事务管理是跟EJB绑定在一起来的,那个时候大部分人使用EJB的Local SLSB仅仅是为了使用它的声明式事务管理罢了。随着技术不断向前发展,例如Spring的出现使得很多J2EE的核心理念不得不开始自省,在Spring的冲击之下完善自我变得更合理。于是JTA不在专属于EJB、与之相对的Local Transaction也在更适合的情况下得到重视。这里简单总结原创 2008-09-16 23:37:00 · 2077 阅读 · 0 评论 -
Spring总结之Web MVC
MVC是Web开发的一种流行架构思想,为了改正以前代码逻辑视图混乱不堪的状况而总结出来的一种模式。在最早是受到观察者模式的启发(观察者模式类似于Java Swing里的ActionListener)。记得大三还在学校自己泡图书馆的时候Struts是很风靡的MVC框架,也可以说是流行起来的第一个比较标准的MVC实现。在Spring推出之后,Spring自己也提供了一套MVC框架,在工作和学习中二原创 2008-09-18 21:57:00 · 1847 阅读 · 0 评论 -
Spring2.5+OpenJPA的配置
最近总想写点什么,正好研究了一下OpenJPA,大概通读了一下新出的1.2版本的官方文档,然后自己做了一个小例子。因为Spring2.5的推出,增加了许多新特性,市面上关于怎样整合Spring和OpenJPA的书、包括网上文章也特别少。这里打算分享一下自己的例子,希望不足之处大家见谅,欢迎指正切磋技术。简单介绍一下OpenJPA,它是Apache对于Java Persistence A原创 2008-09-06 09:11:00 · 4962 阅读 · 0 评论 -
【转】Socket中的TIME_WAIT状态
Socket中的TIME_WAIT状态在高并发短连接的server端,当server处理完client的请求后立刻closesocket此时会出现time_wait状态然后如果client再并发2000个连接,此时部分连接就连接不上了,用linger强制关闭可以解决此问题,但是linger会导致数据丢失,linger值为0时是强制关闭,无论并发多少多能正常连接上,如果非0会发生部分连接不上转载 2009-11-05 09:35:00 · 1447 阅读 · 0 评论 -
【转】关于Java线程
线程不是进程作为有一定开发经验的程序员来说,在java中实现多线程是一件很容易的事情,你只需要将你的类继承Thread类或者实现Runnable接口就可以。其实线程完全可以理解为一个任务。可以同时运行多个任务的程序,就成为多线程程序。然而线程并非进程。进程包括线程,每一个进程都拥有一套自己的变量,而线程间则共享这套变量。从而带来了很多风险,比如最典型的脏数据。这些以后会讨论。转载 2011-03-12 11:00:00 · 1309 阅读 · 0 评论 -
JAAS介绍【转】
Java Authentication Authorization Service(JAAS,Java验证和授权API)提供了灵活和可伸缩的机制来保证客户端或服务器端的Java程序。Java早期的安全框架强调的是通过验证代码的来源和作者,保护用户避免受到下载下来的代码的攻击。JAAS强调的是通过验证谁在运行代码以及他/她的权限来保护系统面受用户的攻击。它让你能够将一些标准的安全机制,例如Solar转载 2009-04-13 16:54:00 · 2211 阅读 · 0 评论 -
【转】Jaxb官方文档中文翻译
JAXB提供了自动映射XML文档和Java对象的API和工具。JAXB框架可以完成下面的操作: 1、将XML内容Unmarshal成Java表示 2、访问和更新Java表示 3、将XML内容的Java表示Marshal成XML内容 JAXB提供了XML和Java代码之间的高效并且标准的映射。Java开发人员可以使用JAXB来简化开发,提高效率,因为使用JAXB可以写很少的代转载 2009-05-03 12:45:00 · 4132 阅读 · 2 评论 -
JVM简单剖析
近期看了看Java内存泄露的一些案例,跟原来的几个哥们讨论了一下,深入研究发现JVM里面还是有不少以前不知道的细节,这里稍微剖析一下。先看一看JVM的内部结构—— 如图所示,JVM主要包括两个子系统和两个组件。两个子系统分别是Class loader子系统和Execution engine(执行引擎) 子系统;两个组件分别是Runtime data area (运行时数据区域)组件和Nat原创 2009-05-20 11:04:00 · 1392 阅读 · 0 评论