摘要: 我们经常为用到Integer.valueOf(String str)这个方法,如果字符串格式不对,这个方法会抛出一个系统异常NumberFormatException这里我们就要分析一下这个方法,其中Byte,Short也是调用了Ingeter中的方法.在Integer类中的定义如下:public static Integer valueOf(String s) throws NumberFormatException{return new Integer(parseInt(s, 10));}这里因为parseInt方法返回的int型的,这里调用了一个构造函数产生了一个新的Integer实例. 阅读全文
posted @ 2011-11-06 00:54 _ccx 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 1.package study.reflection; 2. 3.public class People { 4.public String name = null; 5.private String sex = null; 6.private String age = null; 7.private String tel = null; 8.private String address = null; 9.public static String s = null; 10.static { 11. System.out.println("loadin... 阅读全文
posted @ 2011-10-30 23:55 _ccx 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。 把Java对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为Java对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 一. JDK类库中的序列化API java.io.ObjectOutputStream代表对象输出流,它的writeO... 阅读全文
posted @ 2011-10-30 00:51 _ccx 阅读(168) 评论(0) 推荐(0) 编辑
摘要: Java的核心库java.io提供了全面的IO接口,包括:文件读写,标准设备输出等等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在具体使用中很多初学者对Java.io包的使用非常含糊,本文将详细解说关于Java.io的使用。 一.Input和Output 1.stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO系统中,所有的stream(包括Input和Outstream)都包括两种类型: 1.1以字节为导向的stream 以字节为导向的stream,表示以字节为单位从stream中读取或往s... 阅读全文
posted @ 2011-10-30 00:49 _ccx 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持。本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观。读完本文以后,用户应该能够编写简单的多线程程序。 为什么会排队等待? 下面的这个简单的 Java 程序完成四项不相关的任务。这样的程序有单个控制线程,控制在这四个任务之间线性地移动。此外,因为所需的资源 ? 打印机、磁盘、数据库和显示屏 -- 由于硬件和软件的限制都有内在的潜伏时间,所以每项任务都包含明显的等待时间。因此,程序在访问数据库之前必须等待打印机完成打印文件的任务,等等。如果您正在等待程序的完成,则... 阅读全文
posted @ 2011-10-30 00:47 _ccx 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 在应用中,我们常常需要Thread缓冲池来做一些事以提高程序的效率和并发性。本文演示了如何利用Queue这种数据结构实现一个简单的Thread缓冲池。一个Thread缓冲池可以设计成以下这样:缓冲池由几个工作Thread和一个Queue组成,Client负责把任务放到Queue里面(put方法),而工作Thread就依次取出这些任务并执行它们(get方法)。Queue的一个经典实现是使用一个循环数组(这个实现在很多数据结构的书上都有介绍),如一个大小为size的数组,这个循环数组可以被想象成首尾相连的一个环。oldest指向Queue中最老的数据所在的位置,next指向下一个可以放新数据的位置 阅读全文
posted @ 2011-10-30 00:42 _ccx 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 线程退出最好自己实现,在运行状态中一直检验一个状态,如果这个状态为真,就一直运行,如果外界更改了这个状态变量,那么线程就停止运行。1.sleep()方法在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”。不推荐使用。sleep()使当前线程进入阻塞状态,在指定时间内不会执行。2.wait()方法在其他线程调用对象的notify或notifyAll方法前,导致当前线程等待。线程会释放掉它所占有的“锁标志”,从而使别的线程有机会抢占该锁。当前线程必须拥有当前对象锁。如果当前线程不是此锁的拥有者,会抛出IllegalMonitorStateException异常。唤醒当前对象锁的等待线程 阅读全文
posted @ 2011-10-30 00:37 _ccx 阅读(162) 评论(0) 推荐(0) 编辑
摘要: Date类的实例有一个状态,即特定的时间点。尽管在使用Date类时不必知道这一点,但时间是用距离一个固定时间点的毫秒数(可正可负)表示的,这个点就是所谓的纪元(epoch),它是UTC时间1970年1月1日 00:00:00。UTC是 Coordinated Universal Time的缩写,与大家熟悉的GMT (即 Greenwich Mean Time/格林威治时间)一样,是一种具有实际目的的科学标准时间。但是,Date 类所提供的日期处理并没有太大的用途。Java类库的设计者认为:像“December 31, 1999, 23:59:59”这样的日期表示法只是阳历的固有习惯。这种特.. 阅读全文
posted @ 2011-10-29 18:39 _ccx 阅读(475) 评论(0) 推荐(0) 编辑