notify可能会导致死锁,而notifyAll则不会。 任何时候只有一个线程可以获得锁,也就是说只有一个线程可以运行synchronized 中的代码。 使用notifyall,可以唤醒所有处于wait状态的线程,使其重新进入锁的争夺队列中,而notify只能唤醒一个。 wait() 应配合while循环使用,不应使用if,务必在wait()调用前后都检查条件,如果不满足,必须调用notify()唤醒另外的线程来处理,自己继续wait()直至条件满足再往下执行。 notify() 是对notifyAll()的一个…

2021年9月27日 0条评论 89点热度 0人点赞 小小调酒师 阅读全文

1、使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2、使用stop方法强行终止,但是不推荐这个方法,因为stop和suspend及resume一样都是过期作废的方法。 3、使用interrupt方法中断线程。 示例代码: 支付 ¥1.99 购买本节后解锁剩余1%的内容 登录购买 OR 免登录购买 微信支付 如已付费购买,请 登录 或 免登录验证。

2021年9月27日 0条评论 95点热度 1人点赞 小小调酒师 阅读全文

创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。 调用 execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。 因此,长时间保持空闲的线程池不会使用任何资源。 支付 ¥1.99 购买本节后解锁剩余40%的内容 登录购买 OR 免登录购买 微信支付 如已付费购买,请 登录 或 免登录验证。

2021年9月27日 0条评论 92点热度 0人点赞 小小调酒师 阅读全文

Annotation(注解)是 Java 提供的一种对元程序中元素关联信息和元数据(metadata)的途径和方法。 Annatation(注解)是一个接口,程序可以通过反射来获取指定程序中元素的 Annotation对象,然后通过该 Annotation 对象来获取注解中的元数据信息。 Java5.0 定义了 4 个标准的 meta-annotation 类型,它们被用来提供对其它 annotation 类型作说明。 @Target说明了Annotation所修饰的对象范围: Annotation可被用于 pac…

2021年9月27日 0条评论 94点热度 0人点赞 小小调酒师 阅读全文

Array(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。 Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大,因为这需要重排数组中的所有数据, (因为删除数据以后, 需要把后面所有的数据前移) 缺点: 数组初始化必须指定初始化的长度, 否则报错 例如: List—是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式,它继承Collection。 List有两个重要的实现类:ArrayList和LinkedList ArrayList: 可以看作是能够…

2021年9月27日 0条评论 89点热度 0人点赞 小小调酒师 阅读全文

构造器不能被继承,因此不能被重写,但可以被重载。 String 类是 fifinal 类,不可以被继承,继承 String 本身就是一个错误的行为,对 String 类型最好的重用方式是关联关系(Has-A)和依赖关系(Use-A)而不是继承关系(Is-A)。 支付 ¥1.99 购买本节后解锁剩余87%的内容 登录购买 OR 免登录购买 微信支付 如已付费购买,请 登录 或 免登录验证。

2021年9月27日 0条评论 99点热度 0人点赞 小小调酒师 阅读全文

+= 操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换。如: 有错误。 支付 ¥0.99 购买本节后解锁剩余54%的内容 登录购买 OR 免登录购买 微信支付 如已付费购买,请 登录 或 免登录验证。

2021年9月27日 0条评论 95点热度 0人点赞 小小调酒师 阅读全文

有可能.在产生hash冲突时,两个不相等的对象就会有相同的 hashcode 值.当hash冲突产生时,一般有以下几种方式来处理: 拉链法:每个哈希表节点都有一个next指针,多个哈希表节点可以用next指针构成一个单向链表,被分配到同一个索引上的多个节点可以用这个单向链表进行存储。 开放定址法:一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入。 再哈希:又叫双哈希法,有多个不同的Hash函数.当发生冲突时,使用第二个,第三个….等哈希函数计算地址,直到无冲突。 浅拷…

2021年9月27日 0条评论 98点热度 0人点赞 小小调酒师 阅读全文

强引用是平常中使用最多的引用,强引用在程序内存不足(OOM)的时候也不会被回收,使用方式: 软引用在程序内存不足时,会被回收,使用方式: 可用场景: 创建缓存的时候,创建的对象放进缓存中,当内存不足时,JVM就会回收早先创建的对象。 支付 ¥1.99 购买本节后解锁剩余72%的内容 登录购买 OR 免登录购买 微信支付 如已付费购买,请 登录 或 免登录验证。

2021年9月27日 0条评论 94点热度 0人点赞 小小调酒师 阅读全文

String是只读字符串,它并不是基本数据类型,而是一个对象。 从底层源码来看是一个final类型的字符数组,所引用的字符串不能被改变,一经定义,无法再增删改。 每次对String的操作都会生成新的String对象。 每次+操作:隐式在堆上new一个跟原字符串相同的StringBuilder对象,再调用append方法拼接+后面的字符。 StringBuffer与StringBuilder都继承了AbstractStringBulder类, 而AbtractStringBuilder又实现了CharSequence…

2021年9月27日 0条评论 109点热度 0人点赞 小小调酒师 阅读全文
134567