总觉的学了这学期的JAVA课也就是学了点皮毛!真的路漫漫其修远,吾将上下而求索!
就把老师所教的JAVA做点笔记,和总结吧!
总体把握:
⒈Java语言是一种完全的面向对象的程序设计语言;
Java语言采用面向对象程序设计机制,提供了简单的类机制及动态的接口模型。
Java语言中的数据和处理数据的程序——方法(method)都被封装在类对象中,并通过类的继承机制实现代码的复用。
类在Java语言中的作用非常大,既是对象的原型,又是程序代码结构的基本单位。
⒉Java语言是一种Internet环境下的跨平台的程序设计语言;
⒊Java语言是一种严谨的、统一的、规范的程序设计语言;
学习要点:
◆创新特点:与其它程序设计语言的比较
⒈Java语言中不允许在类之外定义全局变量,而只能通过在类中定义静态变量来实现;
⒉Java语言中没有goto语句 ;⒊Java语言中没有指针型变量 ;⒋内存管理实现了自动化 ;
⒌Java语言对于不同的数据类型定义统一的规格,保证了平台无关性;
⒍Java语言中不允许像C和C++中那样任意进行类型转换 ;
⒎Java语言中无头文件; ⒏Java语言中无结构体和联合;
⒐Java语言中无预处理和宏定义。
◆设计思想:语言系统的设计实现方式
◆基本概念和基本语法
◆程序设计技术
第一章《 Java语言入门》知识点
◆ Java语言有哪些创新之处?
◆ Java语言自身具备哪些特点?
Java是一种具有“简单、面向对象的、分布式、解释型、健壮性(鲁棒性)、安全、平台无关、可移植、高性能、多线程和动态执行”等特性的语言。11
◆ Java语言与C++语言有哪些不同?
⒈Java语言中不允许在类之外定义全局变量,而只能通过在类中定义静态变量来实现;
⒉Java语言中没有goto语句 ;
⒊Java语言中没有指针型变量 ;
⒋内存管理实现了自动化 ;
⒌Java语言对于不同的数据类型定义统一的规格,保证了平台无关性;
⒍Java语言中不允许像C和C++中那样任意进行类型转换 ;
⒎Java语言中无头文件;
⒏Java语言中无结构体和联合;
⒐Java语言中无预处理和宏定义。
◆ 什么是Java虚拟机?Java虚拟机可以通过什么方式实现?
Java运行时系统(Java Runtime System)是运行Java字节码的系统,其任务是装载程序运行时需要的类、安排程序运行中对内存的使用,并且控制字节码的执行过程。
JVM是一个规范的能运行Java字节码的操作平台,定义有指令集、寄存器组、栈结构、垃圾收集器、存储区等五部分逻辑器件,并详细地规定了这些组件的规格。
Java虚拟机的实现方案有两种,既可以用软件实现,也可以用硬件即Java芯片实现。
◆ 利用JDK编译和运行Java程序的步骤有哪些?
C:/>javac HelloWorldApp.java
编译源程序为字节码文件,以HelloWorldApp.class文件名存储。
C:/>java HelloWorldApp
用Java解释器解释执行该程序的字节码文件。
第二章《 Java语言基本成分 》知识点
◆ Java语言字符集和标识符
Java语言采用Unicode字符集
Java语言的标识符是以字母、下划线或$符号开头的后面含有字母、下划线、$符号和数字的字符串,标识符的长度没有限制,但Java系统最多可以识别前255个字符。
Java标识符中的字母是大小写相关的。
◆ Java语言基本数据类型
Java语言共有4类8种基本数据类型。
⒈逻辑类型:boolean
⒉字符类型:char
⒊整数类型:byte、short、int和long
⒋浮点类型:float和double
◆ Java语言的常量
文字常量(Litearl Constant)
符号常量(Symbolic Constant)
◆ Java语言的表达式
表达式是运算符、常量和变量的遵循语法规则的组合。
◆ Java语言的运算符及其优先级和结合性
⒉成员运算符和分隔运算符
. () [] ; ,
⒊算术运算符
一元算术运算符:++ -- -
二元算术运算符:+ - * / %
⒋强制类型转换符
(type)expression
⒌字符串连接运算符
Java语言扩展了“+”运算符的定义,使其具备连接两个字符串的功能
⒍对象运算符“instanceof”
⒎位运算符
1010...>>2 结果为 111010...(高位补原高位)
1010...>>>2 结果为 001010...(高位补0)
Java语言的位运算被限定为整型数据。
⒏关系运算符和逻辑运算符
关系运算符:> >= < <= == !=
9.逻辑运算符:! & | ^ && ||
⒐三元条件运算符 a?b:c
⒑赋值运算符和复合赋值运算符
◆ Java语言基本的流程控制语句
一、分支语句
⒈if-else语句
⒉switch语句
二、循环语句
⒈for循环语句
⒉while循环语句
⒊do-while循环语句
⒋break[label]语句
⒌continue[label]语句
三、方法返回语句return语句
◆ Java语言数组的声明格式
格式一: char s[]; Point p[];
格式二: char[] s; Point[] p;
注意:Java语言在声明数组时不允许指定数组大小。
◆ Java语言的多维数组
在Java语言中没有多维数组,而是通过定义数组的数组实现多维数组,多维数组的声明、创建和初始化与一维数组相似,如
int twoDim[][] = new int[4][];
◆ Java语言对数组元素的访问的控制、数组长度length
第三章《对象、类、包和接口 》知识点
◆ 封闭、继承和多态的体现
一、封闭:对象、类和消息
二、继承
Java语言不支持多重继承,只支持单一继承。
同时Java语言还支持接口实现,通过接口实现完成多重继承的功能。
三、多态
Java语言实现多态性的手段是方法重载和方法重写。
◆ 什么是类?什么是对象?
类是组成Java程序的基本要素,既是组织程序代码的基本单位,也是面向对象程序设计的主体。 对象是类的实例化。
◆ Java语言继承机制中子类改变和扩充从父类中继承的内容的方式
重写 super
◆ final类和final方法,abstract类和abstract方法
final类是不能被继承的类,final方法是不能被重写的方法。
abstract类是必须被继承的类,abstract方法是必须被重写的方法。
◆ this和super
为了能够准确地分辨父类中原有的成员和子类中修改定义的成员,Java语言通过super关键字实现对父类中被隐藏成员的访问。 this关键字,用来引用当前对象
◆ 方法重载,方法重写
方法重载是指在一个类中可以有多个方法使用相同名字,这些同名方法的参数表不能相同,系统通过参数的不同组合分辨所调用的方法。
◆ 包及其作用
Java语言提供包来管理类名空间。即在出现相同的类名的时候,把它们放到不同的包中去,包可以有一定的层次,对应着外存上的目录结构。 package语句最多只能有一条。
◆ 四种访问权限 ppfp(略)
◆ 实例变量成员,类变量成员,实例方法成员,类方法成员
用static声明的变量成员为类变量,不用static声明的变量成员为实例变量
用static声明的方法成员为类方法,不用static声明的方法成员为实例方法。实例方法既可以访问实例变量,又可以访问类变量;而类方法只能访问类变量。在类方法中不能使用this或super。
◆ 接口与多重继承,接口的实现
接口是只声明了方法而没有给出方法体的一种特殊的类。声明的方法要在某个类中实现才能使用。
◆ 完整的Application程序的结构
package packageName;
//指定文件中定义的类所存的包,0个或1个
import packageName.(className|*);
//指定引入的类,0个、1个或多个
public classDefinition
//主类定义,0个或1个
interfaceDefinition and classDefinition
//接口或类定义,0个、1个或多个
其中,完整的类定义为
[public][abstract|final] class className
[extends superclassName]
[implements interfaceNameList]{
[public|protected|private][static][final][transient]
[volatile]type variableName;
//变量成员定义,0个、1个或多个
[public|protected|private][static]
[final|abstract][native][synchronized]
returnType methodName([paramList])
[throws exceptionList]{
statements
}
//方法成员定义,0个、1个或多个
}
第四章《 Java语言中的异常处理》知识点
◆ 异常与异常类
◆ 捕获和处理异常的两种方法
使用try-catch-finally语句块结构在程序代码中捕获和处理异常;
把异常对象通过层层向上抛出直至转交给Java运行时系统处理。Java语言称产生异常和转交异常的过程为抛出异常。
◆ try-catch-finally语句块的执行顺序
程序在运行过程中对try语句块中的语句进行监测,根据其中出现的异常的种类决定是否采用catch语句块中的语句以及采用哪个catch语句块中的语句处理异常,最后,再运行finally语句块中的语句来结束捕获和处理异常的过程。
◆ 抛出异常的实现方式,怎样处理被抛出的异常
Java语言也允许指明出现的异常不在当前方法内处理,而是将其抛出,送交到调用它的方法来处理,在调用序列中逐级向上传递,乃至传递到Java运行时系统,直至找到一个运行层次可以处理它为止。
声明抛出异常是在一个方法声明中的throws子句中给出的。
说明该方法将不对这些异常进行处理,而是声明抛出它们。
第五章《 Java图形用户界面》知识点
◆ GUI组件的类层次-------------------->(如下表)
◆ 两种布局方式:手动布局和使用布局管理器
可用setLayout(null)设置布局管理器为空,即无布局管理器,
然后用setLocation(),setSize(),setBounds()等方法人工设置
每个组件的大小和位置,由于在设置中以屏幕像素坐标为参照系,
程序的显示结果将是设备相关的。
◆ 容器与组件
一、框架Frame 二、面板Panel
◆ 五种布局管理器和手动布局的使用及效果
FlowLayout,BorderLayout,GridLayout,CardLayout,GridBagLayout
java.lang.Object
+---Font, Color, CheckboxGroup
+---MenuComponent
| +---MenuBar
| +---MenuItem
| +---Menu
| | +---PopupMenu
| +---CheckboxMenuItem
+---Component
+---Button, Canvas, Checkbox, Choice, Label, List
+---TextComponent
| +---TextArea, TextField
+---Container
+---Panel
| +---Applet
+--- ScrollPane
+---Window
+---Frame
+---Dialog
+---FileDialog
容器嵌套一般按以下层次:
⒈在同一个界面上可以并列多个Frame;⒉Frame为顶级容器,其中可以放组件;
⒊Panel作为组件可以放到Frame或Panel中;⒋其他组件可以放到Frame或Panel中;
⒌容器之间的嵌套不影响各个容器的布局管理手段。
◆ 事件,监听器,监听器的实现及适配器
事件是一种人机交互方式,界面上发生的动作都将导致事件的发生。事件是硬件对软件的驱动。
为了实现监听器接口,程序中不得不空写很多语句,为用户带来一些不便。Java语言为含有多个方法的7个监听器接口定义了适配器类Adapter,这些适配器类实际上是对7个接口的实现类,其中将接口的方法成员实现为空体方法,这样当用户在程序中使用事件机制时只需重写那些需要的方法。
但要注意,由于Java语言的单一继承机制,当需要实现多个监听器或者程序类已有父类时,适配器就不适用了,而还应该采用接口实现形式。
在程序中可以对组件设置监听器,负责监听组件上发生的某类事件。当程序中设置监听器时,在类中实现相应的接口,实现有关的方法。
◆ 各种AWT组件的定义与使用
◆ JFC-Swing组件的特性
⒈100%的纯Java实现.与AWT不同,Swing是用纯Java实现的,在不同的平台上表现是一致的。并且还有能力提供本地窗口下系统不支持的其它特性,这是它与AWT组件的最大区别。
⒉可插入的外观感觉(Pluggable Look and Feel,PL&F)⒊JFC-Swing组件的多样化 JFC-Swing组件是AWT的扩展
⒋MVC(Model-View-Control)体系结构.使用MVC体系结构是Swing组件胜过AWT组件的一个重要优势。
⒌可存取性支持 ⒍支持键盘操作 ⒎设置边框(Border) ⒏使用图标(Icon)
◆ JFC- Swing组件的类层次结构 ◆ 重组件、轻组件、顶层容器、中间容器
Swing组件中有四个顶层容器:JFrame、JApplet、JDialog、JWindow,分别由AWT组件中的Frame、Applet、Dialog和Window派生,其余的Swing组件称为轻量级组件。Swing组件不能直接加到顶层容器中,通常必须被加到一个与Swing顶层容器相关联的内容面板(content pane)上。普通容器:使用在各种不同的情况下的中间容器,如JPanel、JScrollPane、JSplitPane、JTabbedPane等;特殊容器:在GUI上起特殊作用的中间层容器,如JInternalFrame、JLayeredPane、JRootPane、JToolBar等;
各种JFC- Swing组件的定义与使用(略)
第六章《 Java Applet简介 》知识点
◆ 什么是Applet,Applet程序的功能
是一种被嵌入到Web页中,由Java兼容浏览器执行的小程序,可以生成具有动态效果和交互功能的Web页
◆ Applet的运行环境、运行方式、执行步骤和生命周期
Applet本身是一段Java程序,但它不能独立运行,需经过编译后成为字节码文件嵌入到HTML文本中
Applet自身无法以命令行方式启动,需要依赖浏览器为其提供图形界面,并且要求浏览器必须是Java兼容浏览器
通过网络从Applet宿主机下载Applet程序的主类并引入其他必要的类,随后在Java兼容浏览器中生成一个Applet主类的对象实例,同一Web页上的不同Applet以及不同Web页上的Applet都有不同的对象实例,运行在同一浏览器上的各个Applet具有独立的行为。对于Applet而言,浏览器便是Java运行时系统。
Applet的生命周期是指由Applet被下载直至它被系统回收时所经历的历程
1、下载 2、离开页面 3、退出浏览器
◆ Applet的安全机制
Java语言提供了一整套被称为“沙箱”的安全机制来防止各种不安全事件。
⒈Applet不能在运行主机上进行正常的文件操作;⒉Applet只能通过网络通讯将数据写入其宿主机上的应用中,由应用完成宿主机上的文件写;⒊Applet不能与非宿主机进行网络通讯.⒋Applet不能调用运行主机上的任何程序。
◆ Applet的主要行为,Applet程序的格式, Applet类
行为:⒈初始化方法init() ⒉启动方法start() ⒊停止方法stop() ⒋删除方法destroy()
◆ 什么是Applet,Applet程序的功能
是一种被嵌入到Web页中,由Java兼容浏览器执行的小程序,可以生成具有动态效果和交互功能的Web页
◆ Applet的运行环境、运行方式、执行步骤和生命周期
Applet本身是一段Java程序,但它不能独立运行,需经过编译后成为字节码文件嵌入到HTML文本中
Applet自身无法以命令行方式启动,需要依赖浏览器为其提供图形界面,并且要求浏览器必须是Java兼容浏览器
通过网络从Applet宿主机下载Applet程序的主类并引入其他必要的类,随后在Java兼容浏览器中生成一个Applet主类的对象实例,同一Web页上的不同Applet以及不同Web页上的Applet都有不同的对象实例,运行在同一浏览器上的各个Applet具有独立的行为。对于Applet而言,浏览器便是Java运行时系统。
Applet的生命周期是指由Applet被下载直至它被系统回收时所经历的历程 1、下载 2、离开页面 3、退出浏览器
◆ Applet的安全机制
Java语言提供了一整套被称为“沙箱”的安全机制来防止各种不安全事件。
⒈Applet不能在运行主机上进行正常的文件操作;⒉Applet只能通过网络通讯将数据写入其宿主机上的应用中,由应用完成宿主机上的文件写;⒊Applet不能与非宿主机进行网络通讯.⒋Applet不能调用运行主机上的任何程序。
◆ Applet的主要行为,Applet程序的格式, Applet类
行为:⒈初始化方法init() ⒉启动方法start() ⒊停止方法stop() ⒋删除方法destroy()
import java.applet.Applet;
[import ...]//事实上用户在编写Applet程序时的基本工作就是把程序的主类定义成Applet类的一个子类,
public class AppletName extends Applet{ //并根据需要重写Applet类的方法成员。
[public void init(){...}] [public void start(){...}] [public void stop(){...}] [public void destroy(){...}]......
}//在Applet程序中不能再继承Applet以外的类,但仍然可以实现各种接口。
◆ Applet编程,HTML中的Applet标记
<HTML> <HEAD><TITLE>......</TITLE> </HEAD> <BODY>
<APPLET CODE = “Beeper.class” ,
WIDTH=200 , HEIGHT=100>
</APPLET> </BODY></HTML>
Appletviewer [-debug] urls/htmlname (jdk自带)
◆ Applet的GUI界面
Applet中可以使用Java语言中全部AWT组件和工具,包括事件和监听器等来构造一个完整的界面。Applet类在类库中被定义为Panel类的子类,是一个面板容器,其缺省的布局管理器为FlowLayout。
◆ Applet的多媒体设计:2D图形绘制、字符串绘制、图像绘制、动画、声音播放
在Graphics类中定义了多个方法实现了绘图原语,用以绘制各种基本几何图形
drawString(String str , int x , int y)可以在图形界面上绘制字符串。
Java类库中定义了一个java.awt.Image类,在程序中每个具体的图像文件都被看做是该类的对象实例
动画的基本思路是通过在同一位置上按一定时间间隔显示连续画面的方式实现动画功能
在java.applet包中定义了一个AudioClip类,这是一个声音类,声音是该类的一个对象
◆ Applet的交互功能与通讯功能
Applet可以通过处理事件支持交互功能
⒈通过请求同一Web页上其他Applet中的公有方法实现与同一Web页上其他Applet的通讯;
⒉通过使用定义在java.applet包中的API,以受限方式与包含自身的浏览器通讯;
⒊通过使用定义在java.net包中的API利用网络与运行在该Applet的宿主机上的程序通讯。
◆ Applet与Application的比较
Application与Applet的能力比较
相同之处:
◆ 采用同样的语法
◆ 通过Internet进行传播
◆ 可以实现图形界面
不同之处:
Application
◆完整的高级语言程序
◆运行在Java运行时系统的解释器上
◆可以进行正常的读写操作
◆不能演播声音
◆不能显示HTML文本
Applet
◆不是完整的程序
◆运行在Java兼容浏览器中
◆读写能力受到很大限制
◆可以演播声音
◆可以显示HTML文本
第七章《 Java的输入输出》知识点
◆ 流的概念,输入流与输出流
流是Java语言输入输出的方式,Java语言程序通过流来完成输入输出工作。流有两种类型:输入流和输出流。在java.io包中,定义了输入流和输出流的类,分别以不同形式完成输入输出工作。
◆ 常用流与常用的输入输出方法
⒈输入流常用方法
在InputStream中定义了如下九个方法成员,是经常要使用到的方法。
public abstract int read() //读下一字节,返回0~255之间的一个整数,到达流末尾返回-1
public int read(byte[] b) //读取最多b.length个字节写入字节数组
public int read(byte[] b , int off , int len) //读取最多len个字节写入字节数组,off为起始偏移量
public void close() //关闭输入流
public int available() //检测无阻塞情况下可以从这个输入流中读取的字节数
public long skip(long n) //跳过并放弃输入流中的n字节数据并返回n
public boolean markSupported() //测定是否支持标记
public void mark(int readlimit) //标记输入流的当前位置,随后用reset()方法把流重置于标记处
public void reset() //将流的当前位置重置于 mark()方法置标记处
⒉输出流常用方法
在OutputStream中定义了如下五个方法成员,是经常要使用到的方法
public abstract void write(int b) //写指定字节到输出流,数量为b的低8位
public void write(byte[] b) //从数组b写b.length个字节到输出流
public void write(byte[] b , int off , int len) //从数组b起始偏移量off处写len个字节到输出流
public void close() //关闭 public void flush() //清空输出流
第八章《线程》知识点
◆ 线程与多线程
程序中单个顺序的流控制称为线程,多线程指的是在单个程序中可以同时运行多个不同的线程来执行不同的任务。
◆ 线程的状态及转换
一个线程从创建到结束的整个生命周期中,总是处于下列四种状态之一:创建态(new Thread):刚被创建而没有被分配所需资源,此时可以通过调用start()方法启动使其转换为可运行态;可运行态(runnable):具备了运行所需的条件而没有获得处理器,一旦获得系统资源即可进入运行。可运行态线程并不是运行中线程,一个系统中可以同时拥有多个可运行态线程。可用sleep()方法、suspend()方法、wait()方法使其转换为不可运行态;不可运行态(not runnable):不具备运行所需的条件,可用resume()方法、notify()方法使其转换为可运行态;死亡态(dead):上述三种状态均可用stop()使其转换为死亡态,正常结束的线程也转换为死亡态。
◆ 线程体,获得线程体的两种方法
线程体是线程的主体,含有线程的具体内容。
⒈通过继承线程类构造线程体
⒉通过实现接口构造线程体
◆ 线程的两种使用方式
线程在Application和Applet中都可以使用,在Applet中使用得更普遍一些。
第九章《 Java网络编程》知识点
◆ 在Java语言程序中如何访问网络资源
一、URL类
Java类库中定义了java.net.URL类,表示统一资源定位器。
二、URL输入流
URL对象实例可以在应用程序中代表一个网络资源,可以供用户访问资源信息。
◆ Socket通讯机制
套接字Socket是建立服务器/客户通讯通道连接的低层机制,是独立于平台的连接。在Socket通讯机制中,通过Socket的数据是原始字节流信息,通讯双方要约定数据的格式化与解释处理工作。
◆ Datagram通讯机制
数据报是一种非连接方式,通讯数据经过不确定的路径传向目的地,可靠性和正确性都不能保证,甚至可能数据就根本到不了目的地。
◆ InetAddress的使用
InetAddress address = InetAddress.getByName("159.226.3.9");
InetAddress address =InetAddress.getByName("www.sun.com");