1.验证同步函数使用的锁----普通方法使用的锁思路:创建两个线程,同时操作同一个资源,还是用卖票的例子来验证。创建好两个线程t1,t2,t1线程走同步代码块操作tickets,t2,线程走同步函数封装的代码操作tickets,同步代码块中的锁我们可以指定。假设我们事先不知道同步函数用的是什么锁;如...
分类:
编程语言 时间:
2014-08-08 23:50:26
阅读次数:
396
这里举个例子讲解,同步synchronized在什么地方加,以及同步的前提:* 1.必须要有两个以上的线程,才需要同步。* 2.必须是多个线程使用同一个锁。* 3.必须保证同步中只能有一个线程在运行,锁加在哪一块代码那么我们要思考的地方有:1.知道我们写的哪些是多线程代码 2.明确共享数据 3.明确...
分类:
编程语言 时间:
2014-08-07 00:35:07
阅读次数:
260
上一节售票系统中我们发现,打印出了错票,0,-1,出现了多线程安全问题。我们分析为什么会发生多线程安全问题?看下面线程的主要代码:@Override public void run() { // TODO Auto-generated method stub ...
分类:
编程语言 时间:
2014-08-06 21:47:52
阅读次数:
301
基本类型一旦声明就会被分配内存空间,而普通类型(自定义类)需要使用new关键字来分配内存空间。当我们创建一个衍生类的对象时,Java实际上先创建了一个基类对象(subobject),并在基类对象的外部(注意,这里是基类对象的外部,衍生类对象的内部),增加衍生类定义的其他成员,构成一个衍生类对象。外部...
分类:
编程语言 时间:
2014-08-06 17:47:51
阅读次数:
225
总结:实现Runnable接口比继承Thread类更有优势:1.因为java只能单继承,实现Runnable接口可以避免单继承的局限性2.继承Thread类,多个线程不能处理或者共享同一个资源,但是实现Runnable接口可以处理同一个资源。下面我们做个测试:验证下。车站的售票系统售票的例子,车站的...
分类:
编程语言 时间:
2014-08-06 17:17:21
阅读次数:
374
java.io 类 RandomAccessFilejava.lang.Object java.io.RandomAccessFile1.该类不是IO流中的子类。2.该类既能读又能写。3.该对象内部分装了一个字节数组,通过指针可以操作数组中的元素。4.其实该对象就是将字节输入流和输出流进行了封...
分类:
数据库 时间:
2014-08-05 21:57:50
阅读次数:
340
/*** File文件综合应用* 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中。* * 思路:1.需要深度遍历。--递归* 2.遍历的过程中过滤指定扩展名的文件--过滤器FileNameFilter,将文件存入容器中* 3.将容器中的内容遍历,写入到指定文件中**/代码...
分类:
编程语言 时间:
2014-08-03 12:27:55
阅读次数:
242
/*** 深度删除一个带内容的目录* 原理:必须从里往外删除,需要深度遍历* @author Administrator**/public class FileDeleteList { /** * @param args */ public static void mai...
分类:
编程语言 时间:
2014-08-02 15:25:53
阅读次数:
174
FilenameFilter和FileFilter都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码:通过使用File类中String[] list(FilenameFilter filter)或者public File[] listFiles(FileFilter ....
分类:
编程语言 时间:
2014-08-02 15:06:03
阅读次数:
293
File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹)。File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读,获取当前文件的路径名,判断指定文件是否存在,获得当前文件的列表,创建、删除文件目录等方法。 /*.....
分类:
编程语言 时间:
2014-08-02 12:46:33
阅读次数:
342