![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 65
john_cena
这个作者很懒,什么都没留下…
展开
-
NIO
http://tutorials.jenkov.com/java-nio/socketchannel.html package com.gc;import java.io.FileInputStream;import java.io.FileOutputStream;import java.nio.ByteBuffer;import java.nio.CharBu...原创 2014-05-14 00:11:25 · 50 阅读 · 0 评论 -
【线程】线程并发的一些高级API
Lock&Condition Executor任务执行器,通过线程池来完成任务的执行。使用线程池的好处:仅需维护一定数量的线程去执行任务,降低频繁创建或销毁线程而带来的性能损耗。 interface ExecutorService extends Executorinterface ScheduledExecutorService extends Exe...原创 2014-07-13 20:52:06 · 140 阅读 · 0 评论 -
【apache-commons】CLI
命令行参数解析器用途:对命令行参数进行解析,完成应用程序的配置比如,启动应用的时候,通过命令行指定端口,如果没有指定,则使用默认的。 package org.apache.commons.cli;public class App { public static void main(String[] args) throws ParseException { ...原创 2014-07-16 23:59:11 · 70 阅读 · 0 评论 -
【apache-commons】Collections
原创 2014-07-20 21:50:26 · 57 阅读 · 0 评论 -
异常处理
一个方法不仅需要告诉编译器将要返回什么值,还要告诉编译器有可能发生什么错误。 异常处理正确的做法: 低层次的方法抛出异常,让高层次的方法去捕获异常并通告用户发生了错误 未检查(unchecked)异常:派生于Error类或RuntimeException类的所有异常 异常处理方式:声明异常(推荐做法),即在方法上声明可能发生的已检查异常,交给上层方法去处理...原创 2014-08-08 14:14:13 · 161 阅读 · 0 评论 -
BlockingQueue+线程池
A.使用阻塞队列存储任务:Runnable,Callable,FutureTaskB.线程池从队列取任务执行:put(),take() import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.ArrayList;im...原创 2014-08-08 14:57:07 · 152 阅读 · 0 评论 -
Quick Response
http://javapapers.com/core-java/java-qr-code/ <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>2.2</version>原创 2014-08-09 22:18:15 · 367 阅读 · 0 评论 -
PDF转图片
<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>1.8.6</version></dependency> 先转换成多张图原创 2014-08-09 22:19:21 · 183 阅读 · 0 评论 -
Java core (上篇)
Java中的8种基本数据类型:整型:byte (1字节),short(2字节),int(4字节),long(8字节)浮点型:float(4字节),double(8字节)字符型:char布尔型:boolean 注意:浮点数值不适用于禁止出现舍入误差的金融计算中!如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类 常量关键字f...原创 2014-08-10 23:25:42 · 139 阅读 · 0 评论 -
Thread pools and work queues
http://www.ibm.com/developerworks/library/j-jtp0730/index.html 线程池的原理:1. 内部维护若干个线程,这些线程一直保持运行/阻塞状态;2. 维护一个队列,通过锁的方式让这些线程从队列中取任务;3. 如果队列没有任务,则阻塞当前请求任务的线程;4. 当有新的任务加入到任务队列时,唤醒与锁绑定的等待集中的线程...原创 2014-08-10 23:25:57 · 118 阅读 · 0 评论 -
JVM参数设置
Max Memory(byte): JVM可以向操作系统申请的最大内存空间Free Memory(byte): 释放掉的内存空间Total memory(byte): 当前使用的总内存空间Available processor: cpu核数java.lang.OutOfMemoryError: PermGen space 永久区内存溢出:GC不会清理永久区,因此出现此异常表示永久区内存小,...原创 2015-03-11 11:59:49 · 174 阅读 · 0 评论 -
Java学习网站
www.codeproject.com原创 2014-04-04 09:31:00 · 59 阅读 · 0 评论 -
数字签名
数字签名:靠加密解密算法进行支撑 单向散列算法 MD5,SHA非对称密钥算法:RSA数字签名算法:DSA(Digital Signture Algorithm) 数字签名标准:DSS(DigitalSinature Standard) 使用私钥对摘要进行加密,即为数字签名! 下图描述了数字签名的大概流程,具体流程比这个稍微复杂一些。 ...原创 2014-04-06 12:15:07 · 122 阅读 · 0 评论 -
Java加密解密
这家伙是搞情报的么?http://snowolf.iteye.com/blog/735294原创 2014-04-08 14:08:11 · 46 阅读 · 0 评论 -
URI文件路径-空格问题
如C:\Documents and Settings路径包含空格,直接传入到URI中会出错。 正确的做法:通过API将普通文件对象转换为URI路径。而且,会自动给文件路径前面加上协议:file:/ URI文件路径与File之间的转换,将日志放到用户目录下:public static void main(String[] args) { String home = Sy...原创 2014-09-16 09:51:29 · 752 阅读 · 0 评论 -
【线程】使用同步:解决多线程引发的内存一致性错误问题
首先,需要理解一些理论上的东西。 多个线程并发对同一个资源进行操作,很可能发生内存一致性错误。 究其原因,线程很多情况下对资源的操作不是原子的,这些代码会被分为若干条指令去执行,而在一个CPU时间片内又不能将这些指令全部执行完毕。当多个线程同时操作同一个共享资源时,线程B拿着线程A的半成品进行操作,内存一致性错误就发生了。 如何解决?1.同步,即:加锁。通过加锁...原创 2014-07-12 23:07:36 · 969 阅读 · 0 评论 -
【线程】中断的调用与处理以及设置线程超时
线程中断 //中断主线程 Thread.currentThread().interrupt();//线程自己中断自己 Thread worker = new Thread(); worker.start(); worker.interrupt();//线程A中断线程B ...原创 2014-07-12 19:19:43 · 166 阅读 · 0 评论 -
多线程基础
http://www.ibm.com/developerworks/library/j-jtp0730/index.html 学习编程的目的:解决问题/开发用户需要的功能 多线程可以解决什么问题?将不同的子任务交给不同的线程去执行,提高系统响应速度(比单一线程执行所有任务更快) 从最简单的开始,如何创建线程!run() : 封装线程要运行的任务,所以...原创 2014-05-19 20:38:04 · 153 阅读 · 0 评论 -
ThreadLocal在多线程中的应用
本例充分演示了ThreadLocal在多线程环境下,与线程绑定后的数据操作是完全隔离的!放心使用ThreadLocal吧!千万记得用完之后要remove! package thread;import java.util.Date;import java.util.Random;/** * 线程范围内的变量,每个线程都有自己的一份数据,换不干扰...原创 2014-05-23 00:02:03 · 123 阅读 · 0 评论 -
使用util.concurrent.Executors创建ThreadPool
通过util.concurrent.Executors直接创建线程池,非常方便 package thread.pool;import java.util.Random;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * 使用线程池的好处...原创 2014-05-24 10:48:50 · 72 阅读 · 0 评论 -
模拟2个线程操作共享资源时的如何交互
模拟2个线程操作共享资源时的如何交互 package thread;/** * 简单的2个线程间交替执行示例 * 通过synchronized保证对资源的“原子操作”不被打断 * 通过线程通信实现切换运行 */public class TwoThreadsCommunication { public static void main(Stri...原创 2014-05-24 10:52:03 · 125 阅读 · 0 评论 -
确保多线程操作的是同一个共享资源
共享资源定义为成员变量run()定义在内部类中,这样,内部类中的线程就可以直接访问同一份资源了 package thread;/** * 多线程共享资源的方式一: * * 操作共享资源的run()放到内部类中,然后操作外部类中定义的资源 * * 1个线程负责加,1个线程负责减 */public class ShareDataStyle1 {...原创 2014-05-24 10:56:39 · 234 阅读 · 0 评论 -
通过Executors创建定时任务
通过Executors创建定时任务相对时间的计算: long period = new Date("2014-10-1").getTime - System.getCurrentTimeMills package thread;import java.util.Date;import java.util.concurrent.Executors;imp...原创 2014-05-24 11:03:15 · 836 阅读 · 0 评论 -
util.Concurrent-Callable&Future
多线程协作完成任务时用?如IO异步编程?package thread.pool;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.Executo...原创 2014-05-26 19:07:16 · 80 阅读 · 0 评论 -
util.Concurrent-Lock&Condition处理线程访问共享资源的安全问题
Java5对共享资源访问的解决方案:1个锁上绑定多个监视器 package thread.lock;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;...原创 2014-05-26 19:07:29 · 68 阅读 · 0 评论 -
util.Concurrent-ReadWriteLock
使用ReadWriteLock模拟简单的缓存管理器 package thread.lock;import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantR...原创 2014-05-26 19:07:50 · 85 阅读 · 0 评论 -
effective java (六:枚举和注解)
枚举 什么时候需要使用枚举?当程序中需要使用到一组常量(整型,字符串)时,就应该使用枚举对这些常量进行封装。如,星期一到星期天、性别分男和女等 使用枚举可以带来哪些好处:类型安全,防止传入错误的参数值可读性好,比int值强不易出错,比硬编码字符串到程序各个角落好枚举实例可以具备行为,操作起来更加方便 使用枚举替换int常量和字符串常量 ...原创 2014-06-05 23:57:15 · 129 阅读 · 0 评论 -
【NIO】Chapter 1. Introduction
Encapsulation is a good thing: It partitions responsibility, hides implementation details, and promotes object reuse.封装:按职责划分类,隐藏实现细节,提供对象重用。 IO Versus CPU Time应用程序开发过程中,使用各种技巧将程序设计得更灵活,更优...原创 2014-06-23 00:59:58 · 71 阅读 · 0 评论 -
【NIO】Chapter 2. Buffers
Buffer BasicsAttributesCapacity The maximum number of data elements the buffer can hold. The capacity is set when the buffer is created and can never be changed. 指定缓冲区总容量,在分配缓冲区时指定Li...原创 2014-06-23 01:00:21 · 70 阅读 · 0 评论 -
【NIO】Chapter 3. Channels
A Channelis a conduit(管道) that transports data efficiently between byte buffers and the entity on the other end of the channel (usually a file or socket). Basic channel operationschecking to ...原创 2014-06-23 01:00:44 · 129 阅读 · 0 评论 -
【NIO】Chapter 4. Selectors
A single thread can monitor large numbers of channels with readiness selection. The Selectorand related classes provide the APIs todo readiness selection on channels. Selector Basics You re...原创 2014-06-29 01:44:38 · 247 阅读 · 0 评论 -
Java环境变量
环境变量不区分大小写,以下都是等效的:JAVA_HOME java_homePATH pathCLASSPATH classpath 临时设置环境变量(某些服务使用特定JDK,则可以再bat文件中临时设置这些环境变量)set JAVA_HOME=c:\local\jdk7set path=%JAVA_HOME%\bin;%path%set CLASSPA...原创 2014-11-27 11:12:45 · 117 阅读 · 0 评论