`
文章列表
新的FileChannel类提供了一个名为map( )的方法,该方法可以在一个打开的文件和一个特殊类型的ByteBuffer之间建立一个虚拟内存映射(第一章中已经归纳了什么是内存映射文件以及它们如何同虚拟内存交互)。在FileChannel上调用map( ) ...
package com.zhengtian.test; import java.nio.ByteBuffer; import java.nio.IntBuffer; /** * @author zhengtian * * @date 2011-6-17 下午02:39:24 */ @SuppressWarnings("all") public class test { public static void main(String[] args) { // 创建一个字节缓冲区 ByteBuffer bb = ByteBuf ...
数字运算与位运算 在2进制里面,一个位只可能是0,或者1。 java里面支持的位运算有: ~ 按位非(NOT) & 按位与(AND) | 按位或(OR) ^ 按位异或(XOR 位操作需要跟逻辑操作区分开(逻辑运算符AND(&&)、OR(||)以及NOT(!)能生成一个布尔值(true或false) ——以自变量的逻辑关系为基础) ,这里的区分的重点是敲代码不要敲错了。。。。 数字的表示 计算机数字有原码、反码、补码三种存储格式,通常都是补码(方便减运算),java也不例外的使用补码。 补码:一个数如果为正,则它的原码、反码、补码相同;一个数如果为负,则符号位 ...
package com.zhengtian.test; import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.CharBuffer; /** * @author zhengtian * * @date 2011-6-14 上午09:47:31 */ @SuppressWarnings("all") public class testNio { public static void main(St ...
近来,项目用到xml。所以引入了dom4j,来生成xml文档。但是我们经常需要在xml中有条件的查找某些结点,因此我们常用XPath提供的xml过滤规则表达式来满足我们的需求,现在将常用的规则表达式总结如下: /node表示在xml文档的根目录查找结点名称为node的结点/node表示在xml文档的根目录查找结点名称为node的结点./node表示在当前结点下查找结点名称为node的结点//node表示在xml文档中递归查找结点名称为node的节点//*表示在xml文档中查询所有的结点,但是排除文本节点//node()表示在xml文档中查询所有结点,包含文本节点//text()表示在xml文档中 ...
用一条sql语句同时实现更新和插入 MERGE INTO xg.test_i t USING (select 35 id from dual) s ON (t.id = s.id) WHEN MATCHED THEN UPDATE SET t.note = '12345' WHEN NOT MATCHED THEN INSERT (id, note) VALUES (s.id, '123321'); 根据id判断,如果id在test_i中已经存在,则更新,如果不存在,则插入。
分页一: select b.* from ( select a.*,rownum num from ( select * from xg.sys_operators t order by to_number(t.op_id) ) a where rownum <= 5000 ) b where num > 4990 分页二: select * from ( select rid,num from ( select rid,rownum num from ( select ...
1、LAMP就是Linux Apache MySql Php的缩写,是目前非常强大的架站组合。 2、安装 一、软件下载 分别下载软件以下软件: Apache-2.0.43 (www.apache.org) Php-4.2.3 (www.php.net) Mysql-3.23.53 (www.mysql.com) 二、准备安装 将所有软件的源代码放置在目录 /home/src 下 ,安装目录为 /server ,下载后的源代码包在/root目录下,故执行以下操作: mkdir /home/src mkdir /server groupadd mysql useradd - ...
引言 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java 序列化相关,通过分析情境出现的原因,使读者轻松牢记 Java 序列化中的一些高级认识。 文章结构 本文将逐一的介绍几个情境,顺序如下面的列表。 序列化 ID 的问题 静态变量序列化 父类的序列化与 Tr ...
当需要对集合同时进行写入和读取操作时,如果多线程同时操作会出现异常,那么现在利用ReadWriteLock显示锁,可以在写入量比较小,读取量比较大的场景中,方便的实现上述功能。 package test; import java.util.Calendar; import java.util.Map; import java.util.TreeMap; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; /** * 可重入读写锁 ...
package test; /** * 内部锁 * * @author Administrator * */ public class SynchronizedBenchmarkDemo implements Counter { private long count = 0; @Override public long getValue() { return count; } @Override public synchronized void increment() { count++; } } ...
public interface Future<V>Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可以阻塞此方法。取消则由 cancel 方法来执行。还提供了其他方法,以确定任务是正常完成还是被取消了。一旦计算完成,就不能再取消计算。如果为了可取消性而使用 Future 但又不提供可用的结果,则可以声明 Future<?> 形式类型、并返回 null 作为底层任务的结果。 Future 主要定义了5个方法: 1)boolean cancel(bool ...
tomcat中服务器的集群与负载均衡 http://www.chinajavaworld.com/thread.jspa?threadID=712328&tstart=0
类java.util.concurrent.Exchanger提供了一个同步点,在这个同步点,一对线程可以交换数据。每个线程通过exchange()方法的入口提供数据给他的伙伴线程,并接收他的伙伴线程提供的数据,并返回。 当在运行不对称的活动时很有用,比如当一个线程填充了buffer,另一个线程从buffer中消费数据的时候,这两个线程可以用Exchanger来交换数据。当两个线程通过Exchanger交换数据的时候,这个交换对于两个线程来说是线程安全的。两个线程都会等到自己的程序运行到Exchanger这个地方时,进行等待。然后再进行数据交换,交换完毕后,各自进行以后的程序流程。 以下这个 ...
1. 数据库有哪些基本数据类型,以及作用 2. 创建oracle表(name,age,time),包括临时表 3. 在创建的表中插入数据,时间字段格式为yyyy-mm-dd 4. 将表中一条数据的time改为当前时间 5. 删除时间在30天内的数据 6. 列出你所了解的数据库知识 7. 写出你所了解的oracle数据库的系统表及其作用 8. 有一张部门表和员工信息表,请写出如下sql,查询所有员工的个人信息和部门信息,查询出部门人数在5以上的部门中的员工信息,查询出部门人数在3-5之间的员工信息以及员工所在部门的总人数 9. 写出一个基于一张表中两个字段的符合索引 10. 写出一个根据用户年龄 ...
Global site tag (gtag.js) - Google Analytics