2012年11月26日
摘要: 导读:本文是从《Manipulating Files in Java 7》这篇文章翻译而来。 文章内容如下:下面的代码片段是由经过验证的程序修改而来。观察这些代码片段你会发现,跟以前的版本相比,在Java7里,文件相关的操作变得简单的多了。通过使用新的Files类里提供的各种方法,你可以只用一行代码就能完成下列的文件操作:创建文件删除文件复制文件文件移动/改名这篇文件是以你对Java7里提供的新的Path类很熟悉为前提,如果你不熟悉这个类,这里就简单说一句,Path是文件系统里对位置的一个逻辑概念,例如c:\ 和../foobar.txt都是Path。创建和删除文件下面的代码片段向你展示的是用 阅读全文
posted @ 2012-11-26 21:34 YangJin 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。我们从书本上学到什么?最明显的,也是直观的方式,在Java中生成随机数只要简单的调用:java.lang.Math.random()在所有其他语言中,生成随机数就像是使用Math工具类,如abs, pow, floor, sqrt和其他数学函数。大多数人通过书籍、教程和课程来了解这个类。一个简单的例子:从0.0到1.0之间可以生成一个双精度浮点数。那么通过上面的信息,开发人员要产生0.0和10.0之间的双精度浮点数会这样来写:Math. 阅读全文
posted @ 2012-11-26 20:52 YangJin 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 我刚开始学习Java编程时,可不知道什么是堆内存或堆空间(heap space),甚至根本不管对象创建时都放在哪里去了。正式了写一些程序后,经常会遇到java.lang.outOfMemoryError等错误,我才开始关注堆内存。对大多数程序员都经历过这样的过程,因为学习一种语言是非常容易来的,但是学习基础是非常难的,因为没有什么特定的流程让你学习编程的每个基础,使你发觉编程的秘诀。对于程序员来说,知道堆空间,设置堆空间,处理堆空间的outOfMemoryError错误,分析heap dump是非常重要的。这个关于Java堆的教程是给我刚开始学编程的兄弟看的。如果你知道这个基础知识或者知道底层 阅读全文
posted @ 2012-11-26 20:52 YangJin 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 最近在阅读Core J2EE Patterns 的时候发现例子里用于在各个层次里进行传输的TO(Data Transfer Object)都实现了java.io.Serializable接口,看到这些偶突然感到茅塞顿开~困扰了很久的关于Serializable的疑问渐渐解开了,查找相关资料并总结如下: 序列化是什么: 序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。 序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,... 阅读全文
posted @ 2012-11-26 20:51 YangJin 阅读(219) 评论(0) 推荐(0) 编辑
摘要: Java代码 1.public class RandomUtil { 2. 3. private static Random random = new Random(); 4. 5. 6. public static String getRandomNumber(String[] range,int rangeLength,int length){ 7. StringBuffer sb = new StringBuffer(); 8. for(int i=0;i<length;i++){ 9. sb.append(String.valueOf(range[random.nex... 阅读全文
posted @ 2012-11-26 20:50 YangJin 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 一: l. 连接到数据库的方法 答: 1) ODBC(Open Database Connectivity) 一个以C语言为基础访问SQL为基础数据库引擎的接口,它提供了一致的接口用于和数据库沟通以及访问数据。 2) JDBCJava版本的ODBC 2. JDBC应用编程接口 答:JDBC应用编程接口是: 1) 标准的数据访问接口,可以连到不同的数据库; 2) JAVA编程语言的一组类和接口。 JDBC应用编程接口能够: 1) 连接到数据库; 2) 发SQL查询字符串到数据库; 3) 处理结果。 JDBC应用编程接口有二个主要的部分: 1) JAVA应用程序开发接口面向JAVA应用程序开发者. 阅读全文
posted @ 2012-11-26 20:48 YangJin 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 1、java.util.Timer 这个方法应该是最常用的,不过这个方法需要手工启动你的任务: Timer timer=new Timer(); timer.schedule(new ListByDayTimerTask(),10000,86400000); 这里的ListByDayTimerTask类必须extends TimerTask里面的run()方法。 2、ServletContextListener 这个方法在web容器环境比较方便,这样,在web server启动后就可以自动运行该任务,不需要手工操作。 将ListByDayListener implements ServletC 阅读全文
posted @ 2012-11-26 20:44 YangJin 阅读(1624) 评论(0) 推荐(0) 编辑
摘要: 什么时候会用到全屏幕模式? 也许用到的机会很少,但JDK还是为我们提供了这个的功能。像许多软件中的打印预览功能,还有某些文本编辑器中为了获得更大的编辑画面,也用到了全屏幕模式,如果你有兴趣写一个像ACDSee这样的软件,使用全屏幕模式可以让用户看到更大的图片画面。 如何使用全屏幕模式? 关键是java.awt.*里面的两个与显示设备有关的类:GraphicsEnvironment和GraphicsDevice。 GraphicsEnvironment为Java应用程序提供了特定平台的 GraphicsDevice 对象和 Font 对象集合。这些GraphicsDevice可以是各种... 阅读全文
posted @ 2012-11-26 20:41 YangJin 阅读(314) 评论(0) 推荐(0) 编辑
摘要: Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存放在对象中用static定义的静态成员◆常量池:存放常量◆非RAM存储:硬盘等永久存储空间Java内存分配中的栈在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时 阅读全文
posted @ 2012-11-26 20:39 YangJin 阅读(127) 评论(0) 推荐(0) 编辑
摘要: try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?publicclasstest{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubSystem.out.println(newtest().test());;}staticinttest(){intx=1;try{returnx;}finally{++x;System.out.println(x);System.out.println(& 阅读全文
posted @ 2012-11-26 20:39 YangJin 阅读(182) 评论(0) 推荐(0) 编辑
摘要: UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一 个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持 UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其 阅读全文
posted @ 2012-11-26 20:35 YangJin 阅读(426) 评论(0) 推荐(0) 编辑
摘要: Java Thread 多线程 介绍线程的概述线程和进程进程的特征并发和并行多线程的优势1、线程概述 几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程。 当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。2、线程和进程 几乎所有的操作系统都有进程的概念,所有运行中的任务通常对应一条进程。当一个程序进入内存运行,就是一个进程了。 进程是处于运行中的程序,具有一定的独立能力,进程是系统进行资源分配和调度的一个独立单位。 进程特征: A、独立性:进程是系统中独立存在的实体,可以拥有自己独立的资源... 阅读全文
posted @ 2012-11-26 20:24 YangJin 阅读(121) 评论(0) 推荐(0) 编辑
摘要: Java Thread 多线程 操作线程创建、启动线程线程的实现方式线程的生命周期线程的状态控制线程5、线程的创建和启动 A、继承Thread类或实现Runnable接口,重写或实现run方法,run方法代表线程要完成的任务 B、创建Thread子类或是Runnable的实现类,即创建的线程对象;不同的是接口实现线程, 需要将接口的实现类作为参数传递给Thread类的构造参数 C、用线程对象的start方法启动线程6、继承Thread和实现Runnable接口创建线程的区别 采用Runnable接口实现线程: 优势: A、线程类只是实现... 阅读全文
posted @ 2012-11-26 20:23 YangJin 阅读(308) 评论(0) 推荐(0) 编辑
摘要: Java Thread 多线程同步、锁、通信线程同步、同步锁、死锁线程通信线程组和未处理异常Callable和Future12、线程同步 当多个线程访问同一个数据时,非常容易出现线程安全问题。这时候就需要用线程同步 Case:银行取钱问题,有以下步骤: A、用户输入账户、密码,系统判断是否登录成功 B、用户输入取款金额 C、系统判断取款金额是否大于现有金额 D、如果金额大于取款金额,就成功,否则提示小于余额 现在模拟2个人同时对一个账户取款,多线程操作就会出现问题。这时候需要同步才行; 同步代码块: synchronized (object... 阅读全文
posted @ 2012-11-26 20:22 YangJin 阅读(309) 评论(0) 推荐(0) 编辑
摘要: Java Thread 多线程 线程池线程池线程相关类、集合16、线程池 Why? 系统启动一个新线程的成本比较高,因为涉及到与操作系统交互。这个时候用线程池可以很好的提高性能, 尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。 原理:(流程)线程池和数据库连接池有点类似的是,线程池在系统启动时创建大量空闲线程,程序将一个Runnable对象传给线程池, 线程池就会启动一条线程来执行该线程对象的run方法,当run方法执行结束后,该线程并不会死亡,而是再次返回线程池中成为空闲线程, 等待执行下一个Runnable对象的run方法。 优点... 阅读全文
posted @ 2012-11-26 20:19 YangJin 阅读(370) 评论(0) 推荐(0) 编辑
摘要: Java Thread 多线程 介绍线程的概述线程和进程进程的特征并发和并行多线程的优势1、线程概述 几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程。 当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。2、线程和进程 几乎所有的操作系统都有进程的概念,所有运行中的任务通常对应一条进程。当一个程序进入内存运行,就是一个进程了。 进程是处于运行中的程序,具有一定的独立能力,进程是系统进行资源分配和调度的一个独立单位。 进程特征: A、独立性:进程是系统中独立存在的实体,可以拥有自己独立的资源... 阅读全文
posted @ 2012-11-26 20:15 YangJin 阅读(334) 评论(0) 推荐(0) 编辑