Java进阶

二.进阶

<一>Java集合类

1.Collection接口

     ①集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充

     ②集合的特点:

            性能高

            容易扩展和修改

     ③Collection的常用子类:

            List

            Set

            Queue

2.List接口

     ①List接口可以存放任意的数据,而且在List接口中内容是可以重复的

     ②List接口常用子类:

             ArrayList

             Vector

     ③常用操作:

            判断集合是否为空:boolean isEmpty()

            查找指定的对象是否存在:int indexOf(Object o)   (返回列表中第一次出现的指定元素的索引,如果不包含该元素,则返回 -1)

     ④    ArrayList              和                Vector比较

            JDK1.2之后推出                     JDK1.0推出

            采用异步处理方式,性能高    采用同步处理方式,性能低

            属于非线程安全                      属于线程安全

3.Set接口

     ①Set接口中不能加入重复元素,但是可以排序

     ②Set接口常用子类

            散列存放:HashSet (无序)

            有序存放:TreeSet    

4.Iterator接口

     ①集合输出的标准做法是使用Iterator接口

     ②操作原理:

            Iterator是专门的迭代输出接口,迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取出(迭代输出的时候一定不要通过集合操作、删除元素)

5.Map接口

     ①保存形式:

            key——>value的方式保存

     ②常用子类:

            HashMap:无序存放,key不允许重复

            Hashtable:无序存放,key不允许重复

<二>File类

1.文件的创建、删除、重命名

     ①文件重命名时文件夹结构必须处于同一个分区,当文件处于不同的分区时,需要使用文件的拷贝,而不是重命名

<三>Java IO

1.IO流

     ①IO也写作“I/O”,可理解为In和Out,即输入和输出,基本功能也就是读和写

     ②根据数据的走向可分为:输入流、输出流

     ③根据处理的数据类型可分为:字节流、字符流

     ④字节流和字符流:

            字节流可以处理所有类型的数据。在读取时,读到一个字节就返回一个字节。在Java中对应的类都以“Stream”结尾

            字符流仅能够处理纯文本数据。在读取时,读到一个或者多个字节,先查找指定的编码表,然后将查到的字符返回。在Java中对应的类都以“Reader”或“Writer”结尾

2.字符集(Charset)

     ①“字符集”也称作“编码”。各个国家和地区所指定的不同ANSI编码标准中,都只规定了各自语言所需的“字符”

     ②ANSI编码标准所规定的内容包含:

            使用哪些字符,这些字符的集合就叫做“字符集”

            规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫做“编码”

     ③ANSI

            系统预设的标准文字储存形式,不是具体的某一种编码,不同的国家和地区使用不同的标准,一个字符可能使用一个字节或多个字节来表示,称这种字符串为ANSI字符串或者多字节字符串

     ④UNICODE

            国际组织制定的,为各种语言中的每一个字符设定了统一并且唯一的数字编号,不管在什么环境下,它所代表的“字符”内容总是不变的,称这种字符串为Unicode字符串或者宽字节字符串

<四>多线程

1.线程与进程

     ①线程:

            程序中单独顺序的控制流

            线程本身依靠程序进行运行

            线程是程序中的顺序控制流,只能使用分配给程序的资源和环境

     ②进程:

            执行中的程序

            一个进程可以包含一个或多个线程

            一个进程至少要包含一个线程

     ③单线程:程序中只存在一个线程,实际上主方法就是一个单线程

     ④多线程:

            多线程是在一个程序中运行多个任务

            多线程的目的是更好的使用CPU资源

2.线程的实现

     ① 在Java中,线程的实现有两种(线程的启动是通过start()):无论用哪种方式都要重写run()方法

             继承Thread类

             实现Runnable接口 

     ②Thread类:Thread类是在Java.long包中定义的,继承Thread类必须重写run()方法

             定义格式:

                    class className extends Thread{

                           run(){};

                    }

     ③Runnable接口

3.线程的状态

     ①线程也有固定的操作状态

            创建状态:准备好一个多线程的对象

            就绪状态:调用了start()方法,等待CPU进行调度(等待CPU分配资源)

            运行状态:执行run()方法

            阻塞状态:暂时停止执行,可能将资源交给其他线程使用

            终止状态(死亡状态):线程销毁

4.线程的常用方法

     ①取得线程名称:getName()

         取得当前线程对象:currentThread()

         判断线程是否启动:isAlive()

         线程的强行运行:join()

         线程的休眠:sleep()

         线程的礼让:yield()

5.线程的优先级

     ①优先级顺序设置(setPriority()):

            1-MIN_PRIORITY

            10-MAX_PRIORITY

             5-NORM_PRIORITY

             如果什么都不设置默认值是5

6.同步

     ①同步代码块(资源共享时使用同步):在代码块上加上“synchronized”关键字,则此代码块就成为同步代码块

     ②同步代码块格式:

            synchronized(同步对象){

                       需要同步的代码块;

            }

     ③同步方法:除了代码块可以同步,方法也是可以同步的

     ④方法同步格式:

            synchronized void 方法名称(){}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值