
编程语言
文章平均质量分 80
huanggang028
每一天,努力让梦想更近一些
展开
-
JVM监控管理及故障诊断工具之——常用命令
我们开发的程序或多或少存在各种潜在bug和性能问题。如何尽早将这些问题解决,除了需要我们自身具备丰富的经验之外,善于利用工具获取各种数据(如GC日志,堆栈信息,系统日志,线程快照等)、分析数据,从而快速定位问题也是十分重要的一环。所以,我们很有必要熟悉JVM提供给我们的工具,帮助我们从纷繁的问题中发现蛛丝马迹,从此一身轻松。本文便选取了常用的几个监控工具集故障诊断命令,以飨众神,O(∩_∩)O~原创 2013-03-10 16:44:23 · 1007 阅读 · 0 评论 -
通用dao实现
/** * 定义所有Dao层父级接口,具体实体接口需要继承该接口, * 若还有自己特有的相关操作,则在自身接口中加入新的 * 方法即可 * * @author huanggang * @version 2.5.0 */public interface BaseDao {/*** 将实体对象持久化到数据库表中* @param entity*/vo原创 2014-07-02 16:59:40 · 534 阅读 · 0 评论 -
JDK动态代理实现原理
之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。 Java代码 package dynamic.proxy; import java.la转载 2014-06-13 17:59:06 · 600 阅读 · 0 评论 -
Java 时间日期系列目录
下面是Java的时间和日期相关文章目录:01. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(1) Calendar02. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(2) 自己封装的Calendar接口03. Java Calend转载 2014-05-30 22:49:51 · 820 阅读 · 0 评论 -
java io系列01之 "目录"
java io 系列目录如下:01. java io系列01之 "目录"02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream)03. java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream)04. java io系列04之转载 2014-05-30 22:50:39 · 725 阅读 · 0 评论 -
Java 集合系列目录(Category)
下面是最近总结的Java集合(JDK1.6.0_45)相关文章的目录。 01. Java 集合系列01之 总体框架02. Java 集合系列02之 Collection架构03. Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例04. Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)转载 2014-05-30 22:45:43 · 821 阅读 · 0 评论 -
Java中try catch finally语句中含有return语句的执行情况(总结版)
在这里看到了try >但有一点是可以肯定的,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也是不建议在finally中return的原因。下面来看这几种情况。 情况一(try中有return,finally中没有return): ?1转载 2014-06-01 10:42:17 · 646 阅读 · 0 评论 -
IDE之Idea操作整理
用了接近5年的Eclipse后,最近发现周围tongs原创 2014-08-09 00:34:18 · 650 阅读 · 0 评论 -
jmx通过客户端访问的问题
I'm trying to implement JMX server side and client side.I have the following xml in the server side:Code:class="org.springframework.remoting.rmi.RmiRegistryFactoryBean">class="or原创 2014-09-30 17:53:49 · 4402 阅读 · 0 评论 -
通过Java代码执行shell命令/脚本
JDK自带的两种方式有通过Runtime.getRuntime().exec()和ProcessBuilder类来做, 后者是JDK1.5以后引入的,官方也建议放弃使用Runtime的方式来做。今天在实现的时候就是采用ProcessBuilder,apache commons类库也提供了一个exec包专门做这类功能,这次暂时没用到。 在编写过程中,遇到几个比较坑的地方:1、构建Proc原创 2014-11-13 17:51:52 · 5965 阅读 · 0 评论 -
FTP的主动模式和被动模式
最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同。在此重温一下FTP的主动模式和被动模式的相关知识。 在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题。如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适转载 2014-11-18 16:20:05 · 21000 阅读 · 2 评论 -
JAVA核心技术总结
技术总结JAVA核心技术总结J2EE技术总结工作和学习总结大数据相关技术总结转载 2015-05-06 15:37:08 · 1577 阅读 · 0 评论 -
Java泛型通配符extends与super
泛型是在Java 1.5中被加入了,这里不讨论泛型的细节问题,这个在Thinking in Java第四版中讲的非常清楚,这里要讲的是super和extends关键字,以及在使用这两个关键字的时候为什么会不同的限制。 首先,我们定义两个类,A和B,并且假设B继承自A。下面的代码中,定义了几个静态泛型方法,这几个例子随便写的,并不是特别完善,我们主要考量编译失败的问题: Jav转载 2014-06-10 23:11:51 · 1210 阅读 · 0 评论 -
Java内存分配、管理小结
首先是概念层面的几个问题:Java中运行时内存结构有哪几种?Java中为什么要设计堆栈分离?Java多线程中是如何实现数据共享的?Java反射的基础是什么?然后是运用层面:引用类型变量和对象的区别?什么情况下用局部变量,什么情况下用成员变量?数组如何初始化?声明一个数组的过程中,如何分配内存?声明基本类型数组和声明引用类型的数组,初始化时,内存分配机制有什么转载 2014-05-27 15:44:15 · 437 阅读 · 0 评论 -
全面分析 Spring 的编程式事务管理及声明式事务管理
开始之前关于本教程本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务。通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之。先决条件本教程假定您已经掌握了 Java 基础知识,并对 Spring 有一定了解。您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等。本文将直接使用这些概念而不做转载 2014-06-30 14:44:26 · 493 阅读 · 0 评论 -
探秘Java虚拟机——内存管理与垃圾回收
本文主要是基于Sun JDK 1.6 Garbage Collector(作者:毕玄)的整理与总结,原文请读者在网上搜索。1、Java虚拟机运行时的数据区2、常用的内存区域调节参数-Xms:初始堆大小,默认为物理内存的1/64(-Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小转载 2013-07-03 10:45:10 · 563 阅读 · 0 评论 -
Java中User Thread和Daemon Thread的区别
Java将线程分为User线程和Daemon线程两种。通常Daemon线程用来为User线程提供某些服务。程序的main()方法线程是一个User进程。User进程创建的进程为User进程。当所有的User线程结束后,JVM才会结束。通过在一个线程对象上调用setDaemon(true),可以将user线程创建的线程明确地设置成Daemon线程。例如,时钟处理线程、idle线程、垃圾回收线原创 2013-08-16 11:22:42 · 624 阅读 · 0 评论 -
JAVA多线程和并发基础面试问答
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务原创 2014-02-24 13:24:19 · 682 阅读 · 0 评论 -
java String的equals,intern方法
JAVA中的equals和==的区别 ==比较的是2个对象的地址,而equals比较的是2个对象的内容。显然,当equals为true时,==不一定为true; 基础知识的重要性,希望引起大家的重视,包括自己在内很多困惑和疑问而且均来自于最基础的知识折腾了一阵子又查了查书,终于对 String 这个特殊的对象有了点感悟public c转载 2014-04-01 23:04:40 · 527 阅读 · 0 评论 -
父类引用指向子类对象
父类引用指向子类对象指的是:例如父类Animal,子类Cat,Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。Animal animal = new Cat();即声明的是父类,实际指向的是子类的一个对象。 那这么使用的优点是什么,为什么要这么用?可以用这几个关键词来概括:多态、动态链接,向上转型也有人说这转载 2014-05-08 08:40:40 · 709 阅读 · 0 评论 -
解析Unicode编码和Java char
Java的字符类型采用的是UTF-16编码方式对Unicode编码表进行表示。其中一个char类型固定2Bytes(16bits)。首先先介绍一下Unicode编码表和UTF-16编码算法: Unicode编码表的专业术语: 代码点 (code point): 指在Unicode编码表中一个字符所对应的代码值。如汉字“一”的代码点是U+4E00,英文字母“A”的代码转载 2014-05-08 22:01:00 · 943 阅读 · 0 评论 -
什么是字符串常量池?
在理解字符串常量前,我们先熟悉一下如何创建一个字符串,在Java中有两种方法可以创建一个字符串对象:使用new运算符。例如:1String str = newString("Hello");使用字符串常量或者常量表达式。例如:12转载 2014-04-12 18:42:26 · 632 阅读 · 0 评论 -
Java关键字final、static使用总结
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 fina转载 2014-05-20 16:19:56 · 420 阅读 · 0 评论 -
什么是java序列化,如何实现java序列化?
Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。序列化就是一种用转载 2014-05-14 16:54:12 · 467 阅读 · 0 评论 -
详细解析Java中抽象类和接口的区别
在Java语言中, abstract class 和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者转载 2014-05-21 16:21:15 · 404 阅读 · 0 评论 -
闭锁CountDownLatch与栅栏CyclicBarrier
最近在看java并发相关的书籍,有一些同步的知识是平常不常用但是觉得会很有用的东西,这里参考别人的文章和自己的理解,将闭锁和栅栏的用途与区别简单描述一下。闭锁:一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。即,一组线程等待某一事件发生,事件没有发生前,所有线程将阻塞等待;而事件发生后,所有线程将开始执行;闭锁最初处于封闭状态,当事件发生后转载 2014-06-04 14:13:23 · 745 阅读 · 0 评论 -
40个Java集合面试问题和答案
1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如转载 2015-05-22 17:26:34 · 1295 阅读 · 0 评论