一、概述:
这是读的第一本英文原版的专业书籍,总的来说,因为自己也有一些基础,读起来并不是非常的费劲。
前半部分主要是介绍java的相关语法,正好借着这样的机会巩固了一下自己的码代码的能力,基本上把书中
的代码都打了一遍,前面的部分主要是用的notepad++来写的,notepad++ 也有代码提示功能,用起来还是挺
不错的,但是用cmd 来编译,连接,javac 然后java 执行,似乎很容易出现编码格式方面的问题。后半部分
主要是利用Myeclipse来写的,也尝试了一下 intelliJ idea ,但是由于用Eclipse比较习惯的原因,不太
适应它的快捷键,写起来不是很爽,于是作罢。
中间还尝试过将java程序打包起来,让它能在未安装jre的机器上运行,中间试了Jbuilder,exe4j,
install4j,exe4j使用步骤还算简单,(但实际上很多选项我都忽略了),它能将java程序打包成exe
文件,但仍需要jre的支持。其他的使用起来就更加的复杂了。后来想了想,在win环境下的exe 程序,还算
拿c#,c++之类的写好了。实际上基本语法的差别并不是非常的大。
二、思考(总的来看):
1、java环境配置的问题,jdk是开发者使用的开发工具,其中主要包括了jre,说明文档,一些示例代码,
以及源代码。其中非常重要的是jdk根目录下的bin目录中,可以直接将其添加到path目录中,它里面包含了
java.exe,javac.exe,等文件。至于jre呢,是java runtime environment, 是执行java程序必须的环境,它
包含了jvm,即java虚拟机,负责java字节码的解释。
2、封装(encapsulation),继承(inheritance),多态(polymorphism),首先,封装主要说的是写类
时注意做到一个高内聚,即如同一个黑箱,仅仅对外公开必要的方法与变量,而对仅仅用于内部的方法,变量
使用private关键字。继承,即是最大的体现了一个代码的复用性,通过extends关键字,或者implement接口,
实现代码的复用。(这一个可以参看chapter15,是继承的一个非常好的例子)非常好的利用了java继承时构造
函数的调用关系。多态,主要是通过类的向上转型来体现。
三、代码说明
将书中的代码基本上打了一遍,下面就这些做一个介绍,方便自己的复用。
chapter2:
Time.java :实现功能,将系统的 totalMilliseconds 化为北京时间,由于8小时时差,要进行一个
加8处理。实际上,java的date 类就实现了这个功能。
TestScanner.java :利用scannner实现控制台输入。
ShowInput.java :功能是将用户输入的内容显示在一个dialog上。用了JOptionPane。
DisplayUnicode.java :以unicode 16bit 编码,即"\u6b22\u8fce\u03b1"。
ComputeLoan.java: 输入贷款以及返回每月payment.
ComputeArea.java :
chapter3:
ReadFile.java :无法读取文件,代码有错误。。但可以编译通过。 2015.5.25
Sub.java :出一道减法题,判断答对了没有。
chapter4:
MultiplicationTable.java :打99乘法表。
chapter6:
CountLettersInArray.java :显示随机字符中,各小写字符出现的次数。字符出现次数统计。
RandomCharacter.java :随机产生字符。
BinarySearch.java :二分查找法的数列,必须是要经过排序的.查找数字int型。
InsertionSort.java :插入法排序。
LinearSearch.java :线性查找法。
SelectionSort.java :从小到大排列,使用的选择排序的方法.
TestSystemArray.java :Arrays.sort(a);利用这个现成的方法进行排序。
chapter7:
Circle.java ,
Course.java(一个模拟课程的类),
Seeds.java(通过种子获取随机数)
StackOfIntegers.java :该函数模拟了一个整数stack的功能.
chapter8:
CheckPalindrome.java :判断一个数列是不是回文数.
CountEachLetter.java :实现输出一段字符串中各个字母出现的次数
ReadData.java :读取文件,利用scanner 来读取,注意把input流close掉
WriteData.java :利用PrintWriter 输出文件。
chapter9:
1、通过此例可以看出构造函数调用的顺序,首先调用父函数的无参的构造函数!
chapter10:
GenericSort.java :该类的功能是实现数组的排序。
TestCalendar.java :该类测试了calendar类的使用
chapter11:
Rational.java :有理数的基本运算,分数形式显示,用“/”
chapter12:
gui方面的程序。showLayout.java,ImageIcon,panels,swingCommonFeature.等。
chapter13:
仍然是gui方面的。label ,messagePane,等。
chapter14:
gui方面的,有动态时钟,MovableMessagePanel (可以移动的文本,根据鼠标的运动)
KeyboardPanel(用上下左右键控制一个字母,注意在main方法中,一定要setFoucus,方可移动)
chapter15:
gui方面的程序。MultipleWindowsDemo(统计字母出现的次数,并用图表显示)
radioButton,checkBox等。
chapter16:
applet用于网页的小应用,不过用浏览器试了一下,总是用安全问题,或者报classNotfindError.
chapter17:
异常处理。throws,throw, try ...catch...finally..
chapter18:
java的输入输出流,binary I/O.
chapter19:
recursion.递归的思想。TowersOfHanoi,汉诺塔的例子。