- 浏览: 578827 次
- 性别:
- 来自: 苏州
文章列表
SerializedUser.java
import java.io.Externalizable;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.Obje ...
TestPiperStream.java
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*管道流PiperStream:在多线程中实现IO操作
* @author HaoWang
*/
public class TestPiperStream {
public static vo ...
String与byte[]对象进行转换时应指定编码格式,否则有潜在的乱码问题。byte[] b = s.getBytes("utf-8"); String s = new String(b,"utf-8");
Java的IO库提供了专门的管道来对这3个对象进行读写,他们是StringReader/Writer CharArrayReader/Writer ByteAyyayInputStream/OutputStream。String可以方便地转换成char[]或byte[],因此可以将String当作是char[]和byte[]转 ...
文件流
实现对文件的读取操作:FileInputStream FileReader 实现对文件的写入操作:FileOutputStream FileWriter
缓冲流
ByteArrayInputStream、ByteArrayOutputStream:
在内存中创建一个字节缓冲 ...
1、 java的serialization提供了一个非常棒的存储对象状态的机制,说白了serialization就是把对象的状态存储到硬盘上去,等需要的时候就可以再把它读出来使用。但是在存储对象状态时,我们有时候会需要特定的对象数据在seria ...
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。 把Java对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为Java对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 一. JDK类库中的序列化API java.io.ObjectOutputStream代表对象输出流,它的wr ...
ThreadLocal的核心思想很简单:为每个独立的线程提供一个变量的副本。
Java提供的synchronized关键字使用了“同步锁”的机制来阻止线程的竞争访问,即“以时间换空间”。: " 10pt; FONT-SIZE:> ThreadLocal则使用了“拷贝副本”的方式,人人有份,你用你的,我用我的,大家互不影响,是“以空间换时间”。每个线程修改变量时,实际上修改的是变量的副本,不怕影响到其它线程。
为了加深对ThreadLocal的理解,下面我使用一个例子来演示ThreadLocal如何隔离线程间的变量访问和修改:【1】SerialNum类
...
wait()和notify()¬ifyAll()必须工作在加锁(synchronized)的代码块中。
抢占的锁和释放的锁要是同一对象的锁,否则抛出IllegalMonitorStateException。
Stack.java
package thread;
public class Stack {
private Object[] objs;
private int ind ...
String与StringBuffer的区别
简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候就已经加载了,可以用类名直接调用。比如main方法就必须是静态的 这是程序入口 两者的区别就是:静态代码块是自动执行的
数据库操作语言DML(Data Manipulation Language)用于操作数据库中的数据,包括:插入新数据;修改已有的数据;删除不再需要的数据;数据合并。
1.insert语句
insert语句用于向表中插入数据
语法:
insert into table [(column [, column …]) ] values (value [,value …]);
insert into dept values(88,’装备部’,’北京’);
insert into dept(deptno,dname) values(99,’交通部
Java作为一门优秀的面向对象的程序设计语言,正在被越来越多的人使用。本文试图列出作者在实际开发中碰到的一些Java语言的容易被人忽视的细节,希望能给正在学习Java语言的人有所帮助。
1.位移运算越界怎么处理
考察下面的代码输出结果是多少? int a=5; System.out.println(a<<33);按照常理推测,把a左移33位应该将a的所有有效位都移出去了,那剩下的都是零啊,所以输出结果应该是0才对啊,可是执行后发现输出结果是10,为什么呢?因为Java语言对位移运算作了优化处理,Java语言对a<<b转化为a<<(b%32)来 ...
1.事务(Transaction)
组成单个逻辑工作单元的一系列操作被称为事务。
2.数据库事务组成
0~多条DML语句
一条DDL(Data Define Language)语句
一条DCL(Data Control Language)语句
3.事务控制
通过将一组相关操作组合为一个要么全部成功,要么全部失败的逻辑工作单元,以简化错误恢复、提高应用程序的可靠性。
4.事务必须满足的ACID属性:
1、 安装Oracle数据库产品
1) 安装Oracle数据库产品的注意事项:
a) ISO文件需要导入虚拟光驱文件安装,或者解压缩安装,绝对不能直接双击用winrar软件打开安装。
b) 安装前确认,计算机名称不能用中文名字,IP地址为固定IP,否 ...
可扩展标记语言(eXtensible Markup Language,XML),它是SGML (Standard Generalized Markup Language,标淮通用标记语言)的一部分。
有关术语
元素Element,组成xml文档的最小单位,由一个标识来定义,包括开始和结束标识以及其中的内容。 ...