JAVA
文章平均质量分 84
Torres
积累 成长
展开
-
BlockingQueue详解
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个转载 2014-08-15 11:11:53 · 409 阅读 · 0 评论 -
详解 Too many open files
详解 Too many open files 运行在Linux系统上的Java程序可能会出现"Too many open files"的异常情况,且常见于高并发访问文件系统,多线程网络连接等场景。 程序经常访问的文件、socket在Linux中都是文件file,系统需要记录每个当前访问file的name、location、access author转载 2013-09-15 22:30:26 · 517 阅读 · 0 评论 -
maxActive、maxIdle和maxWait参数
name:表示你的连接池的名称也就是你要访问连接池的地址auth:是连接池管理权属性,Container表示容器管理type:是对象的类型driverClassName:是数据库驱动的名称url:是数据库的地址username:是登陆数据库的用户名password:是登陆数据库的密码maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连转载 2013-09-17 11:19:57 · 417 阅读 · 0 评论 -
Java命令行运行参数说明
Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME"bin"java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入理解。一、 查看参数列表:虚拟机参数分为基本和扩展两类,原创 2013-08-31 08:00:37 · 568 阅读 · 0 评论 -
匿名类中的final
匿名类中的final 关于final大家都知道,网上一搜一大片,大体说的都是final的意思就是保证我们所定义的变量的值不可改变或者引用不可改变~~总所周知,在java匿名类中我们要去使用外部的局部变量或者参数是,这个被匿名类使用的变量必须是final的,但是大家有没有想过为什么必须是final,总不能说他是final我们就写final好了,这做法白痴都会,接下来我们来讲解转载 2013-08-24 23:41:58 · 503 阅读 · 0 评论 -
copyonwritearraylist 深究
通过对比ArrayList and copyonwritearraylist :原创 2013-07-31 17:17:10 · 106 阅读 · 0 评论 -
copyonwritearraylist 深究
通过对比ArrayList and copyonwritearraylist : http://blog.csdn.net/leoleocmm/article/details/9670487why :CopyOnWriteArrayList--->"写入时复制"转载 2013-07-31 17:40:42 · 478 阅读 · 0 评论 -
linux 下配置maven
CentOS 6 安装MAVEN及系统配置首先从官网上 http://maven.apache.org/ 下载最新版Maven。我用的是apache-maven-3.0.4-bin.tar.gz。将下载后的文件拷贝到 /usr/local/目录下。 1、执行 tar -zxvf apache-maven-3.0.4-bin.tar.gz 命令解压文件 2转载 2013-07-25 13:42:53 · 1065 阅读 · 0 评论 -
CopyOnWriteArrayList理解
CopyOnWriteArrayList,因何而存在?ArrayList的一个线程安全的变体,其所有可变操作(add、set等)都是通过对底层数组进行一次新的复制来实现的,代价昂贵。CopyOnWriteArrayList,是因”并发”而生。CopyOnWriteArrayList,改了其中的某对象的某个值,【场景一】对于ArrayList,使用直接方式,一边遍历,转载 2013-07-31 17:13:07 · 497 阅读 · 0 评论 -
Spring的工作原理核心组件和应用
Spring的工作原理核心组件和应用Spring框架Spring 是管理多个java类的容器框架,注意是类不管理接口。Spring 的主要功能 Ioc 反转控制和 DI 依赖注入。注入的方式可以是构造函数赋值也可以是 set方法赋值推荐用set方法赋值在Spring一加载的阶段就实例化、和初始化(注入值的话)在Spring配置文件中的多个java类。转载 2013-07-19 23:27:27 · 3653 阅读 · 0 评论 -
JAVA 事务
Java事务处理总结一、什么是Java事务通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时原创 2014-01-07 13:41:33 · 415 阅读 · 0 评论 -
Java中getResourceAsStream的用法
Java中getResourceAsStream的用法首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获原创 2014-02-26 10:22:15 · 408 阅读 · 0 评论 -
HTMLCleaner 转化html到xml报出namespace的错误
实际开发中利用HTMLCleaner转化html为xml的操作中报出:Error on line 2 column 52 SXXP0003: Error reported by XML parser: 前缀 "xml" 不能绑定到除它的常用名称空间外的任何名称空间; "xml" 的名称空间也不能绑定到除 "xml" 外的任何前缀。net.sf.saxon.trans.XPathEx原创 2014-02-19 08:51:20 · 900 阅读 · 0 评论 -
WeakHashMap详解
WeakHashMap,此种Map的特点是,当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值,见实例:此例子中声明了两个Map对象,一个是HashMap,一个是WeakHashMap,同时向两个map中放入a、b两个对象,当HashMap remove掉a 并且将a、b都指向null时,WeakHashMap中的a将自动被回收掉。出现这个状况的原因是,对于转载 2014-07-31 14:12:34 · 507 阅读 · 0 评论 -
HashMap 实现原理
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难转载 2014-07-30 10:17:23 · 407 阅读 · 0 评论 -
Java数据结构之Map,List,Set及Queue相关类图
总览图: Map: List and Set: Queue:转载 2014-07-30 10:37:58 · 765 阅读 · 0 评论 -
Understanding Weak References
以前我招聘过高级java工程师,其中一个面试题目是“你对weak reference了解多少?”。这个话题比较偏,不指望每个人都能清楚它的细节。如果面试的人说“Umm...好像和gc(垃圾回收)有点关系?”,那我就相当满意了。实际情况却是20多个5年java开发经验的工程师只有2个知道有weak reference这么回事,其中1个是真正清楚的。我试图给他们一些提示,期望有人会恍然大悟,可惜没转载 2014-07-23 09:16:07 · 346 阅读 · 0 评论 -
HashMap实现原理
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。转载 2014-05-15 22:33:34 · 370 阅读 · 0 评论 -
JConsole 说明
一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。二、如何启动JConsole如果是从命令行启动,使 JD转载 2014-03-13 09:15:13 · 641 阅读 · 0 评论 -
jconsole远程连接Linux
windows下如何正确使用Jconsole远程连接linux主机上的JVM客户端: Windows XP SP3,JDK 1.5.0_14;服务端:CentOS 5.4 Final(Rad Hat版本:5.1.19.6,linux核心:2.6.18-164.el5),JDK 1.6.0_21 for linux。开始时,在Windows环境下,使用“jconsole”,连接Cen转载 2014-03-13 09:13:35 · 2510 阅读 · 0 评论 -
JRockit检测Tomcat内存溢出
公司的一个JAVA应用系统上线以来,基本每1天OutOfMemoryError: PermGen space一次。JAVA堆上限1个G,出现了好多次,想到JRockit可以分析内存泄漏的问题:1. JRockit简介Jrockit是Bea开发的符合JAVA虚拟机规范的虚拟机+虚拟机监控软件。虚拟机:Jrockit Real Time监控软件:Jrockit Mission Co转载 2014-03-13 09:41:19 · 618 阅读 · 0 评论 -
guava-libraries之String介绍
guava-libraries之String介绍CharMatcher[java] view plaincopy//原字符串 System.out.println(string); //去掉控制字符(\t,\n,\b...) System.out.println(CharMatcher.JAVA_ISO_CO转载 2014-02-20 10:49:35 · 1079 阅读 · 0 评论 -
AtomicInteger
这个类真的非常实用,更重要的是 它确实非常简单:附上自己的代码,可以自己试试:AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。 代码:package test;原创 2013-03-22 17:20:59 · 423 阅读 · 0 评论 -
class.isassignablefrom(class clz)方法 与 instanceof
class.isassignablefrom(class clz)方法 与 instanceof isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。 通常调用格式是 Class1.isAssignableFrom(Class2) 调用者和参数都是转载 2013-03-22 17:30:31 · 424 阅读 · 0 评论 -
Java中Vector和ArrayList的区别
Java中Vector和ArrayList的区别 首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下:ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机转载 2013-03-22 17:25:40 · 415 阅读 · 0 评论 -
JAVA 日期计算
public class DateTest { public static void main(String[] args) { Date date = new Date(); // 新建一个日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 格式转载 2013-03-21 14:06:22 · 415 阅读 · 0 评论 -
java 时间戳和PHP时间戳 的转换 php time()
java 时间戳和PHP时间戳 的转换 php time()总结一下java 时间戳和PHP时间戳 的转换问题: 由于精度不同,导致长度不一致,直接转换错误。 JAVA时间戳长度是13位,如:1294890876859 PHP时间戳长度是10位, 如:1294890859 主要最后三位的不同,JAVA时间戳在PHP中使用,去掉后三位,如:129489087685转载 2013-04-02 15:19:19 · 8028 阅读 · 0 评论 -
java_时间戳与Date_相互转化
java_时间戳与Date_相互转化 1、时间戳的定义 时间戳是指文件属性里的创建、修改、访问时间。 数字时间戳技术是数字签名技术一种变种的应用。在电子商务交易文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容。数字时间戳服务(DTS:digital time stamp service)是网上电子商务安全服转载 2013-04-02 15:42:25 · 1610 阅读 · 0 评论 -
i++是否是线程安全的
i++不是线程安全的,因为它不是原子操作,下一次的执行会依赖上一次的执行结果.JDk中的类是AtomicIntegerAtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。原创 2013-03-18 16:46:27 · 699 阅读 · 0 评论 -
Java单例模式详解
深入Java单例模式原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/203501在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。 所谓单例模式,简单来说,就转载 2013-03-15 09:10:42 · 382 阅读 · 0 评论 -
只有try-finally没有catch的原因(深究)
Q:当读一些源码的时候发现有些情况是只有try-finally 并没有catch只是什么原因呢?public class Test { public static void main(String[] args) { System.out.println(decision()); } static boolean decision()转载 2013-03-07 20:57:52 · 2059 阅读 · 0 评论 -
java中的向上取整
做网页免不了要有分页的实现,要实现分页又免不了要计算总共有几页,比如每页显示5条记录,一共12条记录就一共有3页,这就涉及了一个如何向上取整的问题。要解决这个问题不难,java.lang.Math中提供了一个静态函数ceil(double x),调用它很简单就可以实现,设总数为a,每页显示b条,则代码如下: int count = (int)Math.ceil((do原创 2013-03-22 17:35:49 · 964 阅读 · 0 评论 -
Future的用法
package demo.future;import java.util.ArrayList;import java.util.List;import java.util.concurrent.*;/** * 试验 Java 的 Future 用法 */public class FutureTest { public static class Task implemen原创 2013-06-21 15:34:04 · 724 阅读 · 0 评论 -
BlockingQueue介绍
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; /** 本例介绍一个特殊的原创 2013-06-11 14:20:53 · 405 阅读 · 0 评论 -
Java NIO原理图文分析及代码实现
前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:动态代理(动态代理可以参考博客:http:/转载 2013-05-23 18:11:18 · 415 阅读 · 0 评论 -
利用Jedis并发访问Redis
@Override public void run() { boolean isSuccess = true; try { jedis = pool.getResource(); jedis.select(0); while(true){ long startTime = System.currentTimeMillis(); // 获取开始时间 int原创 2013-05-23 15:29:57 · 2571 阅读 · 0 评论 -
REST 架构
REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。目录1简介编辑本段简介REST提出了一些设计概念和准则: 1.网络上的所有事物都被抽象为资源(resource); 2.每个资源对应一个唯一的资转载 2013-05-05 08:19:42 · 478 阅读 · 0 评论 -
Guava库概览
Google公布内部Java库:Guava库概览想要了解Google工程师是如何开发Java应用的?那么不妨看看Google近日公开的Guava库:这是Google内部Java项目所使用的库。【51CTO快讯】Google前日开源了其内部Java项目所用的Java库,并取名为Guava库(guava是番石榴的意思)。Guava库旨在提供核心JDK 1.6 API所没有的常用功能。G原创 2013-05-05 10:08:54 · 494 阅读 · 0 评论 -
修改eclipse 注释的作者
在eclipse/myeclipse中,当我们去添加注释的作者选项时,@author 后边一般都会默认填充的你登录计算机的用户名。如何去修改呢:方法一:修改计算机登录的用户名(99.9999%的人应该都不愿意去这样做,特别是一些公司的域帐户登录的电脑根本就改不了)。方法二:将 @author 属性写死 。通过菜单 Window->Preference 打开参数设置面板,然后转载 2013-04-18 17:25:20 · 744 阅读 · 1 评论 -
深入jar包:从jar包中读取资源文件(原理深究)
我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。在单独运行的时候这些简单的处理当然不会有问题。但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了。看看下面的代码:Java代码 //源代码1: package edu.hxraid; import java.io.*; public class Reso转载 2013-02-22 13:18:54 · 929 阅读 · 0 评论