Java专栏
scyatcs
这个作者很懒,什么都没留下…
展开
-
Java编码浅析2
Java编码问题汇总工作中经常遇到java编码问题,由于缺乏研究,总是无法给出确切的答案,这个周末在网上查了一些资料,在此做些汇总。 问题一:在java中读取文件时应该采用什么编码?Java读取文件的方式总体可以分为两类:按字节读取和按字符读取。按字节读取就是采用InputStream.read()方法来读取字节,然后保存到一个byte[]数组中,最后经常用new Stri转载 2013-04-14 02:11:49 · 537 阅读 · 0 评论 -
Java编码浅析1
Java与Unicode: Java的class文件采用utf8的编码方式,JVM运行时采用utf16。 Java的字符串是unicode编码的。 总之,Java采用了unicode字符集,使之易于国际化。 Java支持哪些字符集: 即Java能识别哪些字符集并对它进行正确地处理? 查看Charset 类,最新的JDK支持160种字符集。可以通过转载 2013-04-14 01:53:47 · 666 阅读 · 0 评论 -
Fatal signal 11 (SIGSEGV)的问题
分类: android课题新手搞起东西来果然很麻烦啊,面对陌生的东西,只有前进前进前进,没有退路,不由得感慨万千。。上网上查Fatal signal 11 (SIGSEGV),直说是和内存有关,具体为什么真的不知道,而且是丈二的和尚摸不着头脑,除了这一句没有明显的提示了。我的程序时双库的调用,先上段代码吧,这都是赤裸裸的教训啊!!int ThresholdPro转载 2013-04-15 23:51:52 · 2305 阅读 · 0 评论 -
获取所输入汉字拼音的首字母1
public class StringUtil { //private static Log logger = LogFactory.getLog(StringUtil.class); // 国标码和区位码转换常量 static final int GB_SP_DIFF = 160; //存放国标一级汉字不同读音的起始区位码 static final int[]转载 2013-04-14 23:58:51 · 972 阅读 · 0 评论 -
Java基础 之软引用、弱引用、虚引用
1、概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。 但有时候情况并不这么简单,你可能会遇到类似鸡肋一样的物品,食转载 2013-04-20 22:14:09 · 541 阅读 · 0 评论 -
JSON格式简介(1)
1、{}表示对象,以 键:值 对方式表示内部成员,valuey又可以是{},[]。比如var user = {id:1,username:"haha"}。2、[]表示集合或者说是数组,内部多个成员以逗号隔开,这里的内部成员可以是{}形式,可以是“1234”,比如var userList = [{id:1},{id:2},"1234"]3、例子:[{"周朝":{"西周":["齐国","宋国"转载 2013-04-29 18:13:09 · 623 阅读 · 0 评论 -
Could not find main class
不知道 大家有遇到过 Could not find main class 的情况 如例图1明明 是一个很简单的类 却 执行不了 没有写 main 函数的 同志 请 自行填上 这里就不 教怎么 填加 main 主函数了-_-! 继续 说下原因 是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误。因为,转载 2013-06-01 02:04:21 · 1576 阅读 · 0 评论 -
Java中的跳出某层循环(包括跳出本层循环)
1、可以使用标签来实现跳出某层循环。2、标签的位置如下所表:在for之前,在do...while中的do之前,在while之前for (int i = 0; i looper: for (int j = 0; j if (j == 2) { break looper; } } } loopper: do { Syste原创 2013-05-31 23:18:02 · 3913 阅读 · 0 评论 -
Javac和Java命令
JAVA和JAVAC 命令行javac和java命令行中的-classpath选项这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点。javac-classpath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有在CLASSPATH里面的设定。-sourcepath,转载 2013-06-01 00:22:09 · 543 阅读 · 0 评论 -
java.io.InvalidClassException:CartonPrintVO; local class incompatible: stream classdesc serialVersio
现象:java.io.InvalidClassException:CartonPrintVO; local class incompatible: stream classdesc serialVersionUID = xxxxx, local class serialVersionUID = xxxxx解决办法:今天在修改了一个VO类后报出了java.io.InvalidClas转载 2013-06-16 06:40:40 · 11935 阅读 · 0 评论 -
IO流--BufferedReader
1.读取一个txt文件,方法很多种我使用了字符流来读取(为了方便) FileReader fr = new FileReader("f:\\TestJava.java"); BufferedReader bf = new BufferedReader(fr);//这里进行读取int b; while((b=bf.read())!=-1){ System.ou转载 2013-06-16 10:58:43 · 743 阅读 · 0 评论 -
Thread.sleep(long millionseconds)
1、Thread.sleep(10) 让本线程进入阻塞状态后,然后进入可运行状态,可运行状态包括运行状态和准备状态(就绪状态)2、Thread.sleep(0) 获取CPU控制权(进入运行状态)后,让本线程立即进入可运行状态。原创 2013-07-06 17:29:53 · 1205 阅读 · 0 评论 -
Hessian4.0.2笔记
JAVA创建Hessian服务只需四步 1。创建服务接口2。使用HessianProxyFactory创建客户端3。服务器端实现服务接口4。配置Servlet 下面将用将使用Netbeans6.8+Hessian4.0.2,经过以上四步创建一个简单的远程方法调用示例一、创建项目 分别创建一个名为HessianServer的JavaWeb项目和一个名为H转载 2013-07-07 08:18:33 · 638 阅读 · 0 评论 -
序列化机制(4)
使用缺省的serializetion的实现时,一个ObjectOutputStream的构造和一个ObjectInputStream的构造必须一一对应。ObjectOutputStream的构造函数会向输出流中写入一个标识头,而ObjectInputStream会首先读入这个标识头。因此,多次以追加方式向一个文件中写入object时,该文件将会包含多个标识头。所以用ObjectInputStrea转载 2013-07-11 00:53:16 · 573 阅读 · 0 评论 -
序列化机制(3)
java的ObjectOutputStream中writeUnshared()和reset()的区别?对于要反复发送同一个不停修改的对象的时候用writeUnshared(),reset()也能实现相同的效果,不过他是重置了stream中所有传输过的对象状态,而writeUnshared()不会。转载 2013-07-11 00:49:55 · 549 阅读 · 0 评论 -
序列化机制(1)
有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及J转载 2013-06-15 23:44:00 · 624 阅读 · 0 评论 -
序列化机制(2)
序列化机制中的序列化算法一、序列化算法的描述 1、当程序试图序列化一个对象的时候,程序会先检查该对象是否已经被序列化过,如果已经从未被序列化过,则将此对象序列化成流 输出。 2、如果已经被序列化,那么程序直接输出一个序列化编号,而不再重新序列化该对象二、对序列化算法的理解 上面的第二条当对象被程序原创 2013-07-11 00:46:23 · 538 阅读 · 0 评论 -
Thread.UncaughtException接口
import java.lang.Thread.UncaughtExceptionHandler;/** * Thread.UncaughtExceptionHandler的用法 */class CrashHandler implements UncaughtExceptionHandler { public CrashHandler() { } @Over原创 2013-07-30 18:11:41 · 14477 阅读 · 1 评论 -
行为型模式之模版方法模式
一.模版方法模式模版方法模式是最为常见的几种设计模式之一,而且你在工作中很可能已经使用过模板方法模式而你却没有意识到自己已经使用过这种模式,模版方法模式需要抽象类和具体子类协调完成,抽象类负责给出一个算法的轮廓和骨架,具体子类负责给出这个算法的各个逻辑步骤既具体子类负责填充这个轮廓和骨架,不同的子类有不同的填充方法;而将这些基本方法总汇起来的方法叫做模版方法,这个模板方法是在抽象类中以具体方法转载 2013-07-31 17:53:32 · 516 阅读 · 0 评论 -
RMI、Hessian、Burlap、Httpinvoker、WebService的比较
一、综述本文比较了RMI、Hessian、Burlap、Httpinvoker、WebService5这种通讯协议的在不同的数据结构和不同数据量时的传输性能。RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以转载 2013-08-04 22:26:03 · 725 阅读 · 0 评论 -
操作系统的环境变量
1、windows下面的环境变量有系统级变量和用户级变量。系统级变量是指所有用户都可使用,不管你用哪个用户登录,这些变量都 是可以访问的;用户级变量则是针对特定用户设置的变量,其他用户不可访问。2、unix系统下面也是类似的道理,各个用户可自行在.profile中设置自己特有的变量,管理员也可设置全局变量,供所用用户使用。3、如果执行某个命令,系统无法在当前文件夹里找到对应的.原创 2013-10-15 22:32:02 · 831 阅读 · 0 评论 -
Java泛型
Java泛型-类型擦除一、概述 Java泛型在使用过程有诸多的问题,如不存在List.class, List不能赋值给List(不可协变),奇怪的ClassCastException等。 正确的使用Java泛型需要深入的了解Java的一些概念,如协变,桥接方法,以及这篇笔记记录的类型擦除。Java泛型的处理几乎都在编译器中进行,编译器生成的bytecode是不包涵泛型信息的,泛型转载 2013-11-16 22:01:03 · 930 阅读 · 0 评论 -
XStream使用方法
一、XStreamXStream是一个Java对象和XML相互转换的工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换的支持。因此XML常用于数据交换、对象序列化(这种序列化和Java对象的序列化技术有着本质的区别)。转载 2013-10-11 23:10:06 · 20656 阅读 · 0 评论 -
TimeZone类(一)
TimeZone的使用TimeZone主要是解决跨时区的时间问题,最近在项目中使用了一下,还是比较简单的,在此做下记录。1. 知道本地时间要计算美国洛杉矶的对应时间/*以本地时区的方式解析时间*/ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date localDate = sdf1转载 2013-07-06 16:32:54 · 1183 阅读 · 0 评论 -
Locale类(一)
一、先附上API: 类 java.util.Locale的使用使用 Locale 的软件包java.lang提供利用 Java 编程语言进行程序设计的基础类。 java.util包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。原创 2013-07-06 16:03:37 · 966 阅读 · 0 评论 -
|、|=、&、&=
“|”、“&”操作符的两边操作数可以是:boolean、byte、short、int、long、char特殊: 1、当是boolean类型的时候,false|false = false;true|true=true;true|false=true;false|true=true false&false=false;true&true=true;true&f原创 2013-08-23 11:32:17 · 703 阅读 · 0 评论 -
Java中的数制
1、Java中的数值类型都是有符号数,有符号和无符号的区别是:有符号最高位是符号位,表示的可以是正数,也可以 是负数;无符号最高位是数值位,只能表示正数。2、在计算机中,整数在内存中是以补码形式存储的;正数的原码、反码和补码是相同的,而负数的原码、反码和补码 之间是有一定的转换规则的。原创 2013-11-22 16:46:31 · 625 阅读 · 0 评论 -
各种转换
public class BDUtils {/*** String -> Hex* * @param s* @return*/public static String stringToHex(String s) {String str = "";for (int i = 0; i int ch = s.charAt(i);String s4 =原创 2013-11-22 16:01:56 · 834 阅读 · 0 评论 -
Iterator详解
Java中的Iterator是一种fail-fast的设计。 当Iterator迭代一个容器的时候,如果此时有别的方法在更改Collection(容器)的内容,那么Iterator就会抛出ConcurrentModificationException 。正如官方文档中反复强调的:Thus, in the face of concurrent modification, the i转载 2013-06-01 02:06:00 · 10585 阅读 · 0 评论 -
缓冲流
1、缓冲流包括BufferedReader和BufferedWriter两个API。2、他们缓冲的时机在什么地方呢? BufferedReader在readLine和read的时候,可以将文件中的数据存到缓冲区中(假如创建的缓冲流是到硬盘某文件的) BufferWriter将输出的内容先放置在内存中,等到有一定数据量的时候,或是流关闭、或调用flush()方法时原创 2013-12-12 11:48:29 · 646 阅读 · 0 评论 -
为何与0xff进行与运算
为何与0xff进行与运算在剖析该问题前请看如下代码public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i String hex = Integer.toHexString(b[ i ] & 0xFF); if (hex.length() == 1)转载 2013-04-20 21:58:49 · 952 阅读 · 1 评论 -
怎么打jar包 jar怎么运行
一、怎么打jar包第一步:选中要打jar包的工程第二步:鼠标右击,选择Export...第三步:选择java中的Runnable JAR file(如图)点击“Next” 第四步:(1)在Launch configuration:选择要打jar包的mian所在的类名;(如图) (2)在Export destination:选择要存转载 2013-12-13 22:34:01 · 653 阅读 · 0 评论 -
二维数组的另类用法
1、boolean[][] a =new boolean[2][];2、a[0] = new boolean[1];3、a[1] = new boolean[2];原创 2013-07-10 19:20:09 · 776 阅读 · 0 评论 -
JVM虚拟机时区设置问题
在我的java代码中写上下面简单的代码: Date date =new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd HH:mm:ss"); System.out.println("now time is "+sdf.format(date)); 输出:now tim转载 2013-11-18 00:46:01 · 7003 阅读 · 0 评论 -
Date/Calendar/时区
一、Date的本质 1、Date没有时区的概念,它本质是一个距离1970年1月1日00:00:00的毫秒数。比如说:System.currentTimeMoillis(),它 返回的long型就代表当前操作系统的时间距离1970年1月1日00:00:00的毫秒数。二、Date的时区化 1、用SimpleDateFormat进行时区化原创 2013-07-16 23:39:03 · 8546 阅读 · 0 评论 -
Java classpath调用规则
虚拟机加载类的时候的规则如下1、当没有设置classpath的时候,虚拟机直接在当前路径下载加载classpath。2、当设置了classpath以后,如果设置的classpath是以";"结尾的,那么虚拟机按照设置的路径从前向后地寻找,如果都 没有到,会在当前路径下寻找;如果设置的classpath结尾处没有";",那么虚拟机只会在设置的设置的路径从前向后寻找,不会再原创 2013-12-23 23:46:06 · 850 阅读 · 0 评论 -
交换两个变量值的三种方法
第一种方法:int a = 10;int b = 11;int temp = a;a = b;b = temp;System.out.println("a=" + a + "\n" + "b=" + b); 第二种方法: int a = 10;int b = 11;a = a + b;b = a - b;a = a - b;原创 2014-01-16 09:44:46 · 908 阅读 · 0 评论 -
十进制数向十六进制数转换的三种方法
第一种方法: Integer.toHexString( int i );第二种方法: private static String decimalToHex(int decimal) { StringBuilder sb = new StringBuilder(); do { int temp = decimal & 0xF; if原创 2014-01-17 10:39:27 · 1447 阅读 · 0 评论 -
Iterator和ListIterator的不同使用方法 .
我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(跌代器)。使用跌代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Itera转载 2014-02-28 00:24:55 · 903 阅读 · 0 评论 -
创建型模式--工厂模式
一、三种工厂模式的优缺点1、简单工厂模式 最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类。对于客户端来说,去除了与 具体产品的依赖。 简单工厂模式违背了开-闭原则,有保持了封装对象创建过程的优点。 2、 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子 类。原创 2013-07-30 10:42:53 · 724 阅读 · 0 评论