JAVA核心API(下)


第八章 JAVA集合

第一节:Java集合的引入

  数组的长度是固定,不能根据我们的需求自动变长或者变短。所以就引入了可变化长度的集合。
第二节:List集合

  List集合里的元素是可以重复的。List接口的主要实现类有ArrayList,和LinkedList。

  在数据量不大的情况下,这两个类性能差别不大,一般情况下,集合里的元素很少变化的,一般用ArrayList,

  1. 数据量较大时在随机查询方面ArrayList比较优秀,在ArrayList中进行随机访问所消耗的时间是固定的而LinkedList是不支持快速的随机访问的。

  2. 假如有一个列表,要对其进行大量的插入和删除操作,在这种情况下LinkedList就是一个较好的选择。

  当一个元素被加到ArrayList的最开端时,所有已经存在的元素都会后移,这就意味着数据移动和复制上的开销。相反的,将一个元素加到LinkedList的最开端只是简单的为这个元素分配一个记录,然后调整两个连接。

  参考: http://pengcqu.iteye.com/blog/502676
第三节:集合的遍历

 /**
         * 用Iterator遍历集合
         */
        Iterator<Student> it=list.iterator();  // 返回一个迭代器
        while(it.hasNext()){
            Student s=it.next();   // 返回迭代的下一个元素。
            System.out.println("姓名:"+s.getName()+"年龄:"+s.getAge());
        }


 /**
         * 用foreach遍历
         */
        for(Student s:list){
            System.out.println("姓名:"+s.getName()+"年龄:"+s.getAge());
        }
View Code

第四节:Set集合

  Set集合是Collection接口的子接口,没有对Collection接口进行扩展,里面不允许存在重复的内容;HashSet--无序,不重复。
第五节:Map集合

  HashMap

 

第九章 JAVA多线程

第一节:Java多线程的引入
第二节:Java多线程的实现

  1,继承Thread类

  2,实现Runnable接口

  3,多线程实现数据共享

  http://blog.java1234.com/blog/articles/230.html
第三节:线程状态

  QQ鍥剧墖20161213195251.png
第四节:线程常用方法

  1,getName(); 返回该线程的名称。

  2,currentThread();返回对当前正在执行的线程对象的引用。

  3,isAlive();测试线程是否处于活动状态。

  4,sleep();线程休眠。

  5,setPriority(int newPriority);更改线程的优先级。

  6,yield();暂停当前正在执行的线程对象,并执行其他线程。

  http://blog.java1234.com/blog/articles/232.html
第五节:线程同步

  可以给方法加同步,也可以用同步块:

   http://blog.java1234.com/blog/articles/233.html

第十章 JAVA IO流

第一节:IO流简介

  IO 流的分类

  根据处理数据类型的不同分为:字符流和字节流

  根据数据流向不同分为:输入流和输出流

QQ鍥剧墖20161219090947.png
第二节:文件操作 File类

  1,public boolean mkdir() 创建此抽象路径名指定的目录。

  2,public boolean createNewFile() 创建一个文件

  3,public boolean delete() 删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。

  4,public boolean exists() 测试此抽象路径名表示的文件或目录是否存在。

  5,public File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

  6,public boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。

  http://blog.java1234.com/blog/articles/235.html

  File file=new File("C://apache-tomcat-7.0.63");...运行输出:C:\apache-tomcat-7.0.63

     系统中的路径都是“\”, 在java中需要转义“\\”, 如果写成“//”或者“/”也没问题(本人验证过)。

   
第三节:InputStream和OutputStream

  InputStream输入流可以把文件从硬盘读取到内存;

  OutputStream输出流可以把文件从内存写入到硬盘;文件操作方面用的是FileInputStream和FileOutputStream;

  http://blog.java1234.com/blog/articles/237.html
第四节:BufferedInputStream和BufferedOutputStream

带缓冲的输入和输出流;缓冲的概念,就是在A,B之间建立内存缓冲区,读取得快,就先放缓冲区,然后再从缓冲区写入指定目标,和没有缓冲比,效率快很多。

public class Demo01 {

    /**
     * 缓冲方式
     * @throws Exception
     */
    public static void bufferStream()throws Exception{
        BufferedInputStream bufferedInputStream=new BufferedInputStream(new FileInputStream("c://《一头扎进J2SE》V2.0视频笔录2.doc"));
        BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(new FileOutputStream("c://复制的《一头扎进J2SE》V2.0视频笔录2.doc"));
        int b=0;
        long startTime=System.currentTimeMillis();
        while((b=bufferedInputStream.read())!=-1){
            bufferedOutputStream.write(b);
        }
        bufferedInputStream.close();
        bufferedOutputStream.close();
        long endTime=System.currentTimeMillis();
        System.out.println("缓冲方式话费的时间:"+(endTime-startTime));
    }
    
    
    /**
     * 非缓冲方式
     * @throws Exception
     */
    public static void stream()throws Exception{
        InputStream inputStream=new FileInputStream("c://《一头扎进J2SE》V2.0视频笔录.doc");
        OutputStream outputStream=new FileOutputStream("c://复制的《一头扎进J2SE》V2.0视频笔录.doc");
        int b=0;
        long startTime=System.currentTimeMillis();
        while((b=inputStream.read())!=-1){
            outputStream.write(b);
        }
        inputStream.close();
        outputStream.close();
        long endTime=System.currentTimeMillis();
        System.out.println("非缓冲方式话费的时间:"+(endTime-startTime));
    }
    
    public static void main(String[] args) throws Exception {
        //stream();
        bufferStream();
    }
}
View Code

第五节:Reader和 Writer

   主要用于文本的读取和写入,一般使用的实现类是FileReader和FileWriter;

  http://blog.java1234.com/blog/articles/239.html

 

第十一章 JAVA debug断点调试

第一节:断点调试的重要性
第二节:eclipse debug使用基本操作
第三节:常见调试 F6 单步 F8完成 F5进入方法
第四节:ctrl+shift+i 查看表示式值
第五节:运行时动态修改变量值

  http://blog.java1234.com/blog/articles/245.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM