![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java开发
文章平均质量分 90
badman250
专注分享IT知识技能
展开
-
Java开发者必备的六款工具
Java开发者必备的六款工具摘要:对于初入行的Java开发人员来说,寻找合适的工具是困难的,并且是浪费时间的。而今天我们将列出六款Java程序员必备的工具,其中包括Notepad++、XML Marker、SQL Developer、Jad、Eclipse和Keytool。每一位Java程序员都会有套工具来应对工作上的挑战。多年来,Java程序员使用软件来完成他们的工作。有很多转载 2015-12-14 23:37:09 · 31469 阅读 · 0 评论 -
1.JAVA 编程思想——对象入门
对象入门欢迎转载,转载请标明出处: 如果学JAVA,没有读透《JAVA 编程思想》这本书,实在不好意思和别人说自己学过JAVA。鉴于此,蛤蟆忙里偷闲,偷偷翻看这本传说中的牛书。面向对象编程OOP具有多方面吸引力。实现了更快和更廉价的开发与维护过程。对分析与设计人员,建模处理变得更加简单,能生成清晰、已于维护的设计方案。 这些描述看上去非常吸引人的,不过蛤蟆还原创 2016-04-02 00:17:15 · 32653 阅读 · 0 评论 -
2.JAVA编程思想——一切都是对象
一切都是对象欢迎转载,转载请标明出处: 尽管以C++为基础,但 Java 是一种更纯粹的面向对象程序设计语言正式用它设计之前,必须先将自己的思想转入一个面向对象的世界1 用句柄操纵对象在 Java 里,任何东西都可看作对象。可采用一种统一的语法,任何地方均可照搬不误。注意,尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄”(Handle)原创 2016-04-02 00:18:13 · 30539 阅读 · 2 评论 -
3.JAVA编程思想——第一个 JAVA程序
欢迎转载,转载请标明出处:1 第一个 JAVA程序代码如下:import java.util.*; importjavax.swing.text.rtf.RTFEditorKit;publicclass test { publicstaticvoid main (String[] args) { System.out.pri原创 2016-04-02 00:19:01 · 30617 阅读 · 0 评论 -
4.JAVA编程思想——控制程序流程
欢迎转载,转载请标明出处:控制程序流程 在Java 里,我们利用运算符操纵对象和数据,并用执行控制语句作出选择。Java 是建立在C++基础上的,所以对C 和C++程序员来说,对Java 这方面的大多数语句和运算符都应是非常熟悉的。当然,Java 也进行了自己的一些改进与简化工作。 1 使用 Java 运算符加号(+)、减号和负号(-)、乘号(*)、除号(/)原创 2016-04-02 00:19:55 · 31222 阅读 · 0 评论 -
5.JAVA编程思想——控制执行
欢迎转载,转载请标明出处:Java 使用了C 的全部控制语句,所以假期您以前用C或C++编程,其中大多数都应是非常熟悉的。大多数程序化的编程语言都提供了某种形式的控制语句,这在语言间通常是共通的。在Java 里,涉及的关键字包括if-else、while、do-while、for以及一个名为switch的选择语句。然而,Java 并不支持非常有害的goto(它仍是解决某些特殊问题的权宜之计原创 2016-04-02 00:20:50 · 30937 阅读 · 0 评论 -
6.JAVA编程思想初始化和清除
欢迎转载,转载请标明出处:随着计算机的进步,‘不安全’的程序设计已成为造成编程代价高昂的罪魁祸首之一。许多 C程序的错误都是由于程序员忘记初始化一个变量造成的。对于现成的库,若用户不知道如何初始化库的一个组件,就往往会出现这一类的错误。清除是另一个特殊的问题,因为用完一个元素后,由于不再关心,所以很容易把它忘记。这样一来,那个元素占用的资源会一直保留下去,极易产生资源(主要是内存)原创 2016-04-02 00:22:24 · 31394 阅读 · 0 评论 -
7.JAVA编程思想笔记隐藏实施过程
欢迎转载,转载请标明出处:“进行面向对象的设计时,一项基本的考虑是:如何将发生变化的东西与保持不变的东西分隔开。” Java 推出了“访问指示符”的概念,允许库创建者声明哪些东西是客户程序员可以使用的,哪些是不可使用的。这种访问控制的级别在“最大访问”和“最小访问”的范围之间,分别包括:public,“友好的”(无关键字),protected以及private。根据前一原创 2016-04-02 00:23:21 · 31395 阅读 · 0 评论 -
8.JAVA编程思想类再生
欢迎转载,转载请标明出处:“Java 引人注目的一项特性是代码的重复使用或者再生。但最具革命意义的是,除代码的复制和修改以外,我们还能做多得多的其他事情。” 在象C 那样的程序化语言里,代码的重复使用早已可行,但效果不是特别显著。与Java 的其他地方一样,这个方案解决的也是与类有关的问题。我们通过创建新类来重复使用代码,但却用不着重新创建,可以直接使用别人已建好并调试好的现成类。原创 2016-04-02 00:24:21 · 31430 阅读 · 0 评论 -
9.JAVA编程思想 多形性
欢迎转载,转载请标明出处:“对于面向对象的程序设计语言,多型性是第三种最基本的特征(前两种是数据抽象和继承。”“多形性”(Polymorphism)从另一个角度将接口从具体的实施细节中分离出来,亦即实现了“是什么”与“怎样做”两个模块的分离。利用多形性的概念,代码的组织以及可读性均能获得改善。此外,还能创建“易于扩展”的程序。无论在项目的创建过程中,还是在需要加入新特性的时候,它们都可原创 2016-04-02 00:25:30 · 31680 阅读 · 1 评论 -
10.JAVA编程思想——对象容纳
欢迎转载,转载请标明出处: “如果一个程序只含有数量固定的对象,而且已知它们的存在时间,那么这个程序可以说是相当简单的。” 通常,我们的程序需要根据程序运行时才知道的一些标准创建新对象。若非程序正式运行,否则我们根本不知道自己到底需要多少数量的对象,甚至不知道它们的准确类型。为了满足常规编程的需要,我们要求能在任何时候、任何地点创建任意数量的对象。所以不可依赖一个已命名的句柄来原创 2016-04-02 00:26:27 · 31629 阅读 · 0 评论 -
11.JAVA编程思想——枚举器
11.JAVA编程思想——枚举器欢迎转载,转载请标明出处:在任何集合类中,必须通过某种方法在其中置入对象,再用另一种方法从中取得对象。毕竟,容纳各种各样的对象正是集合的首要任务。在Vector 中,addElement()便是我们插入对象采用的方法,而elementAt()是提取对象的唯一方法。Vector 非常灵活,我们可在任何时候选择任何东西,并可使用不同的索引选择多个元素。原创 2016-04-08 22:56:16 · 30756 阅读 · 0 评论 -
12.JAVA编程思想——集合的类型
12.JAVA编程思想——集合的类型欢迎转载,转载请标明出处:标准Java 1.0 和1.1 库配套提供了非常少的一系列集合类。但对于自己的大多数编程要求,它们基本上都能胜任。Java 1.2 提供的是一套重新设计过的大型集合库。1 VectorVector 的用法很简单,大多数时候只需用addElement()插入对象,用elementAt()一次提取一个对象,并用原创 2016-04-08 22:57:00 · 35095 阅读 · 1 评论 -
81.JAVA编程思想——JAVA编程规则
81.JAVA编程思想——JAVA编程规则(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:ThisIsAClassNamethisIsMethodOrFieldName若在定义中出现了常数初始化字符,则大写static final 基本类型标识符中的所有字母。这样便可标志出它们属原创 2016-05-10 22:56:36 · 30902 阅读 · 0 评论 -
82.JAVA编程思想——关于垃圾收集
82.JAVA编程思想——关于垃圾收集“很难相信Java 居然能和C++一样快,甚至还能更快一些。”据我自己的实践,这种说法确实成立。然而,我也发现许多关于速度的怀疑都来自一些早期的实现方式。由于这些方式并非特别有效,所以没有一个模型可供参考,不能解释Java 速度快的原因。之所以想到速度,部分原因是由于C++模型。C++将自己的主要精力放在编译期间“静态”发生的所有事情上,所以程序的原创 2016-05-10 22:57:00 · 31109 阅读 · 0 评论 -
83.JAVA编程思想——关于JAVA性能
83.JAVA编程思想——关于JAVA性能Java 语言特别强调准确性,但可靠的行为要以性能作为代价。这一特点反映在自动收集垃圾、严格的运行期检查、完整的字节码检查以及保守的运行期同步等等方面。对一个解释型的虚拟机来说,由于目前有大量平台可供挑选,所以进一步阻碍了性能的发挥。“先做完它,再逐步完善。幸好需要改进的地方通常不会太多。”1 基本方法只有正确和完整地检测了程序后,原创 2016-05-10 22:57:19 · 31144 阅读 · 0 评论 -
13.JAVA编程思想——排序
13.JAVA编程思想——排序Java 1.0 和1.1 库都缺少的一样东西是算术运算,甚至没有最简单的排序运算方法。因此,我们最好创建一个Vector,利用经典的Quicksort(快速排序)方法对其自身进行排序。编写通用的排序代码时,面临的一个问题是必须根据对象的实际类型来执行比较运算,从而实现正确的排序。当然,一个办法是为每种不同的类型都写一个不同的排序方法。然而,应认识到假若这样做原创 2016-04-17 09:21:24 · 30514 阅读 · 0 评论 -
14.JAVA编程思想——通用集合库
14.JAVA编程思想——通用集合库标准的Java 库提供了一些特别有用的集合,距完整意义的集合尚远。除此之外,象排序这样的算法根本没有提供支持。C++出色的一个地方就是它的库,特别是“标准模板库”(STL)提供了一套相当完整的集合,以及许多象排序和检索这样的算法,可以非常方便地对那些集合进行操作。针对这一现状,并以这个模型为基础,ObjectSpace 公司设计了Java 版本的“通用集合库原创 2016-04-17 09:21:45 · 30456 阅读 · 0 评论 -
15.JAVA编程思想——新集合
15.JAVA编程思想——新集合集合类属于最强大的一种工具,特别适合在原创编程中使用。Java 1.1 提供的集合多少有点儿失望。因此,看到Java 1.2 对集合重新引起了正确的注意后,确实令人非常愉快。这个版本的集合也得到了完全的重新设计(由Sun 公司的Joshua B loch)。我认为新设计的集合是Java 1.2 中两项最主要的特性之一(另一项是Swing 库),因为它们极大方便了原创 2016-04-17 09:22:07 · 30987 阅读 · 0 评论 -
16.JAVA编程思想——使用Collections
16.JAVA编程思想——使用Collections一个集合能做的所有事情(亦可对Set 和List 做同样的事情,尽管List还提供了一些额外的功能)。Map 不是从Collection 继承的,所以要单独对待。boolean add(Object) *保证集合内包含了自变量。如果它没有添加自变量,就返回false(假)boolean addAll(Collection) *原创 2016-04-17 09:22:34 · 30432 阅读 · 0 评论 -
17.JAVA编程思想——使用Lists
17.JAVA编程思想——使用ListsList(接口) 顺序是List 最重要的特性;它可保证元素按照规定的顺序排列。List 为Collection 添加了大量方法,以便我们在List 中部插入和删除元素(只推荐对LinkedList 这样做)。List 也会生成一个ListIterator(列表反复器),利用它可在一个列表里朝两个方向遍历,同时插入和删除位于列表中部的元素(同样地,只建议原创 2016-04-17 09:22:55 · 30880 阅读 · 0 评论 -
18.JAVA编程思想——使用Sets
18.JAVA编程思想——使用SetsSet 拥有与Collection 完全相同的接口,所以和两种不同的List 不同,它没有什么额外的功能。相反,Set完全就是一个Collection,只是具有不同的行为(这是实例和多形性最理想的应用:用于表达不同的行为)。在这里,一个Set 只允许每个对象存在一个实例。Set(接口) 添加到Set 的每个元素都必须是独一无二的;否则Set 就不会添加原创 2016-04-17 09:23:20 · 30558 阅读 · 0 评论 -
19.JAVA编程思想——使用Maps
19.JAVA编程思想——使用MapsMap(接口) 维持“键-值”对应关系(对),以便通过一个键查找相应的值HashMap* 基于一个散列表实现(用它代替Hashtable)。针对“键-值”对的插入和检索,这种形式具有最稳定的性能。可通过构建器对这一性能进行调整,以便设置散列表的“能力”和“装载因子”。ArrayMap 由一个ArrayList 后推得到的Map。对反复的顺序提供了精确的控制原创 2016-04-17 09:23:39 · 30512 阅读 · 0 评论 -
20.JAVA编程思想——实施解决方案
20.JAVA编程思想——实施解决方案实际上只有三个集合组件:Map,List 和Set。而且每个接口只有两种或三种实施方案。若需使用由一个特定的接口提供的功能,如何才能决定到底采取哪一种方案?为理解这个问题,必须认识到每种不同的实施方案都有自己的特点、优点和缺点. Hashtable,Vector 和Stack的“特点”是它们都属于“传统”类,所以不会干扰原有的代码。但在另一方面,应尽量原创 2016-04-17 09:24:14 · 30606 阅读 · 0 评论 -
22.JAVA编程思想——排序和搜索
22.JAVA编程思想——排序和搜索Java 1.2 添加了自己的一套实用工具,可用来对数组或列表进行排列和搜索。这些工具都属于两个新类的“静态”方法。这两个类分别是用于排序和搜索数组的Arrays,以及用于排序和搜索列表的Collections。1 数组Arrays 类为所有基本数据类型的数组提供了一个过载的sort()和binarySearch(),它们亦可用于Stri原创 2016-04-17 09:25:02 · 30527 阅读 · 0 评论 -
23.JAVA编程思想——实用工具
23.JAVA编程思想——实用工具 Collections 类中含有其他大量有用的实用工具:enumeration(Collection) 为自变量产生原始风格的Enumeration(枚举)max(Collection),min(Collection)在自变量中用集合内对象的自然比较方法产生最大或最小元素max(Collection,Comparator),min(C原创 2016-04-17 09:25:23 · 30703 阅读 · 0 评论 -
24.JAVA编程思想——违例差错控制
24.JAVA编程思想——违例差错控制Java 的基本原理就是“形式错误的代码不会运行”。与C++类似,捕获错误最理想的是在编译期间,最好在试图运行程序以前。然而,并非所有错误都能在编译期间侦测到。有些问题必须在运行期间解决,让错误的缔结者通过一些手续向接收者传递一些适当的信息,使其知道该如何正确地处理遇到的问题。在C++和其他早期语言中,可通过几种手续来达到这个目的。而且它们通常是作原创 2016-04-17 09:26:09 · 33045 阅读 · 0 评论 -
25.JAVA编程思想——标准Java违例
25.JAVA编程思想——标准Java违例Java 包含了一个名为Throwable的类,它对可以作为违例“掷”出的所有东西进行了描述。Throwable 对象有两种常规类型(亦即“从Throwable 继承”)。其中,Error 代表编译期和系统错误,我们一般不必特意捕获它们(除在特殊情况以外)。Exception 是可以从任何标准Java 库的类方法中“掷”出的基本类型。此外,它们亦可从我原创 2016-04-17 09:26:29 · 30936 阅读 · 0 评论 -
26.JAVA编程思想——创建自己的违例
26.JAVA编程思想——创建自己的违例并不一定非要使用Java 违例。这一点必须掌握,因为经常都需要创建自己的违例,以便指出自己的库可能生成的一个特殊错误——但创建Java 分级结构的时候,这个错误是无法预知的。为创建自己的违例类,必须从一个现有的违例类型继承——最好在含义上与新违例近似。继承一个违例相当简单。1 代码如下classMyException extend原创 2016-04-17 09:26:49 · 30841 阅读 · 0 评论 -
27.JAVA编程思想——违例的限制
27.JAVA编程思想——违例的限制覆盖一个方法时,只能产生已在方法的基础类版本中定义的违例。这是一个重要的限制,因为它意味着与基础类协同工作的代码也会自动应用于从基础类衍生的任何对象(当然,这属于基本的OOP 概念),其中包括违例。下面这个例子演示了强加在违例身上的限制类型(在编译期):1 代码如下classBaseballException extends Exce原创 2016-04-17 09:27:09 · 30727 阅读 · 0 评论 -
40.java编程思想——运行期类型鉴定需要
40.java编程思想——运行期类型鉴定需要欢迎转载,转载请标明出处:运行期类型鉴定(RTTI)的概念初看非常简单——手上只有基础类型的一个句柄时,利用它判断一个对象的正确类型。然而,对RTTI 的需要暴露出了面向对象设计许多有趣(而且经常是令人困惑的)的问题,并把程序的构造问题正式摆上了桌面。如何利用Java 在运行期间查找对象和类信息。这主要采取两种形式:一种是“传统”RT原创 2016-04-30 20:12:01 · 33612 阅读 · 0 评论 -
41.java编程思想——运行期类型鉴定语法
41.java编程思想——运行期类型鉴定语法Java 用Class 对象实现自己的RTTI 功能——即便我们要做的只是象造型那样的一些工作。Class 类也提供了其他大量方式,以方便我们使用RTTI。首先必须获得指向适当Class 对象的的一个句柄。一个办法是用一个字串以及Class.forName()方法。这是非常方便的,因为不需要那种类型的一个对象来获取Class 句柄。然而,对于自己原创 2016-04-30 20:12:51 · 30412 阅读 · 0 评论 -
42.java编程思想——反射 运行期类信息
42.java编程思想——反射 运行期类信息如果不知道一个对象的准确类型,RTTI 会帮助我们调查。但却有一个限制:类型必须是在编译期间已知的,否则就不能用RTTI调查它,进而无法展开下一步的工作。换言之,编译器必须明确知道RTTI 要处理的所有类。从表面看,这似乎并不是一个很大的限制,但假若得到的是一个不在自己程序空间内的对象的句柄,这时又会怎样呢?事实上,对象的类即使在编译期间也不可由原创 2016-04-30 20:13:24 · 33436 阅读 · 0 评论 -
43.java编程思想——传递和返回对象
43.java编程思想——传递和返回对象实际传递的只是一个句柄。在许多程序设计语言中,我们可用语言的“普通”方式到处传递对象,而且大多数时候都不会遇到问题。但有些时候却不得不采取一些非常做法,使得情况突然变得稍微复杂起来(在C++中则是变得非常复杂)。Java 亦不例外,我们十分有必要准确认识在对象传递和赋值时所发生的一切。若读者是从某些特殊的程序设计环境中转移过来的,那么一般都会问到:“原创 2016-04-30 20:13:55 · 30460 阅读 · 0 评论 -
44.java编程思想——传递和返回对象 制作本地副本
44.java编程思想——传递和返回对象 制作本地副本Java 中的所有自变量或参数传递都是通过传递句柄进行的。也就是说,当我们传递“一个对象”时,实际传递的只是指向位于方法外部的那个对象的“一个句柄”。所以一旦要对那个句柄进行任何修改,便相当于修改外部对象。此外:■参数传递过程中会自动产生别名问题■不存在本地对象,只有本地句柄■句柄有自己的作用域,而对象没有■对象的“存在时间原创 2016-04-30 20:16:21 · 34145 阅读 · 0 评论 -
45.java编程思想——传递和返回对象 克隆的控制
45.java编程思想——传递和返回对象 克隆的控制为消除克隆能力,大家也许认为只需将clone()方法简单地设为private(私有)即可,但这样是行不通的,因为不能采用一个基础类方法,并使其在衍生类中更“私有”。所以事情并没有这么简单。此外,我们有必要控制一个对象是否能够克隆。对于我们设计的一个类,实际有许多种方案都是可以采取的:(1) 保持中立,不为克隆做任何事情。也就是说,尽管不可原创 2016-04-30 20:17:09 · 33985 阅读 · 1 评论 -
46.java编程思想——传递和返回对象 只读类
46.java编程思想——传递和返回对象 只读类尽管在一些特定的场合,由clone()产生的本地副本能够获得我们希望的结果,但程序员(方法的作者)不得不亲自禁止别名处理的副作用。假如想制作一个库,令其具有常规用途,但却不能担保它肯定能在正确的类中得以克隆,这时又该怎么办呢?更有可能的一种情况是,假如我们想让别名发挥积极的作用——禁止不必要的对象复制——但却不希望看到由此造成的副作用,那么又该如原创 2016-04-30 20:17:51 · 34869 阅读 · 1 评论 -
47.java编程思想——创建窗口和程序片 AWT
47.java编程思想——创建窗口和程序片 AWT在Java 1.0 中,图形用户接口(GUI)库最初的设计目标是让程序员构建一个通用的GUI,使其在所有平台上都能正常显示。但遗憾的是,这个目标并未达到。事实上,Java 1.0 版的“抽象Windows 工具包”(AWT)产生的是在各系统看来都同样欠佳的图形用户接口。除此之外,它还限制我们只能使用四种字体,并且不能访问操作系统中现有的高级原创 2016-04-30 20:20:11 · 34599 阅读 · 1 评论 -
48.java编程思想——创建窗口和程序片 按钮及事件
48.java编程思想——创建窗口和程序片 按钮及事件制作一个按钮非常简单:只需要调用Button 构建器,并指定想在按钮上出现的标签就行了(如果不想要标签,亦可使用默认构建器,但那种情况极少出现)。可参照后面的程序为按钮创建一个句柄,以便以后能够引用它。Button 是一个组件,象它自己的小窗口一样,会在更新时得以重绘。这意味着我们不必明确描绘一个按钮或者其他任意种类的控件;只需将它们纳原创 2016-04-30 20:21:07 · 31184 阅读 · 0 评论 -
49.java编程思想——创建窗口和程序片 文本 复选框 单选框 下拉列表
49.java编程思想——创建窗口和程序片 文本 复选框 单选框 下拉列表“文本字段”是允许用户输入和编辑文字的一种线性区域。文本字段从文本组件那里继承了让我们选择文字、让我们像得到字符串一样得到选择的文字,得到或设置文字,设置文本字段是否可编辑以及连同我们从在线参考书中找到的相关方法。1 代码1import java.awt.*;import java.applet.*;原创 2016-04-30 20:21:40 · 34433 阅读 · 2 评论