JAVA学习第六周总结

本周的知识点是线程和流,线程抽象难懂,学习起来费劲,流相对来说还好点,可以快速理解。
第一天先是对上周的集合有关作业进行讲解,对集合做了完备的回顾。下午对线程进行学习,介绍了进程和线程,并发与并行。以及实现多线程的两种方式,继承Thread和实现Runnable接口。推荐多用接口少用继承。然后学习线程中的常用方法。
第二天接上文继续学习线程方法,说了直接调用run()方法和start()方法的区别,run方法不会开启新的线程,调的都是main线程,只有start才可以。然后学习了线程的状态(创建
状态、就绪状态、运行状态、阻塞状态、死亡状态),最后学习保证数据安全所使用的方式:1、同步方法,使用synchronized关键字修饰的方法2、同步代码块,也是synchronized修饰的代码块,都是为了保证每次只有一个线程访问。然后说了线程安全与非线程安全的对比,Hashtable,Vector,StringBuffer,这些类的源码方法中都使用了synchronized关键字修饰,ArrayList,LinkedList,HashMap,HashSet都不是线程安全的。
第三天讲解了死锁这一因程序本身问题而出现的问题,多个线程同时竞争同一个资源。然后学习了生产者和消费者模式,这是一种思想,用于平衡线程之间的通信。接着学习了
Object类提供的一些方法,wait()方法、notify()方法、notifyAll()方法。最后是Callable接口,为了线程如果需要返回值,可以实现Callable接口,其通过FutureTask类的构造方法来初始化。
第四天学习了可重入锁和可重入读写锁,ReentrantLock是JDK给我们提供的可重入锁,是Lock接口的实现类。ReentrantReadWriteLock属于一个复合锁类,是ReadWriteLock的实现类,包括读锁和写锁。接着学习了Collections工具类提供的线程安全集合,synchronizedList(),
synchronizedSet(),synchronizedMap()集合。JDK提供的线程安全的集合类,CopyOnWriteArrayList(),
CopyOnWriteArraySet(),ConcurrentHashMap()集合。最后简单讲解了队列和线程池。
第五天开始学习了Filel类以及提供的一些方法,都是所见即所得的方法。然后学习了字节流和字符流,字节流父类是InputStream和OutputStream,InputStream的子类是FileInputStream,ObjectOutputStream和DataOutputStream.OutputStream的子类是FileOutputStream,ObjectOutputStream和
DataOutputstream。字符流的父类是Reader和Writer,Reader的子类是BufferedReader和InputStreamReader,Writer的子类是BufferedWriter,OutputStreamWriter和PrintWriter。
第六天学习了数据流和对象流。数据流DataInputStream和DataOutputStream,主要用于写入二进制文件。对象流通过构造方法传一个FileInputStream对象,而不是上面学的文件文本之类的东西。最后是序列化,主要是对象的类必须实现Serializable接口,这个接口只是一个标识,里面无内容,JAVA中的两个标识接口Cloneable,表示实现此接口可以被克隆。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值