![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程语言
shangrila_kun
这个作者很懒,什么都没留下…
展开
-
生产者与消费者 Java代码描述
/* 线程通讯: 一个线程完成了自己的任务时,要通知另外一个线程去完成另外一个任务. 生产者与消费者wait(): 等待 如果线程执行了wait方法,那么该线程会进入等待的状态,等待状态下的线程必须要被其他线程调用notify方法才能唤醒。 一个线程如果执行了wait方法,那么该线程就会进入一个以锁对原创 2017-02-23 19:40:23 · 305 阅读 · 0 评论 -
《重构-改善既有代码的设计》-读书笔记
重构的第一步为即将修改的代码建立一套可靠的测试环境。分解并重组代码代码块越小,代码的功能就愈容易管理,代码的处理和移动也就越轻松。变量名称是代码清晰的关键。代码应该表现自己的目的,这一点非常重要。尽量去掉一些多余的临时变量。临时变量往往引发问题,它们会导致大量参数被传来传去,而其实完全没有这种必要,你很容易跟丢它们,尤其在长长的函数之中更是如此。当然,这么做也会付出一些性能...原创 2019-04-09 16:48:08 · 330 阅读 · 0 评论 -
数据库知识点总结
本文内容可以滞后,最新文章请访问:博客 1、SQL中的关键字讲解1.1 distinct用法作用于单列select distinct name from A作用于多列select distinct name, id from A//实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持。COUNT统计select count(distinct name原创 2017-11-18 21:12:44 · 268 阅读 · 0 评论 -
Map集合中value()方法与keySet()、entrySet()区别
在Map集合中values():方法是获取集合中的所有的值----没有键,没有对应关系,KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key entrySet():Set> entrySet() //返回此映射中包含的映射关系的转载 2017-06-14 20:33:53 · 461 阅读 · 0 评论 -
Java学习之Iterator(迭代器)的一般用法 (转)
迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返转载 2017-06-14 20:13:22 · 195 阅读 · 0 评论 -
Session机制详解
虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。 一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transacti转载 2017-06-27 09:17:55 · 220 阅读 · 0 评论 -
线程中join方法
/* join方法。 加入 *///老妈class Mon extends Thread{public void run() {System.out.println("妈妈洗菜");System.out.println("妈妈切菜");System.out.println("妈妈准备炒菜,发现没有酱油了..");//叫儿子去打酱油Son原创 2017-02-23 21:08:25 · 282 阅读 · 0 评论 -
守护线程
/* 守护线程(后台线程):在一个进程中如果只剩下 了守护线程,那么守护线程也会死亡。 需求: 模拟QQ下载更新包。 一个线程默认都不是守护线程。用途:比如打开一个网站,系统从后台自动下载东西,由守护线程来下载,若网页关闭,守护线程也就停止执行。 */public class Demo7 extends Thread {public Demo7(S原创 2017-02-23 21:00:47 · 307 阅读 · 0 评论