JavaSE
文章平均质量分 80
lilongfei123321
这个作者很懒,什么都没留下…
展开
-
Java DelayQueue使用实例
DelayQueue是一个支持延时获取元素的无界阻塞队列。队列使用PriorityQueue来实现。队列中的元素必须实现Delayed接口,在创建元素时可以指定多久才能从队列中获取当前元素。只有在延迟期满时才能从队列中提取元素。我们可以将DelayQueue运用在以下应用场景:缓存系统的设计:可以用DelayQueue保存缓存元素的有效期,使用一个线程循环查询DelayQueue,一旦能...原创 2016-02-18 23:43:15 · 281 阅读 · 0 评论 -
java操作摄像头截图
本来sun有个jmf组件可以很方便的实现摄像头截图的,不过这版本后来停止更新了,当前官网最新版本为Java Media Framework (JMF) 2.1.1e,下载回来,在windows 7 32位上使用,居然不能运行,网上另外找了个fmj的替代框架jmf使用,下载地址:http://fmj-sf.net/downloads.php 资源在附件中注意根据不同的平台要在Java加载的路...原创 2013-04-25 23:36:51 · 396 阅读 · 0 评论 -
JAVA海量数据处理之 BitMap
路漫漫其修远兮,吾将上下而求索。想要更快,就要深入挖掘 JAVA 基础的数据结构,从来分析出所编写的 JAVA 代码为什么把内存耗尽,思考有什么办法可以节省内存呢? 啊哈!算法。这里采用了 BitMap 思想。 首先来看一个实验:指定 VM 参数大小: -Xms256m -Xmx512m import java.util.TreeSet;public class T...原创 2013-04-26 22:13:01 · 452 阅读 · 0 评论 -
java移位运算符详解
java移位运算符不外乎就这三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。 1、 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数。 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数。 左移的规则只记住一点:丢弃最高位,0补最低位 如果移动的位数超过了该类型...原创 2012-12-01 16:10:31 · 103 阅读 · 0 评论 -
Comparable与Comparator的区别
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.util下,而Comparable位于...原创 2013-02-04 22:53:13 · 64 阅读 · 0 评论 -
Java多线程下载核心代码(适用于多线程文件传输,复制)
import java.io.IOException;import java.io.InputStream;import java.io.RandomAccessFile;/** * 一个线程处理文件写入 * @author app * */class Download extends Thread { // 定义字节数组(取水的竹筒)的长度 pri...原创 2013-02-06 09:01:56 · 114 阅读 · 0 评论 -
unchecked Exception & checked Exception
一.异常介绍任何的异常都是Throwable类,并且在它之下包含两个字类Error / Exception,而Error仅在当在Java虚拟机中发生动态连接失败或其它的定位失败的时候,Java虚拟机抛出一个Error对象。典型的简易程序不捕捉或抛出Errors对象,你可能永远不会碰到需要实例化Error的应用,那就让我们关心一下Exception。Unchecked Exception....原创 2013-07-31 23:50:07 · 74 阅读 · 0 评论 -
Java枚举应用的两个小例子
今天在看lucene源代码是看到其中的Store、Index等几个枚举类型里面不仅定义了方法,而其实例中也定义了方法,晚上回来又学习了一下Enum,整理写了这个博客。第一个代码片段:package com.lfl.em;public enum Coin { penny("10p"), dollor("20$"), rmb("30¥"); private String...原创 2013-08-07 22:02:36 · 103 阅读 · 0 评论 -
thread 线程中的sleep()、wait()、yield()、join()用法介绍
从操作系统的角度讲,os会维护一个ready queue(就绪的线程队列)。并且在某一时刻cpu只为ready queue中位于队列头部的线程服务。 但是当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。 或者当前正在被服务的线程需要睡一会,醒来后继续被服务,这就是sleep。 sleep方法不推荐使用,可用wait。 线程退出最好自己实现,在运行...原创 2013-02-27 00:00:31 · 293 阅读 · 0 评论 -
Java并发编程之ConcurrentHashMap
ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashM...原创 2013-04-22 23:45:03 · 116 阅读 · 0 评论 -
JAVA基础:语句标签的合法使用,以及{}语句块到底有什么用?
假如写这样的一段代码:int i;{ int j=1; i=j;} 如果这段代码是存在于类定义区域,那么我们知道它是个普通的语句块,用于初始化类属性的内容,它会在类实例化的时候被调用,里面可以执行一些方法。在很多实例里,它会用于静态初始化,之前加上一个static,来为复杂的类初始化内容,可以避免一些由于加载顺序引起的运行期异常。 但是,如果这...原创 2013-04-22 21:32:22 · 146 阅读 · 0 评论 -
解决java.lang.OutOfMemoryError: unable to create new native thread
工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题、分析问题、解决问题。一、认识问题:首先我们通过下面这个测试程序来认识这个问题:运行的环境(有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse 3.4,不指定任何JVM参数,eclipse中直接运行输出,看到了这位朋...原创 2013-04-01 22:04:16 · 104 阅读 · 0 评论 -
26个提升java性能需要注意的地方
下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:控制资源的使用,通过线程同步来控制资源的并发访问;控制实例的产生,以达到节约资源的目的;控制数据共享,在不建立直接关联的条...原创 2013-04-02 23:17:34 · 53 阅读 · 0 评论 -
Java之JSON&XML转换
Java之JSON&XML转换 前言: JSON及XML的Java序列化、反序列化(转换)在WebService、Ajax数据传递中,用得比较多。如:在用ExtJS、jQuery、mootools以及一些WebService时,你可以需要用到JSON、XML,给前端传递JSON或XML数据。这个时候你就可以用下面的这些技术帮助你转换Java对象,这...原创 2013-04-02 23:44:55 · 103 阅读 · 0 评论 -
Java监控工具、调优、调试辅助函数
JVM监控工具Java的安装包自带了很多优秀的工具,善用这些工具对于监控和调试Java程序非常有帮助。常用工具如下:jps 用途:jps用来查看JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。常用参数:-l: 输出完成的包名称;-m: 输出程序的命令行输入参数;-v: 输出完整的JVM参数。jstack 用途:1)查看java程序崩溃生成co...原创 2013-04-08 20:25:10 · 252 阅读 · 0 评论 -
Java压缩/解压缩二进制文件
在Java中提供Deflater和Inflater工具类来压缩/解压缩数据。 这两个工具类采用zlib算法,下面给出一个封装好的工具。package com.lifeiflong.io;import java.io.BufferedInputStream;import java.io.ByteArrayOutputStream;import java.io.FileInput...原创 2013-04-08 23:20:31 · 1288 阅读 · 0 评论 -
java与安全
都说java是安全的,它为什么是安全的, 有哪些保证安全的特性?java的语言特性(略)字节码校验,class loader, 数组越界, 等等.数字签名数字签名是用来解决传输之间的信任问题的. 设想一个applet, 通过网络加载了一个jar包,如何保证jar包是有效的,没有被篡改过的呢?这就需要数字签名. jar的发布方拥有两个用于加密和解密的key - priv...原创 2013-04-08 23:29:42 · 83 阅读 · 0 评论 -
Java数据传输之消息字符串应用
在Java中进行数据通信一般有几种方法,一是:传送字节数组;二是:java流;三是:字符串。第三中情况一般用在消息通信(JMS等)中。可能在发送消息时需要传送Java对象,但实际只允许发送字符串。这里就涉及到Object——>String(发送消息),String——>Object(接受消息)的转换。 转换工具类在附件中,示例代码如下:package test.sea...2013-04-17 14:49:47 · 190 阅读 · 0 评论 -
java的反射和它的类加载机制
1. java 的类装载系统:在java虚拟机中有两种类装载器: 启动类装载器 和 自定义类装载器。 前者是jvm的一部分,后者是java程序的一部分。不同的类装载器放在不懂得命名空间中。类转载子系统涉及java的其它几个部分,及来自lang库的类。比如自定义的类装载器必须派生自java.lang.ClassLoader。 ClassLoader中定义的方法为程序提供了访问类装载器机制的...原创 2013-04-19 21:32:29 · 123 阅读 · 0 评论 -
java泛型疑惑与讲解
泛型是JDK1.5中一个最重要的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出ClassCastExceptions的可能。 所谓泛型:就是变量类型的参数化。当没有指定泛型继承的类型或接口时,默认使用T extends Object,所以默认情况下任何类型都可以作为参数传入。 使用或是 //GenericTest ge4 = ...原创 2013-02-28 23:33:50 · 100 阅读 · 0 评论 -
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
java.lang.Object ....|__java.util.Date ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time 【父类】java.util.Date日期格式为:年月日时分秒 【子类】java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据] 【子类】java.sql...原创 2013-02-28 23:39:38 · 60 阅读 · 0 评论 -
Protocol Buffers 入门应用
Protocol Buffers是Google开源的序列化库,具有平台无关,高性能,兼容性好等有点。它是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化/反序列化。由于Protocol Buffers具有以上的特点,所以它很适合做数据存储或RPC的数据交换格式,常用作通信协议、数据存储等领域的与语言无关、平台无关、可扩展的序列化结构数据格式。目前支持C++、Java、Pyth...原创 2014-10-13 20:43:06 · 171 阅读 · 0 评论 -
Java应用架构常用的框架,侧重MVC和restful应用
Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。发表于2000年5月。采用Struts能开发出基于MVC(Model-View-Controller)设 计模式的应用构架。 play framework Play!是一个full-stack(全栈的)Java Web应用框架,包括一个简单的无状态...原创 2014-10-21 17:24:45 · 148 阅读 · 0 评论 -
类似于地区树形结构的构造
在做项目中经常会用到地区的树形结构,而在数据库中我们一般存储的是一个地区ID,该地区对应的父节点ID,地区名称。下面仅以安徽省为例展示地区表结构:省 - 市 - 县areaId parentId areaName136 13 淮南市135 13 蚌埠市143 13 阜阳市139 13 铜陵市149 13 宣城市133 13 合肥市147 13 亳州市138 13 淮北市142 13 ...2016-01-23 20:59:41 · 534 阅读 · 0 评论 -
Java中实例方法和静态方法在多线程下加锁和不加锁的访问情况
第一个例子是同一实例方法加锁和不加锁在多线程情况下的访问情况,代码如下: package test.caipiao.log;/** * 一个类的同一个实例,方法加锁和不加锁情况下的访问情况. * @author lfl * */public class Test { public static void main(String[] arg...2014-12-08 18:17:41 · 559 阅读 · 0 评论 -
AtomicInteger在多线程下的原子性测试
使用AtomicInteger做计数器的一个例子:package test.caipiao.log;import java.util.concurrent.atomic.AtomicInteger;import java.util.ArrayList;import java.util.Iterator;public class CounterTest {...原创 2014-12-10 16:18:34 · 204 阅读 · 0 评论 -
并发集合ConcurrentSkipListMap的性能测试
ConcurrentSkipListMap是Doug Lea在java6中新加入的一个并发集合,下面这个例子主要是测试ConcurrentSkipListMap的插入、读取和并发修改集合元素时的性能特征,代码如下: package test.caipiao.log;import java.io.File;import java.io.IOException;...2014-12-10 17:47:24 · 229 阅读 · 0 评论 -
Java中字符串的应用
intern 方法 返回从字符串常量池中唯一的字符串。 所有的字符串和字符串常量表达式的值都是interned。即在Java中所有的编译时字符串常量都自动使用了intern()方法是interned,”abc” 和 String s = “abc” 都是interned。Java中其它的基本数据类型 比如(any boolean, any byte, any ...2014-12-12 20:54:49 · 240 阅读 · 0 评论 -
Java Base64 加密解密
使用JDK的类 BASE64Decoder BASE64Encoder package test;import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * BASE64加密解密 */ public class BASE64 ...原创 2016-02-18 23:09:34 · 211 阅读 · 0 评论 -
Java远程调试
客户端Eclipse配置 服务端启动脚本java -Xdebug -Xrunjdwp:transport=dt_socket,address=192.168.1.166:8086,suspend=y -Xms256M -Xmx1024M -Dconf.dir=$CONF_HOME/conf -DSERV_HOME=$SERV_HOME com.mina.rbc.serv...原创 2014-04-24 18:20:54 · 150 阅读 · 0 评论 -
VTD-XML技术解析XML实例
VTD-XML是一种无提取的XML解析方法,它较好的解决了DOM占用内存过大的缺点,并且还提供了快速的解析与遍历、对XPath的支持和增量更新等特性。VTD-XML是一个开源项目,目前有Java、C两种平台支持。由于VTD-XML选取特定节点的遍历,修改都有很好的简单实例,这里就不再举例了。下面的实例是尝试遍历整个XML的节点,还不是很完善。 遍历XML的所有节点 p...原创 2015-03-27 12:01:50 · 368 阅读 · 0 评论 -
java设计模式之观察者模式
今天在看张龙老师视频时对观察者模式又有了进一步的理解,把笔记记录下来。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己。观察者模式的组成 –抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色...原创 2013-08-13 00:05:00 · 83 阅读 · 0 评论 -
内部类详解及举例说明
内部类(Inner Class),内部类共分为4种。 1.静态内部类(static inner class):只能访问外部类的静态成员变量与静态方法,生成静态内部类对象的方式为: OuterClass.InnerClass inner = new OuterClass.InnerClass(); 2.成员内部类(member inner class):可以访问外部类的静态与非静态的方法与成员变量...原创 2013-08-14 23:36:52 · 493 阅读 · 0 评论 -
使用递归操作文件的两个例子
1.使用递归删除某一目录下的全部文件package com.lfl.file;import java.io.File;public class DeleteAllFileTest { public static void deleteAll(File file) { if (file.isFile() || file.list().length == 0) {...原创 2013-08-17 22:31:49 · 102 阅读 · 0 评论 -
java读取txt文件乱码解决方案
因为txt默认的选项是ANSI,即GBK编码。GBK和GB2312都是中文编码,在这里解释一下两者的区别。总体说来,GBK包括所有的汉字,包括简体和繁体。而gb2312则只包括简体汉字。GBK: 汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,并涵盖了原Unicode中所有的汉字20902,总共收录了883个符号, 21003个汉字及提供了1894个造字码位...原创 2013-08-23 16:18:47 · 2142 阅读 · 0 评论 -
Eclipse反编译工具Jad.exe及插件JadClipse配置
1、下载所需文件JadClipse,http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#DownloadJad,http://www.varaneckas.com/jad2、将下载下来的Jadclipse,net.sf.jadclipse_3.3.0.jar 复制到Eclipse下的plugins目录3、将Ja...原创 2014-07-06 15:14:55 · 189 阅读 · 0 评论 -
Java 完美判断中文字符
Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比如:,。等等是不能识别的。以下是比较完善的判断方法:CharUtil.java package com.micmiu.utils;import java.util.regex....原创 2013-09-06 11:14:23 · 286 阅读 · 0 评论 -
Java生成短链
生成思路:1.将"原始链接(长链接)+key(自定义字符串,防止算法泄漏)"MD5加密2.把加密字符按照 8 位一组 16 进制与 0x3FFFFFFF 进行位与运算,把得到的值与 0x0000003D 进行位与运算,取得字符数组 chars 索引,把取得的字符相加,每次循环按位右移 5 位,把字符串存入对应索引的输出数组(4组6位字符串)3.生成4以下的随机数,从输入数组中...原创 2015-03-04 10:50:58 · 718 阅读 · 0 评论 -
解决List的ConcurrentModificationException的几种方法
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args) { String codes = "HH|140402001>RQSPF=1+SPF=3,14040200...原创 2014-04-03 19:15:45 · 275 阅读 · 0 评论 -
Java自动装箱、拆箱原理
在Java中, 所有要处理的东西几乎都是对象 (Object) 在 Java SE 5.0之后提供了自动装箱的功能,可以直接使用以下语句来打包基本数据类型:Integer integer = 10; 在进行编译时,编译器会判断是否进行自动装箱动作。自动装箱适用于 boolean、byte、short、char、long、float、double等基本数据类型,...原创 2013-04-01 21:35:53 · 85 阅读 · 0 评论