Java学习(六)Java中高级操作

一、Collection

1、定义: 一个动态的对象数组,集合中的对象内容可以任意扩充。。特点:性能高、容易扩展和修改。常用子类:List和Set。 

2、子类——List

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

(2)子类:ArrayList 和Vector

(3)常用操作:

                         判断集合是否为空:boolean isEmpty()//返回布尔值

                         查找指定的对象是否存在:int indexOf(Object o)//存在会返回元素位置,否则返回-1

//换成lists =new ArrayList<String>();// 同样可以执行。

比较:

区别                        ArrayList                             Vector                       

退出时间                JDK1.2之  后                  JDK1.2之后

性能                  异步处理,性能高          同步处理,性能低 

线程安全                    否                                        是     

3、子类——Set

(1)不能加入重复元素,可以排序。

(2)

4、Iterator接口
(1)集合输出的标准操作:标准做法,使用Iterator接口。

(2)操作原理:Iterator是专门的迭代输出接口,迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取出。

在迭代输出的时候不能对集合进行删除//关于remove的使用

5、Map接口

(1)保存形式:key-value形式

(2)常用子类:

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

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

(3)map.keySet();//得到所有的键key

          map.values();//得到所有的值

二、File介绍

1、如何在Eclipse中查看JDK类库的源代码?

答:(1)点 “window”-> "Preferences" -> "Java" -> "Installed JRES"

(2)选中所使用的JRE,然后点边上的 "Edit...", 会出现一个窗口(Edit JRE)

(3)选中rt.jar文件,展开后,可以看到“Source Attachment:(none)”,如下图。(我已经操作好,所以显示不为none)

   选中“Source attachment”并点开右边的“Source Attachment”。

(4)如下图,选中“External location”,并点击右侧“External File”。选择“src.zip”,注意路径,按照自己安装的路径去查找。下面一路确定即可。

2、在IDE中选中所需查看的类,方法,字段,直接按 F3 键即可。以常用的“System.out.println()”为例,选中“out”,按“F3”打开“System.class”并定位到“out字段”。

3、

4、文件创建、删除、

(1)创建

按F5刷新,可以在目录里看到。在声明时,“路径/文件名.文件名格式”。其中,"../"表示上一级。其中,"../../"表示上上一级。

(2)删除用file.delete();

(3)重命名的话,用已经声明的一个文件名就好。

           File newname=new File("new hello.txt");

           file.renameTo(newname);

(4)移动的话,在已经声明的文件之后判断一下文件是否存在。存在的话,执行  File newname=new File("bin/new hello.txt");

就可以实现移动。文件夹结构必须处于同一个分区。不同分区的只能拷贝。 

5、文件夹创建、重命名、删除

(1)创建(本级、多级)

(2)重命名(在同一分区)

(3)删除(空文件夹)

6、文件属性的读取

7、文件属性设置

8、遍历文件夹

9、文件简单的读和写

三、Java多线程

1、区别线程和进程

(1)进程:可包含多个线程(大于等于1)。指执行中的程序。

(2)线程:程序中单独顺序的控制流。线程是程序中的顺序控制流,只能使用和分配给程序的资源和环境。

(3)单线程:程序中只存在一个线程,主方法就是一个主线程。

(4)多线程:一个程序中执行多个任务,这样可以更好的使用CPU资源。

2、线程的实现

(1)两种实现方法:继承Thread类和实现Runnable接口

(2)Thread类:在java.lang包中定义的。 

         格式:

                class className extends Thread {run(){};}

(3)Runnable接口同Thread类。

次数太少不必并行使用CPU资源。

3、线程的状态

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

(2) 就绪状态:调用了start()方法,等待CPU进行调度。

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

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

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

4、线程的常用方法

(1)获得当前线程对象:currentThread()

(2)获得线程名称:getName()

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

(4)线程的强行运行:join()

(5)线程的休眠:sleep()

5、线程的优先级

(1)按界别来说 1-MIN_PRIORITY、5-NORM_PRIORITY(默认)、10-MAX_PRIORITY。

(2)

6、线程同步

(1)同步:加关键字“synchronized”,称为同步代码块。即

       synchronized(同步对象){需要同步的代码块;}

       同步方法: synchronized void 方法名称(){}

(2)死锁:两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。

(3)线程运行周期:

四、Java的输入与输出

1、作用:读取设备上的数据,硬盘文件、内存、键盘、网络。。。。

2、分类:输入流和输出流(按数据走向),字节流和字符流(按处理的数据类型)

     字节流:可以处理所有类型的数据,如MP3,图片。在Java中所有类均以Stream结尾。在读取时,读入一个字节返回一个字节。

     字符流:处理纯文本数据,如TXT。在java中所有类均以Reader、Writer结尾。在读取时,读入一个字符返回一个字符。

 3、区别 字符、 字节、编码

(1)字节:通过网络传输信息或者在硬盘或内存中存储信息的单位,是计算机信息技术用于计量存储容量和传输容量的一种计量单位。1个字节等于8位二进制。如0x01..

(2)字符(char):是人们使用的记号,抽象意义上的一个符号。

(3)字符集(charset)/编码:规定了可以使用哪些字符和每个字符 用一个字节存储还是多个字节存储。

          ANSI字符串在内存中,“字符”以ANSI编码形式存在的,一个字符可能使用一个字节或者多个字节表示。

         UNICODE代表的字符内容是不变的,有很多标准:UTF-8、UTF-7、UTF-16。(国际间)

4、用字节流读写数据

      在IOS需指明“UTF-8”。如在String inpstr=new String(input,"UTF-8");注意流打开一定要进行流关闭,下图没写,自己补充。

5、使用带缓冲的字节流读写数据(速度更快)

6、使用字符流读写数据

 

7、使用带有缓冲的字符流读写数据

8、FileReader与FileWriter

9、 RandomAccessFile随机文件读写

读取结果有问题,还没有查出来具体的问题。 

10、使用Apache IO库操作IO与文件

(1)下载jar包地址:http://commons.apache.org/proper/commons-io/download_io.cgi

(2)FileUtils 进行查验看是否可以用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值