推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是基于循序渐进的方式写的,不会使读者看着看着就晕了. 就算有一些Java背景的,看看也会有帮助,能够把自学Java中留下的知识漏洞补齐. 全书分成两个部分,就是英文版说的大学生两个学期的教材,因此书中内容其实比较丰富,看完后再看其他层次的Java书,至少不会存在基础不懂的情况. 比如:<Java编程思想&…
本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2    语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的语言特征(指针和多继承)注:需要关注的是为什么放弃这两个特征,有没有替代方案,各自的优缺点. 24.2.1    指针(pointer)指针是一种变量,并且变量中包含了某个存储器地址.Java不允许使用指针,因为指针指向的是具体的物理地址,直接操纵物理地址中的数据,容易使程序出现不可预料的问题.Ja…
本章主要关注的是Java的几个应用网络编程的场景,对于网络编程没有太多深入介绍,而Java本来也没有多少针对网络编程的特性.虽然Java有个Applet的概念,但是真用这个的开发的场景其实不多. 23.1    引言服务器(server)程序为其他客户端(client)程序提供某种类型的服务,与客户端程序通常位于不同的机器上.一个程序可以既是服务器程序也是客户端程序,主要是看它是在为其他程序服务,还是在使用其他程序的服务.甚至还可以整合其他服务器程序上的服务,打包成自己的服务,提供给客户端程序使…
这里我们再理解了AJAX后,开始来用实例感受AJAX的力量. 今天我最后要实现的效果,当鼠标放到图片上时会根据,会把数据库库里的数据读出,通过显示框显示出来.这个在很多网上商店都有用到这里效果,我们这里用AJAX来实现这个效果.这个实例里结合了MySql.Servlet还有Js,理论性很少,但通过实践来感受理论知识. 一个页面中应用了 AJAX,同时他也能实现MVC框架,可以吗?当然可以的.通过页面调用AJAX,这个页面就是MVC中的V,他用来前台显示与用户交互的内容.用 JavaBean作为M…
Java 是什么呀! 计算机语言总的来说分成机器语言,汇编语言,高级语言.其中Java一种高级计算机语言,它是一种可以编写跨平台应用软件,完全面向对象的程序设计语言. Java划分为三个技术平台,JavaSE,JavaEE,JavaME:其中JavaSE是三个平台最核心的类库,如集合,IO,数据库连接以及网络编程等. Java 语言的特点 简单性 (不使用指针,这点也是我喜欢Java语言的原因.使用引用,并提供自动的垃圾回收机制,不必担心内存管理) 面向对象性 (只支持类之间的单继承,但支持接口…
更好阅读体验:Java 集合详解 | 一篇文章搞定Java 三大集合 好看的皮囊像是一个个容器,有趣的灵魂像是容器里的数据.接下来讲解Java集合数据容器. 文章篇幅有点长,还请耐心阅读.如只是为了解决某个疑问,可以阅读目录来查找你所需的内容. 开门见山:「Java集合框架图」 1.Iterator(迭代器) 迭代器的基本功能就是遍历集合中的所有元素. Iterable 接口组合了迭代器Iterator,通过方法:Iterator iterator(); 来获取迭代器. Collection 和…
写java通常用eclipse编写,还有一款编辑器比较流行叫IJ.这里我们只说下eclipse编写java的前期工作. 在安装eclipse之前要下载java的sdk文件,即java SE:否则无法运行java程序. 安装java SE 下载java SE 1.进入官网java.oracle.com,找到java SE 2.进入java SE 下载选项 3.下载java SE的版本 下载好后一路点击下一步安装即可,注意你安装的路径,配置系统变量时要用到. 配置系统变量 1.右击计算机,属性,高级…
Eclipse安装 IDE:Integrated Development Environment,集成开发环境.好比是全自动洗衣机. 此处使用[eclipse-jee-4.6-neon-3-win32-x86_64] 下载链接:https://pan.baidu.com/s/1cWaMEneT4F2JDPOxu1tSAw 打开Eclipse 建工程: File → New → Java Project (如果找不到Java Project,就点击Project-,弹出窗口中第一项就是Java P…
1.2 软件:用于计算机执行的指令的集合称之为程序(program).单个程序或者一组程序称之为软件(software)1.3 编译:计算机的语言称为机器码(machine code).用编译器(compiler)的专用系统软件将编程语言编写的指令翻译成机器指令,这一过程称为编译(compiling).1.4 编程:Java是一种平台无关的编程语言,因为任何Java程序都运行在Java虚拟机(Java Virtual Machine, JVM)的专用程序上.1.6 基本数据类型:* 整型:byt…
用户与程序交互的媒介称为用户界面(user interface)或人机界面(human-computer interface). 19.2    Border接口8个实现Border接口的标准边框类:*    BevelBorder*    SoftBevelBorder*    LineBorder*    EtchedBorder*    TitledBorder*    MatteBorder*    CompoundBorder*    EmptyBorder 19.3    Icon接…
自测题:1.    解释抽象和抽象数据类型的概念.P333抽象的概念是仅仅关注对象可以完成什么工作,而不必担心如何完成工作的细节.类模板通常被称为抽象数据类型.因为这类数据暴露给用户的所有信息仅仅是方法的描述(输入.输出和行为)和数据的相关信息(属性). 2.    动态(运行时)绑定和静态(编译时)绑定的区别.P335编译时绑定(compile-time binding)或静态绑定(static binding)技术:当一个类的代码被编译后,该类的每个方法的代码都会随之编译:编译器将确保该类的…
本章就是上一章的延续,主要是用GUI实现了控制界面. 编程练习:代码附件Hostel.java1.    正确运行2.    Runhostel.java3.    searchButton…
自测题:1.    图11-1的UML设计中各个类之间的关系.Hostel与TenantList是关联关系:TenantList和PaymentList与ObjectList是泛化关系.TenantList和PaymentList是ObjectList的子类:TenantList与Tenant是聚合关系:PaymentList与Payment是聚合关系:Tenant与PaymentList是关联关系. 注:不太明白什么时候描述关系,可能用来描述的还是业务上的关系. 2.    为什么开发一个通用…
22.2 进程(process):P551时间切片(time-slicing):处理器只是完成了一个任务的一部分工作,然后完成下一个任务的一部分工作,因为处理吕每次完成工作的时间都非常短,因此看起来这些任务是同时完成的. 进程:一个运行的程序通常称为一个进程.并发进程(concurrent process):两个或多个可以同时执行的进程称为并发进程.在多个进程并发执行时,每个进程都有自己的存放程序代码和数据的存储空间,并且每个进程的存储空间对于其他进程都是受保护的,所有这些工作都由操作系统完成.…
记录():一个单独的数据实例.域():一个属性. 20.3    输入和输出设备:P484输入过程和输出过程.操作系统负责建立三个流(stream):标准输入流(System.in).标准输出流(System.out).标准错误流(System.error).输入类:*    InputStream:提供了许多处理基本输入的底层方法,主要处理字节序列.*    InputStreamReader:提供了更高层的处理方法,主要处理字符序列.*    BufferedReader:主要处理字符串形式…
自测题:1.    在图形应用程序中为用户提供选择的多种方式:P433下拉菜单(pull-down menu).弹出式菜单(pop-up menu).对话框窗口(dialogue window).单选按钮(radio button).组合框(combo box). 2.    使用JMenuBar类.JMenu类和JMenuItem类构建下拉菜单:创建一个菜单需要有三方面内容:顶端的菜单栏(menu bar).不同的菜单(menu)以及每个菜单都有各自的菜单项(menu item)列表.将菜单项…
由所有聚焦类构成,在java.util包中,包含三个重要接口:*    List列表:元素为单个对象,元素在列表中是有序.可重复*    Set集合:元素为单个对象,元素在集合中无序.不可重复*    Map映射:元素为成对对象(第一个对象是关键字,第二个对象是值),元素在映射中无序,关键字不可重复注:JCF不能存储基本数据类型. 17.2 List接口和ArrayList类*    ArrayList类*    LinkedList类 17.2.1    泛型(generics):允许设定存在…
多维(Multi-dimensional)数组维数由索引个数决定.常用的数组:一维(one-dimensional)数组.二维(two-dimensional)数组 16.2    创建二维数组索引从0开始,创建成表格,第一个索引是行索引,第二个索引是列索引.length属性:第一个索引的长度. 16.3    初始化二维数组:数值用逗号分隔,行用大括号分隔. 16.4    不规则数组(ragged array):可变列数的二维数组.如果只声明但不初始化不规则二维数组,必须声明行数(第一索引)…
自测题:1.    什么是异常?P357异常是在程序生命周期内出现的事件,它会导致程序行为不可靠. 2. 已检查异常和未检查异常的区别是什么?P359在编译器允许程序被编译通过前,要求程序员必须编写代码,告诉编译器如何处理由特定指令产生的已检查异常.但是编译器对可能产生的未检查异常并不认为存在潜在的错误可能,也就不会要求程序员必须编写代码处理,只是希望程序员在编写代码时就尽量避免出现这类异常. 已检查异常:FileNotFoundException, IOException, Exception…
接下来,是第二学期的内容,也是相对深入的Java学习. 自测题:1.    在类的开发过程中,程序包的作用是什么?P321程序包是为了方便定位和部署类,还可以避免将来类之间出现名称冲突. 2.    哪些import语句合法,哪些非法? import java.*; // 书上说错,代码中承认正确.因为java是个包,只是一个没有任何类的包. import java.swing.*; // 错.java下没有swing这个包. import java.awt.JButton; // 错.java…
10.2 Swing程序包AWT(Abstract Window Toolkit): 抽象窗口工具集.依赖于本地操作系统的组件被称为重量级(Heavy Weight)组件,因为它们都会大量使用系统资源.组件名称有Frame(框架).Button(按钮).Label(标签)等 Swing: 基于AWT类构建.几乎所有的组件都用Java编写,而且所有代码都是Swing程序包的一部分.用Java语言编写的组件称为轻量级(Light Weight)组件.组件名称都以J开头,如JFrame.JButton…
软件质量:可维护性.可靠性.健壮性.可用性. 9.3 可维护性系统维护(maintaining)是指根据需求的变化更新现有系统的过程 9.3.1    封装的重要性连锁反应:对系统某一部分的改变可能会对系统的其余部分产生影响,导致系统错误.面向对象的封装原则保证了面向蝗程序易于维护,因为封装原则减弱了连锁反应的影响:每个对象都应该在对象内部包含工作的全部细节:所有的数据都应该隐藏在对象内部:保证对象的任何改变都不会影响到系统的其余部分. 9.3.2    文档在开发面向对象程序的时候,设计文档应…
8.2    继承(inheritance):继承是指在类之间共享属性和方法.继承关系是一种层次关系.在继承关系中位于顶部的类称为超类(或基类),位于下面的类称为子类(或派生类).类型转换(type casting):是强制一个数据从一种类型转换为另一种类型.方法是通过在待转换的数据前加一对含有新类型名称的括号实现. 8.4    方法重写(method overriding)多态性的实现:方法重载和方法重写.方法重载指同一类中可以存在具有相同名称的不同方法,通过它们的参数列表加以区分.方法重写…
统一建模语言(UML)用方框代表类.方框被分成3部分,第一部分是类名,第二部分是类的属性,第三部分是类的方法.类的属性(属性名称:属性类型):类的方法(方法名称(参数类型):返回值类型).静态的类的属性和方法名习惯加下划线. 属性的权限:*    public:        属性或方法可以从外部被访问:*    private:    属性或方法不可以被其他类的方法访问,只能在类的内部被访问,从而实现数据封装. 7.3 static关键字声明为static的属性为类的属性.对该属性的任何改变都…
6.2 对象:结构化编程-->数据-->封装(聚合,信息隐藏)-->对象(方法及其操作的数据都聚合在一个单元中,作为更高层的组织单元)-->类(创建对象的模板)6.3 类:*    要存储的数据-->属性*    要完成的任务-->方法6.7 对象数组(没有实例化,只有引用) 自测题:1.如何理解面向对象程序开发的含义?P119答:面向对象开发技术也可以称为快速应用程序开发技术,因为它允许程序设计人员在分析和设计过程中平稳地过渡.此外,由于封装(encapsulatio…
5.6 增强的for循环:访问整个数组,读取数组元素,不基于数据下列5.7 数组方法:最大值.求和.成员访问.查找 1.答:P92存储固定个数相同数据类型的一组元素. 2.答:P92所有存储在一个特定数组里的元素必须是同一类型,但是并没有限制是哪一类型.甚至还可以存储对象. 3.答:P104当满足以下几种情况才能应用增强的for循环:* 需要访问整个数据(不是数组的一部分):* 需要读取数组中的元素,而不是个性它们:* 不需要使用数组完成其他处理过程. 4.答:a) someArray.leng…
4.2~3 声明.实现.调用4.4 数据传递:实参.形参.返回值4.6 变量作用域:局部变量(区域内访问).全局变量4.7 重载:运算符重载.方法重载-->多态 1.答:P67方法(method)完成的是一项定义详细的任务. 2.答:P73声明的变量是方法的形参:传递给被调方法的实际值,称之为方法的实参.注:方法不能改变作为参数传递的变量的值,因为所有传递给方法的都是这个变量包含的值的复本.    3.答:P81多态表示方法具有多种形式,即相同的方法名或相同的运算符因为形式参数的不同从而实现不同…
迭代(iteration).重复(repetition):三种循环* for: 重复执行固定次数* while: 重复执行不固定次数* do...while: 比while至少多一次 1.答:P47迭代(iteration)允许计算机一遍又一遍地重复一段特定代码:而选择只对特定代码执行一遍. 2.答:a)输入:    5显示:    YES    NO    YES    NO    YES    NO    YES    NO    YES    NO    OK    b)输入:    0显…
迭代(iteration).重复(repetition):三种循环* for: 重复执行固定次数* while: 重复执行不固定次数* do...while: 比while至少多一次 1.答:P47迭代(iteration)允许计算机一遍又一遍地重复一段特定代码:而选择只对特定代码执行一遍. 2.答:a)输入:    5显示:    YES    NO    YES    NO    YES    NO    YES    NO    YES    NO    OK    b)输入:    0显…
21.3    需求:P510用例模型(use case model):用例图(use case diagram).用例(use case).行为说明(behaviour specification).活动者(actor).角色(role).用例图用于记录系统中不同用户的角色,以及他们需要系统提供的服务.系统的用户被称为活动者,用户需要的服务被称为用例. 21.4    设计:P511    (-)private.    (+)public    组合(composition):实心菱形.   …