读书笔记--《java语言程序设计--基础篇》

时间:2022-01-02 22:16:26

一、概述:
    这是读的第一本英文原版的专业书籍,总的来说,因为自己也有一些基础,读起来并不是非常的费劲。
前半部分主要是介绍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,汉诺塔的例子。