
Java技术
文章平均质量分 69
shihuacai
这个作者很懒,什么都没留下…
展开
-
SMB协议
SMB(Server Message Block)是协议名,它能被用于Warp连接和客户端与服务器之间的信息沟通。(IBM SMB:Server Message Block protocol) 服务器信息块(SMB)协议是一种IBM协议,用于在计算机间共享文件、打印机、串口等。SMB 协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBE转载 2012-12-06 17:17:57 · 1719 阅读 · 0 评论 -
Java之Serializable
1:AbstractSerializeDemo.javaclass AbstractSerializeDemo{ protected int x, y; public void init(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public int getY原创 2013-06-29 17:09:53 · 875 阅读 · 0 评论 -
Java之String,StringBuilder,StringBuffer区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常转载 2013-07-01 19:47:32 · 785 阅读 · 0 评论 -
Java之HashMap get方法
HashMap 非线程安全通过下图可以看出HashMap的get方法的实现,其判断标准是通过hashCode和equals方法。故可以通过重写类的hashCode和equals方法实现自定义Object的相等标准,完整代码如下Book.javapackage com.shc.map;public class Book { private String t原创 2013-07-03 11:33:21 · 40673 阅读 · 0 评论 -
windows下整合 tomcat 和 nginx
tomcat自带的apache服务器对于并发请求的处理能力比较差,并且耗费资源很大,而nginx这方便却很强悍,以下是在windows下整合tomcat和nginx的过程。1.准备工作 下载tomcat(http://tomcat.apache.org/download-70.cgi),下载nginx(http://nginx.org/en/download.html),我用转载 2013-11-28 21:36:02 · 1377 阅读 · 0 评论 -
apache 整合 tomcat
apache 整合 tomcat 一.Apache 与 Tomcat 介绍 Apache 是当前使用最为广泛的 WWW 服务器软件,具有相当强大的静态 HTML 处理的能力. Tomcat 服 务 器 是 一 个 免 费 的 开 放 源 代 码 的 Web 应 用 服 务 器 , 它 是 Apache 软 件 基 金 会 (Apache Software Foundation)的转载 2013-11-28 22:52:34 · 844 阅读 · 0 评论 -
Java下出现异常Unable to load library的解决思路
最近在编译Spatialite,查看Akka的ZeroMQ的demo程序是,容易出现Unable to load library转载 2014-04-24 13:29:44 · 37617 阅读 · 2 评论 -
如何安全的终止java线程
JDK1.5以后,stop(),destroy()方法已经被sun标明了已过时,不推荐使用了!!中止线程一般来说,最好的是在run()方法里写一个while(true){}死循环,然后加上判断条件,超过标志位,break就可以!转载 2014-06-30 09:24:33 · 1207 阅读 · 0 评论 -
Java之Callable 和 Future实现线程等待
1、Callable:public interface Callable返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。Executors 类包含一些从其他普通转载 2013-04-26 21:06:43 · 6118 阅读 · 0 评论 -
7.Java NIO系列教程之Server/Client完整示例
TCPServer类:package com.gw.demo;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.Ser转载 2015-01-23 15:22:59 · 4787 阅读 · 0 评论 -
3.Java NIO系列教程之Buffer
Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。下面是NIO Buffer相关的话题列表:Buffer的基本用法Buffer的capacity,position和l转载 2015-01-22 22:04:17 · 741 阅读 · 0 评论 -
2.Java NIO系列教程之Channel
Java NIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:Channel的实现这些是Java NIO中最重要的通道的实现:转载 2015-01-22 21:40:04 · 732 阅读 · 0 评论 -
5.Java NIO系列教程之通道之间的数据传输
在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。transferFrom()FileChannel的transferFrom()方法可以将数据从源通道传输到FileChannel中(译者注:这个方法在JDK文档中的解释为将字节从给定的可读取字节通道传输到此转载 2015-01-22 22:35:27 · 843 阅读 · 0 评论 -
9.Java NIO系列教程之SocketChannel
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel:打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。打开 SocketChannel下面是SocketChannel的打开方式:转载 2015-01-23 16:07:20 · 977 阅读 · 0 评论 -
6.Java NIO系列教程之Selector
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。为什么使用Selector?仅用单个线程来处理多个Channels的好处是,只需要更少的线程来处理通道。事实上,可以只用一个线程处理所有的通道。对于操作系统来说,线程之间上下文切换的开转载 2015-01-23 09:58:14 · 1047 阅读 · 0 评论 -
8.Java NIO系列教程之FileChannel
Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。打开FileChannel在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使用一个InputStream、OutputStream或RandomAcc转载 2015-01-23 15:54:26 · 944 阅读 · 0 评论 -
1.Java NIO系列教程之概述
Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类。因此,在概述中我将集中在这三个组件上。其它组件会在单独的章节中讲到。转载 2015-01-22 21:36:08 · 812 阅读 · 0 评论 -
在windows xp 下编译postgis-1.5.8驱动包的方法
1:搭建好ant环境2:下载源码postgis-1.5.8源码3:键入如下命令:F:\software\PostgreSQL\postgis-1.5.8\java\jdbc>ant -lib ..\..\..\postgresql-9.2-1002.jdbc4.jar原创 2013-06-29 16:28:43 · 1023 阅读 · 0 评论 -
Hibernate Spatial 3 + PostGIS9 搭配实现
1:工程结构如下2:hibernate.postgis.cfg.xml<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibe原创 2013-06-29 15:58:40 · 3957 阅读 · 0 评论 -
System setProperty(property,value)方法
通常JDKd的运行参数设置为#for linuxexport JAVA_OPTS="$JAVA_OPTS -Dcode=BeiJing"#for winset JAVA_OPTS=%JAVA_OPTS% -Dcode=BeiJing相当于Java代码里面实现System.setProperty("code","BeiJing");同时,获取code的值则可以用下列转载 2013-01-07 20:39:51 · 1440 阅读 · 0 评论 -
gbpm 工作流
是一个基于jBPM4进行扩展和封装的开源工作流项目,将主要弥补企业用工作流系统的落差,主要的扩展点:1. 身份管理,基于企业内组织架构2. Task参数设定的扩展,是流程引擎灵活性的扩展,减少程序员流程开发及维护的工作量,用户的流程需求变更通过设定来更改,同时也将使的开发流程图尽可能的与业务流程图接近3. 流程签核历史日志数据的扩展,性能提升及数据完整性http://c转载 2013-01-08 16:27:21 · 3852 阅读 · 0 评论 -
Java之Final
protectedvoidonScrollChanged(intl, intt, intoldl, intoldt) { mBackgroundSizeChanged =true; finalAttachInfo ai =mAttachInfo; if(ai !=null) { ai.mViewScrollChanged =true; }}在Android的源码中很多地方对fi转载 2013-04-26 21:40:21 · 1012 阅读 · 0 评论 -
Java之Semaphore
一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。拿到信号量的线程可以进入代码,否则就等待。通过acquire()和release()获取和释放访问许可转载 2013-04-26 21:28:56 · 31510 阅读 · 2 评论 -
Java之voliate, synchronized, AtomicInteger使用
1: voliate 用在多线程,同步变量。 线程为了提高效率,将成员变量(如A)某拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A) ,但是不能用其来进行多线程同步控制转载 2013-04-26 20:42:58 · 7706 阅读 · 3 评论 -
Java之CompletionService
说明 将(生产新的异步任务)与(使用已完成任务的结果)分离开来的服务。生产者 submit 执行的任务。使用者 take 已完成的任务,并按照完成这些任务的顺序处理它们的结果。例如,CompletionService 可以用来管理异步 IO ,执行读操作的任务作为程序或系统的一部分提交,然后,当完成读操作时,会在程序的不同部分执行其他操作,执行操作的顺序可能与所请求的顺序不同。转载 2013-04-26 21:21:02 · 1459 阅读 · 0 评论 -
Java之CountDownLatch使用
CountDownLatch1、类介绍一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重转载 2013-04-26 20:55:50 · 57349 阅读 · 5 评论 -
Java之CyclicBarrier使用
1、类说明:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。2、使用场景:需要所有的子任务都完成时,才执行主任务,这个时候就转载 2013-04-26 21:00:29 · 38878 阅读 · 4 评论 -
JUnit的jar包和hamcrest的jar包关系
junit和hamcrest是两个不同的框架,不同的东西。只不过是junit使用了hamcrest框架而已。在junit上下载的junit的包解压开见下图:刚下载的JUnit的jar包解压开的文件。junit-4.10.jar :包含junit-dep-4.10.jar全部内容和必要的harmcres的包,junit-4.10-src:是源代码,但不包转载 2013-05-13 13:27:22 · 5210 阅读 · 0 评论 -
利用Apache提供的ftp下载工具类下载ftpServer数据
本文章概述了在B/S模式下,从FTP服务器上读取数据,并利用struts2框架下载的关键代码private static FTPClient ftpClient = new FTPClient(); // 连接ftp服务器 private boolean connectServer(String ip, String user, String password) { // F原创 2013-01-09 16:06:05 · 783 阅读 · 0 评论 -
Java之Comparable,Comparator
package comparator;import java.util.Arrays;public class User implements Comparable { private String id; private int age; public User(String id, int age) { this.id = id; this.age = age; }转载 2013-07-12 12:02:28 · 830 阅读 · 0 评论 -
Java之TreeSet介绍
import java.util.Comparator;import java.util.TreeSet;import org.junit.Test;//非线程安全public class TreeSetTest { /** * TreeSet:它可以给Set集合中的元素进行指定方式的排序。 保证元素唯一性的方式:通过比较的结果是否为0. 底层数据结构是:二叉树。 *转载 2013-07-12 11:44:45 · 7357 阅读 · 0 评论 -
Java之线程安全的单例模式
面试的时候,常常会被问到这样一个问题:请您写出一个单例模式(Singleton Pattern)吧。好吧,写就写,这还不容易。顺手写一个:public final class EagerSingleton { private static EagerSingleton singObj = new EagerSingleton(); pr转载 2013-07-14 10:48:37 · 1034 阅读 · 0 评论 -
SQLite之大数据量批量入库
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.io.InputSt转载 2013-07-14 11:14:31 · 7009 阅读 · 0 评论 -
Java中HashMap和TreeMap的区别深入理解
首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平时说的键值对。HashMap通过hashcod转载 2013-07-14 11:34:12 · 1967 阅读 · 0 评论 -
PostGIS之Java入门
相关的功能也可以使用jts.jar包实现import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;i转载 2013-06-29 15:40:12 · 11264 阅读 · 2 评论 -
4.Java NIO系列教程之Scatter/Gather
Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Channel将从Channel中读取的数据“分散(scatter)”到多个Buffer中。聚集(ga转载 2015-01-22 22:28:17 · 956 阅读 · 0 评论