Java部分总结

JAVA部分总结



前言

Java语言诞生于1995年,由SUN公司推出,2009被ORAClE公司收购。


提示:以下是本篇文章正文内容,下面案例可供参考

一、HashMap,HashTable,ConcurrentHashMap 之间的区别,及性能对比

性能对比:
ConcurrentHashMap>HashMap>HashTable
区别:
1.HashMap是非线程安全,HashTable是线程安全
2.HashMap允许null键和null值,HashTable不允许
3.HashMap效率比HashTable要高
4.Hashtable是同步的,而HashMap不是。
区别二:
HashTable使用的是Synchronized关键字修饰,ConcurrentHashMap是使用了锁分段技术保证线程安全。
HashTable采用锁机制是一次锁住整个hash表,ConcurrentHashMap是一次锁住一个桶。

二、什么是线程?线程和进程的区别?

线程:是进程的一个实体
进程:具有一定独特功能的程序关于某个数据集合上的一次运行活动
特点:线程的划分尺度小于进程,这使多线程程序拥有高并发性,线程运行是内存各自独立,线程之间内存共享。

三、线程的基本方法有什么?

线程相关的基本方法有wait,notify,notifyAll,sleep,join,yield等。
1.线程等待(wait)
  只有等待另外线程的通知或被中断才会返回,会释放对象的锁。
2.线程睡眠(sleep)
  与wait方法不同的是sleep不会释放当前占有的锁。
3.线程让步(yield)
  让后面的先操作,自己退后
4.线程中断(interrupt)
  通知一个信号,线程本身不会因此改变。
5.join等待其他线程终止
  等待其他线程终止。
6.线程唤醒(notify)
      唤醒在此对象监视器上等待的单个线程,, 直到当前的线程放弃此对象上的锁定,才能继续执行被唤醒的线程。

四、创建线程有几种方式

1.继承Thread类
Thread类本质是实现了Runnable接口的一个实例,代表一个线程的实例。
2.实现Runnable接口
如果自己的类已近extends(继承)另一个类,就无法直接extends Thread,此时,可以实现一个Runnable接口。
3.实现Callable接口
它的接口有点像Runnable接口的增强版,call()方法比run()方法更强大。
call()方法可以有返回值,可以声明抛出异常类。
4.通过线程池方法
1.什么是线程池,如何使用?
将多个线程对象放到一个容器中,当使用时不用new线程而是直接去池中拿。
2.常用的线程池有哪些?
newSingleThreadExecutor:(1)创建一个单线程的线程池
newFixedThreadPool :(2)创建固定大小的线程池
newCachedThreadPool :(3)创建一个可缓存的线程池
newScheduledThreadPool :(4)创建一个大小无线的线程池
newSingleThreadExecutor :(5)创建一个单线程的线程池


总结

本文简单介绍了JAVA的Hash之间的性能和区别,线程的区别、基本方法与创建线程的几种方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值