《Java从入门到实践》6-10

来源:互联网 发布:sql备份数据库 编辑:程序博客网 时间:2024/05/16 12:12

第六章 复合数据类型

数组的定义方式有两种(定义数组时不能指定数组长度)

datatype[ ] arrayName;       datatype arrayName[ ];

创建数组的时候需要为它分配内存空间,当然也可以将定义和创建写在一起,比如

datatype[ ] arrayName= new datatype[length];

或者初始化,定义并初始化数组就等于为它分配了内存空间

字符串一旦创建了对象,就不能改变长度了。

字符串连接,直接使用+符号,比如String s="this is"+"one";

字符串比较

方法名称方法功能equals()比较两个字符串的内容是否相等,返回boolean值equalsIgnoreCase()忽略大小写,比较两个字符串的内容是否相等,返回boolean值compareTo()按字典顺序比较字符串,返回int值字符串其他操作

方法名称方法功能length(0返回字符串的长度toLowerCase()将其中的英文字母转换为小写toUpperCase()将其中的英文字母转换为大写charAt(int index)返回指定索引处的字符indexOf(String str)返回指定字符串第一个找到的索引位置substring(int beginIndex)返回指定索引处到字符串末尾的子串substring(int beginIndex,int endIndex)返回指定索引范围的子串StringBuffer类是用来解决过多字符串对象的问题,使用方法如下

方法名称方法功能length()返回字符串序列的长度insert()在字符串中间插入(提供了参数不同的多个方法)append()在字符串末尾追加(提供了参数不同的多个方法)setCharAt(int index,char ch)设定指定索引位置为指定字符toString()返回字符串集合框架在Java语言中,集合框架包括各类集合接口,接口实现类/集合操作,通过继承关系形成自上而下的体系结构。

集合框架的核心接口为Collection,List,Set,Map

集合框架极大地方便了用户程序开发,有利于节省精力,也提高了软件的重用性和稳定性。

Java中为访问集合元素定义了迭代器 Iterator,使用方法如下所示

方法名称方法功能hasNext()在迭代器当前位置,是否还有下一个元素next()返回下个元素remove()删除迭代器最后返回的那个元素列表(List)提供了对象的有序存放,其中存放的对象允许重复。

List接口的具体实现类主要有ArrayList和LinkedList。前者是一种类似数组的形式存储对象,适合随机访问,后者采用链表形式,适合频繁插入删除的操作。

集合(Set)存放对象不允许重复,无序。

Set接口的具体实现类有HashSet和TreeSet。前者能快速定位一个元素,但是放入该接口的对象需要实现hashCode()方法。后者将放入其中的元素按序存放,但要求对象是可排序的。

映射(Map)提供了一种“键-值”对映射的方式存放对象。其中键和值都可以是对象。键要求唯一性,值没有唯一性要求。

同样有具体实现类HashMap和TreeMap。

增强for循环一种简单且兼容的语法,采用for-each语句形式。语法格式如下:

for(type elementName : array | collection) {...}

泛型提高程序的安全性和可读性,可以应用于集合类/定义泛型类/泛型方法等。

泛型的定义方法如下

CollectionType< datatype > collectionName = new datatype CollectionType< datatype >( );

泛型类是指包含类型参数的类。在泛型类的内部,类型参数可以用作变量的类型或方法返回参数的类型。

定义格式为 class className< typeParamList >类型参数可以是各种了,自己指定

泛型方法的定义格式如下

< typeParamList >returnType functionName (ParamList);

泛型通配符泛型中可以使用“?”作为通配符,用来匹配任何数据类型

枚举没太多感触

自动装箱和拆箱用于解决Java语言中基本数据类型与包装数据类型之间的转换问题。

包装类型对于基本数据类型,Java都为其定义了相应的包装类型,即对象类型,采用面向对象方法对数据类型进行了封装。

----------------------------------------------分----界----线-------------------------------------------

第七章 异常

程序运行过程中发生的所有异常都被封装成异常类,根据异常的不同特点,可以划分为不同的异常类型。

异常包括运行时异常和可控异常

系统定义的常见运行时异常有NullPointerException,ArithmetiException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,ClassCastException,IndexOutOfBoundsException等

系统定义的可控异常有ClassNotFoundException,IOException,DataFormatException,NamingException等。

可控异常必须要捕获或抛出

使用try...catch语句可以捕获异常,而且可以分类型捕获

finally语句用于是否发生异常都要执行的操作,需要与try...catch语句配合使用。

使用throws语句在方法声明时抛出方法体中可能存在的异常,语法格式如下

{public|protected|private} {static} {final|abstract} {native} {synchronized} returnType methodName ({paramList}) throws exceptionList {方法体}

throw语句用于在方法体中抛出异常

用户还可以自定义异常,语法格式如下

class ExceptionName extends Exception{类体}

----------------------------------------------分----界----线----------------------------------------------

第八章 线程

进程是个动态的过程,是程序的一次执行。

线程对象是指可以产生线程的对象,比如Java中的Thread对象、Runnable对象。

线程是指正在执行的一个指令序列。

创建线程有两种方式,继承java.lang.Thread类或者实现Runnable接口

Thread类是Java语言中定义好的

如果自定义的线程类还要继承其他类,就不能采用上一方式(Java语言不支持类的多继承),此时可以实现Runnable接口

启动线程:1.Thread类是直接调用start()方法就行了,2.实现Runnable接口是转换为Thread类,然后调用start()方法

线程调度过程中,有:setPriority()方法为线程设置优先级,sleep()方法使线程休眠,yield()方法使线程让步,join()方法使线程等待
 
第九章 Java的输入输出流

字节输入流用于以二进制的形式从数据源中读取数据。InputStream类是字节输入流的基类,该类包括FileInputStream、FilterInputStream、BufferedInputStream、DataInputStream等子类。

字节输出流用于以二进制的形式将数据写入目标设备。OutputStream类是字节输出流的基类,该类包括FileOutputStream、FilterOutputStream、BufferedOutputStream、DataOutputStream、PrintStream等子类。

字符输入流用于以字符的形式从数据源中读取数据。Reader类是字符输入流的基类,该类包括FileReader、BufferedReader等子类。

字符输出流用于以字符的形式将数据写入目标设备。Writer类是字符输出流的基类,该类包括FileWriter、BufferedWriter、PrintWriter等子类。

文件经常用于输入输出操作的处理设备,Java语言中提供了File和RandomAccessFile来对文件进行处理。

File类用于管理文件系统中的文件或目录。该类创建了许多方法可以对文件或目录进行各种操作。

RandomAccessFile类用于随机地读写文件。

第十章 图形用户界面(GUI)

AWT包是图形用户界面处理的基础工具包,Swing包在AWT包的基础上进行了升级、扩展,具有更加强大的图形界面开发功能。

------------------------------------------------------------------------------------------------------

AWT是抽象窗口工具箱的简称,包括了图形界面编程的基本类库。主要包括四个部分:容器(用于放置基本组件,其本身也是一种组件),布局管理器(对容器中放置的组件进行布局管理),事件处理(采用事件处理机制,使得用户能够通过图形界面与系统进行交互),基本组件(包括按钮、标签、文本域等,是图形界面的基本组成元素)。

容器:用来存放其他组件的一种特殊组件,基类是Container类。而Container类继承了Component类,该类的两个常用子类是Frame和Panel类。

Frame类容器是一种带有边框的框架窗口,可以不依赖于其他组件独立存在。Frame类继承了Window类,可以带标题、设置大小等。

Panel类容器没有任何边框,而且需要存在于其他容器中。该类容器只是包含在其他容器中的一个区域,通常用来将许多组件组合在一个区域内。

布局管理器:用于布局容器中的组件,包括设定组件的位置和尺寸大小等。每个容器被创建后,都会有一个默认布局管理器。另外,可以设置指定的布局管理器对组件进行管理。Java语言的AWT包提供了不同类别的布局管理器,包括BorderLayout、FlowLayout、CardLayout等。

BorderLayout管理器:将容器划分为东南西北中五个区域,是Frame类的默认布局管理器。

FlowLayout管理器:用于将组件按照从左到右、从上到下的顺序进行布局。是Panel类的默认布局管理器。采用FlowLayout布局,不会改变组件的大小,按组件原有尺寸显示。

CardLayout管理器:用于将组件以卡片的形式进行布局。每张卡片属于不同的层次,并且充满整个容器。当往容器中添加组件时,需指定所在卡片的名字。

GridLayout管理器:将容器划分为由行和列组成的多个网格,每个网格放一个组件,采用GridLayout布局时,在容器中按照从左到右、从上到下的顺序从网格中逐个添加组件。

GridBagLayout管理器:在GridLayout管理器的基础上提供了更加复杂的功能。

事件处理:图形界面与用户进行交互的重要内容。Java语言的事件处理机制包括事件源、事件、事件处理器三个主要的概念。

事件源——产生事件的各种组件,如窗口、按钮等。

事件——用户对事件源的各种操作动作。

事件处理器——用于接收并处理事件的方法。是事件处理的核心部件,java.awt.event包定义了接口,分为事件监听器和事件适配器。

基本组件:构成图形用户界面的基本元素,比如按钮、标签等。

---------------------------------------------------------------------------------------------------------

采用AWT包开发的图形界面依赖于具体的操作系统,不同的操作系统显示的图形外观可能不同。AWT的组件称为重量级组件。

Swing包在AWT包的基础上,完全采用Java语言开发,实现了图形界面的跨平台。Swing包提供了支持跨平台功能的更加丰富的组件库,也称为轻量级组件。

Swing包中的组件类通常以字母“J”开头,大部分组件都继承了JComponet类。

-------------------------------------------------------------------------------------------------------

AWT包中的panel类有个特殊的子类java.applet.Applet。Applet使用Java语言编写的小应用程序,嵌入到Web页面中在客户端浏览器执行。每个Applet都有其生命周期,分为初始化、运行、停止、消亡。

原创粉丝点击