常用的控制执行流程有if-else;迭代while,do-while,for,foreach;return;break,continue;和break,continue配合使用的标签;switch;在过thinking in java这章的过程中,有两个地方又重新认识了一下,来和大家分享。1、ret...
分类:
编程语言 时间:
2015-06-02 19:46:39
阅读次数:
173
1 public class TestSync implements Runnable{ 2 Timer timer = new Timer(); 3 public static void main(String args[]){ 4 TestSync test =...
分类:
编程语言 时间:
2015-06-02 14:49:34
阅读次数:
128
其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样:
?
1
2
3
4
5
6
Timer timer =
new Timer();
timer.schedule(new
TimerTask() {
public
voi...
分类:
编程语言 时间:
2015-06-02 11:22:15
阅读次数:
159
Java并发编程:synchronized
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
...
分类:
编程语言 时间:
2015-06-02 11:18:34
阅读次数:
260
1. 概述1.1 dos命令行--常见的命令l dir : 列出当前目录下的文件以及文件夹l md : 创建目录l rd : 删除目录l cd : 进入指定目录l cd.. : 退回到上一级目录l cd/ : 退回到根目录l del : 删除文件l exit : 推出dos命令行l echo XXX...
分类:
编程语言 时间:
2015-06-02 00:04:00
阅读次数:
183
迭代器(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一...
分类:
编程语言 时间:
2015-06-01 22:45:48
阅读次数:
134
Java学习中,看到HashMap,HashSet类,本着不止要停留在用的层面( 很多公司面试都要问底层 ),学习了JDK源码,记录下笔记。
源码来自jdk1.7下的src.zip
HashMap是一种键值对类型,它提供一种Key-Value对应保存的数据结构,实现了Map接口,其中key的值唯一,即一个key某一时刻只能映射到唯一的值。
看其中几个成员(没列全)
static fin...
分类:
编程语言 时间:
2015-06-01 22:36:33
阅读次数:
184
首先谈谈打包。为什么要打包?首先,java的开发过程中会用到许许多多的各种功能的类,有我们自己定义的类,也有系统自己的类。那么当自己定义的类与系统的类重名时该怎么办?于是,就定义类对于包的归属问题。这样就可以加以区分。并且当我们需要使用很多很多的工具类时,一个一个导入太麻烦且容易出错。于是就将各种功能的相关的工具类进行打包。需要使用工具类时,只用导入相应的包即可。
接下来,如何进行打包呢?我们使...
分类:
编程语言 时间:
2015-06-01 14:48:53
阅读次数:
145
线程间协作的两种方式:wait、notify、notifyAll和Condition
在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让...
分类:
编程语言 时间:
2015-06-01 13:22:53
阅读次数:
222
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。
这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。
如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。
而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务...
分类:
编程语言 时间:
2015-06-01 13:20:53
阅读次数:
206