Java
文章平均质量分 68
orisun
数据挖掘
展开
-
调用Google API做自己的翻译工具
其实ubuntu下星际译王也不怎么好用,启动慢,词典不好管理。果断自己调用Google API做翻译工具,而且是在终端运行,快捷方便。(1)编译java程序时指定依赖的第三方jar包$ javac -cp /usr/local/lib/google-api-translate-java-0.4.jar MyTranslate.java-cp是在指定classpath事先下载goog原创 2013-01-05 18:23:11 · 631 阅读 · 0 评论 -
Java序列化
将一个对象编码成一个字节流,称为序列化(serializing),相反的过程为反序列化。一旦对象序列化后,它的编码就可以从一台正在运行的虚拟机被传递到另一台虚拟机上,或者被存储到磁盘上,供以后反序列化时用。序列化对远程通信提供了标准的线路级对象表示法,也为JavaBean组件结构提供了标准的持久化数据格式。原创 2013-03-12 19:37:59 · 760 阅读 · 0 评论 -
Java容器的线程安全
同步容器类同步容器类包括Vector和Hashtable(二者是早期JDK的一部分),还包括JDK1.2中添加的一些相似的类。同步容器类实现线程安全的方式是:将状态封闭起来,并对每个公有方法进行同步,使得每次只有一个线程能访问容器状态。这里解释一下所谓“状态”指的就是成员变量,“封装起来”即将它们设不private,但是通过公有的方法外界仍然可以访问修改类的私有成员,所以要用synchroni翻译 2013-03-13 11:43:45 · 2727 阅读 · 0 评论 -
Java枚举
public class A { public enum Apple{FUJI,PIPPIN,GRANNY} public enum Orange{NAVEL,TEMPLE,BLOOD} public static void main(String[] args){ for(Apple a:Apple.values()) System.out.println(a);原创 2013-03-01 21:51:00 · 854 阅读 · 0 评论 -
Java CookBook(二)
通过HTTP连接访问资源URLConnection封装任何对URL连接的基本功能,HttpURLConnection基于HTTP的连接扩展URLConnection。Step1.创建URL对象。URL(String rul) throws MalformedURLExceptionStep2.URL对象调用openConnection(),并将其返回的引用强制转换成HttpURLCon原创 2013-01-05 18:27:22 · 420 阅读 · 0 评论 -
一种高效可伸缩的缓存设计方法
几乎所有的服务器应用中都要使用缓存,重用之前的计算结果能降低延迟,提高吞吐量,但是要消耗更多的内存。Memorizer1简单地使用HashMap来缓存之前的计算结果:public interface Computable { V compute(A arg) throws InterruptedException;}public class Memorizer1 impleme翻译 2013-03-13 22:09:38 · 1035 阅读 · 0 评论 -
CountDownLatch,FutureTask,Semaphore,Barrier,Exchanger
CountDownLatch当希望所有线程在某一个点上进行同步时,可以考虑使用闭锁。public long timeTasks(int nThreads,final Runnable task) throws InterruptedException{ //起始门计数器初始值设为1 final CountDownLatch startGate=new CountDownLatch(1)翻译 2013-03-13 17:28:16 · 1362 阅读 · 0 评论 -
Executors,Timer,DelayQueue,Interruption
在Java类库中执行任务的主要抽象不是Thread,而是Executor。ExecutorWeb服务器上为每个请求创建一个线程存在诸多弊端:如果请求到达的频率很高,而请求的处理又是轻量级的,那创建和销毁线程的开销相对就很高。线程数多于可用处理器数时,大量线程会闲置,空闲的线程会战胜大量的内存,而且大量线程在竞争CPU资源时会产生其他的性能开销。可创建线程的数量有一个上限。这跟平翻译 2013-03-15 14:44:13 · 1434 阅读 · 0 评论 -
几个任务执行相关的类
Runnable正面就是Runnable的完整定义,非常简单。public interface Runnable { public abstract void run();}CallableCallable和Runnable的功能非常相似,一样的简捷,但是Callable更强大。public interface Callable { V call()原创 2013-03-16 16:22:17 · 1274 阅读 · 0 评论 -
Java变量自动初始化
相比于C++中变量的自动初始化,Java中的变量自动初始化就简单多了。对于函数之外的变量--也就是域成员变量,基本数据类型自动初始化为0,boolean值初始化为false,装箱类型(比如Integer,Boolean等)以及其他引用类型(包括String)初始化为null。对于数组或集合,按照其元素类型的初始化方式进行初始化。函数之内的变量一律不进行自动初始化,初始化之前使用这些变量会造原创 2013-03-04 08:55:34 · 1151 阅读 · 0 评论 -
java中的编码
编码方式规定了语言的最小单位用什么二进行制数字来表示,比如“UTF-8”编码中就有规定一个汉字用3个字节来表示,以及每个汉字对应哪3个字节。java中的String是用来表示多国语言的,java支持的语言在对应的编码方式下都能找到相应的byte数字表示,但并不是任意的byte(或byte数组)都能对应到一个字--即使尝试所有的编码方式。String一定是有编码方式的,但文件不一定有,比如二进制原创 2013-06-15 19:35:15 · 1107 阅读 · 0 评论 -
单例模式
本文讲Java中单例模式的3种实现方法。方法一public class Elvis { public static final Elvis INSTANCE=new Elvis(); private Elvis(){}}强制把构造函数私有化,只能通过INSTANCE来得到实例,并且这个实例只有1个。同时,INSTANCE中final类型,不可被更改。但是原创 2013-02-27 11:16:19 · 866 阅读 · 0 评论 -
Java泛型
泛型的主要功能是提供编译时类型检查,原生态类型(即不使用泛型)躲避了编译时类型检查,不推荐使用,在IDE中编辑时会有警告。泛型有子类化(subtyping)规则。参数化类型的List是原生态类型List的一个子类型,但不是参数化类型List的子类型。在泛型中不承认参数之间的继承关系。但是ArrayList是List的子类。与泛型刚好相反,数组是协变(covariant)的,即Sub为Super的子原创 2013-02-28 21:50:41 · 842 阅读 · 0 评论 -
用函数对象表示策略
Java中的函数对象功能上类似于C语言中的函数指针,是一种策略模式。public class StringLengthComparator { public int compare(String str1,String str2){ return str1.length()-str2.length(); }}像上面代码这样,一个类仅仅是提供了一个方法,而这个方法是对其他对象(这些原创 2013-02-28 16:10:56 · 766 阅读 · 0 评论 -
Android NDK--自己编写调用JNI
其实ubuntu中android开发环境的搭建也很简单(1)下载android-sdk (2)为Eclipse安装ADT,从help->Install New SoftWare进入,地址输入http://dl-ssl.google.com/android/eclipse/要进入NDK开发再下一个android-ndk就可以了以上开发包均可以从http://androidappdocs原创 2013-01-05 18:24:46 · 318 阅读 · 0 评论 -
import package怎么用
看这么一个文件结构:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 package zcy.android 2 { 3 class TextView 4 { 5 //... 6 } 7原创 2013-01-05 18:22:25 · 385 阅读 · 0 评论 -
Java CookBook(一)
Java字符串和正则表达式String是固定不变的,即当你改变String时实际是上创建了一个新字符串,而原来的字符串保持不变。StringBuffer和StringBuilder允许内容是可变的,它们都提供setCharAt(),insert()等修改字符串内容的方法。StringBuffer是线程安全的,在多线程应用中必须使用StringBuffer。StringBuilder不是线程安全原创 2013-01-05 18:27:20 · 413 阅读 · 0 评论 -
使用HttpClient时出错NoClassDefFoundError
HttpClient的使用依赖于Apache commons项目中的两个组件——commons-logging.jar、commons-codec.jar。所以要在Eclipse中添加外部Jar包commons-logging.jar和commons-codec.jar。包括HttpClient.jar已经都在eclipse的plugin里面了,不需要另外下载。网上普遍讲的No原创 2013-01-05 18:26:58 · 767 阅读 · 0 评论 -
安装监听的三种形式
Button是事件源,当Click事件发生后Button把事件丢给监听器来处理。方法一下面的代码是最易懂,最直白的表示方法: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 package zcy.app; 2 3 imp原创 2013-01-05 18:22:27 · 384 阅读 · 0 评论 -
java读取pdf和MS Office文档
有时候PDF中的文字无法复制,这可能是因为PDF文件加密了,不过使用PDFBox开源软件就可以把它读出来。还有一个用于创建PDF文件的项目----iText。PDFBox下面有两个子项目:FontBox是一个处理PDF字体的java类库;JempBox是一个处理XMP元数据的java类库。一个简单示例:要引入pdfbox-app-1.6.0.jar这个包。package p原创 2013-01-05 18:27:34 · 540 阅读 · 0 评论 -
JMeter使用总结
使用JMeter做压力测试1.下载Jmeter地址:http://jmeter.apache.org/download_jmeter.cgi 2.启动jmeter运行bin/jmeter.bat3.添加线程组在TestPlan节点上右键,Add-->Threads(Users)-->Thread Group。Number of Threads (Users):要模拟原创 2013-01-05 18:30:00 · 522 阅读 · 0 评论 -
Java注解
Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。元注解元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。@Retention: 定义注解的保留策略原创 2013-03-02 14:11:39 · 745 阅读 · 0 评论 -
Eclipse快捷键
搜索显示搜索对话框:Ctrl+H打开资源:Ctrl+Shift+R打开类型:Ctrl+Shift+T快速Outline:Ctrl+O在Workspace 中搜索选中的元素声明:Ctrl+G在Workspace 中搜索选中的文本:Ctrl+Alt+G在Workspace 中搜索元素的引用:Ctrl+Shift+G打开类层次结构:Ctrl+T打开调用层次结构原创 2013-03-05 16:41:48 · 871 阅读 · 0 评论 -
Builder模式创建对象
package builder;public class NutritionFacts { //必选参数 private final int servingSize; private final int servings; //可选参数 private final int carlories; private final int fat; private final int s原创 2013-02-26 21:14:30 · 927 阅读 · 0 评论 -
服务提供者框架
//服务接口public interface Service { public void move();}public class Train implements Service{ public void move(){ System.out.println(this.getClass().getName().substring(this.getClass().getName().原创 2013-02-26 19:41:00 · 855 阅读 · 0 评论 -
java按值传递
C语言中可以使用指针*或引用&把一企业基本数据类型传到一个函数里面,然后改变它的值,Java没有这个功能。Java中所有的赋值操作=和函数传参,传递的都是“值”,但是要特别强调一下,对于引用数据类型(除基本数据类型以外的所有java数据类型,String也属于引用数据类型)的变量,变量本身的值是指向那片内存的地址。StringBuffer a=new StringBuffer("原创 2013-06-15 14:03:46 · 1013 阅读 · 0 评论