Java基础
LeoSha
求真务实
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于死锁,并用Java实现一个死锁
产生死锁的原因主要是: (1) 因为系统资源不足。 (2) 进程运行推进的顺序不合适。 (3) 资源分配不当等。 如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则 就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。 产生死锁的四个必要条件: (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 请求与保持条件:一个进程原创 2015-05-25 09:38:56 · 795 阅读 · 0 评论 -
Java的set,map容器中如何唯一确定一个元素——hashCode()和equals()
问题描述如标题。 首先明确: 1.equals方法用于比较对象的内容是否相等(覆盖以后) 2.hashcode方法只有在集合中用到 3.当覆盖了equals方法时,比较对象是否相等将通过覆盖后的equals方法进行比较(判断对象的内容是否相等)。下面是添加一个元素,保证元素不重复的流程: 1. 首先计算插入元素的hashCode,若容器中无与其相等的hashCode,则该元素肯定原创 2015-05-22 10:02:17 · 1995 阅读 · 0 评论 -
TCP通信中,BufferedWriter和PrintWriter用来实现输出流的实现方式与区别
区别: 1. PrintWriter的print、println方法可以接受任意类型的参数,而BufferedWriter的write方法只能接受字符、字符数组和字符串; 2. PrintWriter的println方法自动添加换行,BufferedWriter需要显示调用newLine方法; 3. PrintWriter的方法不会抛异常,若关心异常,需要调用checkError方法看是否有异原创 2015-05-22 17:05:15 · 2276 阅读 · 0 评论 -
阿里2015Java实习生笔试附加题:放取苹果的多线程问题
题目描述: 用Java模拟一个拿苹果与放苹果的过程。现有一个苹果盒子,最多容纳5个苹果。一个人一直向盒子中放苹果,另一个人一直从盒子中拿苹果。思路: 典型的生产者与消费者的多线程问题。class AppleBox{//苹果盒子类,包含放进苹果、拿出苹果的方法 private int i = 0; public synchronized void addApple()原创 2015-03-22 10:24:48 · 3494 阅读 · 0 评论 -
Java实现多线程经典问题:使用三个线程实现输出ABCABC循环
使用三个线程实现ABCABC……循环。 代码如下://标记类,用来让三个线程共享,同时也是三个线程中同步代码快的标记对象。//之前这个标记我设置成Integer,但是发现Integer进行加法运算时会改变对//象引用(原因是自动装箱),因此出现异常抛出。所以索性自己定义Flag类。class Flag{ int i=0; public synchronized void s原创 2015-08-08 16:05:35 · 2871 阅读 · 0 评论
分享