摘要: 成为Java高手的25个学习要点 1. 你需要精通面向对象分析与设计(OOA/OOD)、设计模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是class、object、interaction以及statediagrams. 你需要学习Java语言的基础知识以及它的核心类库(collections、serialization、streams、networking、 multithreading、reflection、event、handling、NIO、localization以及其他)。 你应该了解JVM、classloaders、classreflect以及垃圾回收的基本.. 阅读全文
posted @ 2012-04-15 15:33 OrionBox 阅读(166) 评论(0) 推荐(0) 编辑
摘要: (1)所有数据都应该隐藏在所在的类的内部。 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。 (3)尽量减少类的协议中的消息。 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]. (5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。 如果类的两个方法有一段公共代码,那么就可以创建一个防止这些公共代码的私有函数。 (6)不要以用户无法使用或不感兴趣的东西扰乱类的公有接口。 (7)类之间应该零耦合,或者只有导出耦合关系。也即,一个类要么同另一个类毫无关系,要么只使用另一个类的... 阅读全文
posted @ 2012-04-15 15:32 OrionBox 阅读(135) 评论(0) 推荐(0) 编辑
摘要: Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。 下面介绍了三十条规则。 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字 母。例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。 Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是... 阅读全文
posted @ 2012-04-15 15:24 OrionBox 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 程序员的成长经历往往很相似,大部分的人走过了最前面相同的一段路,而有的人则走得更远。总结自己这些年来的历程,这也许能让年轻的程序员少走一些弯路,成长得更快;或许更好一些,能让大家从中得到一些启发,早日进入优秀程序员的阶段,实现梦想,释放激情。 第一阶段,最初是在学校里学习计算机基础知识,学习经典的程序设计语言,编写测试用的小程序。这个过程可以说是对计算机和程序设计的入门阶段。这个阶段主要是培养了自己对计算机软件的兴趣,打下了良好的计算机基础知识。 第二阶段,而后参加工作,从事计算机软件开发工作。按照工作要求,一边学习,一边编程,终于可以让自己的程序投入运行了。在这个阶段我突然感觉到了自己的.. 阅读全文
posted @ 2012-04-15 15:22 OrionBox 阅读(185) 评论(0) 推荐(0) 编辑
摘要: RSF,不像其他的Java Web框架,主要侧重于标记和网页设计师的作用。网页设计师不会被框架产生的标记而限制,也不是被迫围绕内嵌代码或是伪代码来设计。模板是纯粹的XHTML不需要框架知识来创建或是维护。这个创建了完全分离的显示和Java代码隐藏。网页设计师和开发者可以独立工作,而且不需要协调他们的工作,这个你将在示例程序中看到。 RSF目的在于用零服务器环境创建一个框架,这样可以通过在循环的最后扔掉组件树来节省宝贵的服务器资源。这个有别于很多常见的Java框架,例如JSF,凭借框架执行的第一个动作来恢复使用从先前要求中出现的组件树。Session状态是以此来减小较低利用的服务器资源。 R.. 阅读全文
posted @ 2012-04-15 15:22 OrionBox 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 理想的Java Web开发框架,应该有一个好的IDE开发工具,架构设计清晰简单,容易扩展,使用方便,等等等等。现在Java Web开发框架也不少了,到底哪个好用,下面来大致分析一二: 我使用过JSP、JSF、Struts、Spring MVC、GWT、Scala Lift、Eclipse RAP、Wicket,除了Eclipse RAP外其他的没有展开很深入的了解,只是用这些不同的框架做同一件事然后进行比较,得出下面的结论(个人观点,仅供参考): Java Web开发框架列表 首先单纯使用JSP来开发项目需要考虑的东西太多,开发效率不高。 既然有更圆的免费轮子,干嘛不用? JSF的开发... 阅读全文
posted @ 2012-04-15 15:21 OrionBox 阅读(438) 评论(0) 推荐(0) 编辑
摘要: Java认证:JAVA可移植性广泛应用。软件可移植性指与软件从某一环境转移到另一环境下的难易程度。为获得较高的可移植性,在设计过程中常采用通用的程序设计语言和运行支撑环境。尽量不用与系统的底层相关性强的语言。下面介绍JAVA的可移植性。 一、JAVA作为一种编程语言:源代码可移植性 作为一种编程语言,JAVA提供了一种最简单同时也是人们最熟悉的可移植性–源代码移植。这意味着任意一个JAVA程序,不论它运行在何种CPU、操作系统或JAVA编译器上,都将产生同样的结果。这并不是一个新的概念。人们使用C、C++也可以产生同样的效果。 但是使用C或C++编程人们可以有太多的选择,在许多细节上它都... 阅读全文
posted @ 2012-04-15 15:20 OrionBox 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 这是一道再经典不过的面试题了,我们在各个公司的面试题中几乎都能看到它的身影。final、finally和finalize虽然长得像孪生三兄弟一样,但是它们的含义和用法却是大相径庭。这一次我们就一起来回顾一下这方面的知识。final关键字我们首先来说说final。它可以用于以下四个地方:1. 定义变量,包括静态的和非静态的。2. 定义方法的参数。3. 定义方法。4. 定义类。我们依次来回顾一下每种情况下final的作用。首先来看第一种情况,如果final修饰的是一个基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;如果final修饰的是一个对象,就表示这个变量被赋予的引用是不可变的,这 阅读全文
posted @ 2012-04-15 15:19 OrionBox 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 1.RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,... 阅读全文
posted @ 2012-04-15 15:19 OrionBox 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 每天在写Java程序, 其实里面有一些细节大家可能没怎么注意, 这不, 有人总结了一个我们编程中常见的问题. 虽然一般没有什么大问题, 但是最好别这样做. 另外这里提到的很多问题其实可以通过Findbugs( http://findbugs.sourceforge.net/ )来帮我们进行检查出来. 字符串连接误用 错误的写法: Java代码 1. String s = ""; 2. for (Person p : persons) { 3. s += ", " + p.getName(); 4. } 5. s = s.substring(2); //r 阅读全文
posted @ 2012-04-15 15:18 OrionBox 阅读(562) 评论(0) 推荐(0) 编辑