《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都有其生命周期,分为初始化、运行、停止、消亡。
- 《Java从入门到实践》6-10
- 《Java从入门到实践》1-5
- 《Java从入门到实践》11-15
- python编程从入门到实践 10-6 加法运算
- python从入门到实践:10-6 加法运算
- python从入门到实践7-6
- 《C++从入门到实践》
- c++从入门到实践
- Docker从入门到实践
- Kafka从入门到实践
- ActiveMQ从入门到实践
- python从入门到实践:9-6 冰淇淋小店
- Python从入门到实践 习题15-6
- Python编程:从入门到实践(课后习题6)
- Python 从入门到实践 6-1 课后习题
- Python 从入门到实践 6-4 课后习题
- Python 从入门到实践 6-7 课后习题
- Python 从入门到实践 8-6 课后习题
- 强力推荐FIREFOX+FIREBUG
- 快速排序算法原理与实现
- 2014. Dairy Queen
- MYSQL入门小结
- #pragma INITCODE 是什么意思
- 《Java从入门到实践》6-10
- SDLframework实现之消息循环的封装
- rsyslog服务配置
- 一次简单的SQL优化给我的经验--索引不可用的情况
- AT24C02串行E2PROM的读写
- 栈的顺序存储基本操作
- 模块参数
- fedora 16 gnome更换主题
- 2011年