`
文章列表
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类

 ThreadLocal的核心思想很简单:为每个独立的线程提供一个变量的副本。 Java提供的synchronized关键字使用了“同步锁”的机制来阻止线程的竞争访问,即“以时间换空间”。: " 10pt; FONT-SIZE:>    ThreadLocal则使用了“拷贝副本”的方式,人人有份,你用你的,我用我的,大家互不影响,是“以空间换时间”。每个线程修改变量时,实际上修改的是变量的副本,不怕影响到其它线程。     为了加深对ThreadLocal的理解,下面我使用一个例子来演示ThreadLocal如何隔离线程间的变量访问和修改:【1】SerialNum类 ...
wait()和notify()&notifyAll()必须工作在加锁(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,否 ...

XML新手入门

    博客分类:
  • XML
可扩展标记语言(eXtensible Markup Language,XML),它是SGML (Standard Generalized Markup Language,标淮通用标记语言)的一部分。   有关术语 元素Element,组成xml文档的最小单位,由一个标识来定义,包括开始和结束标识以及其中的内容。 ...
Global site tag (gtag.js) - Google Analytics