
java
文章平均质量分 83
pq258280920
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Minor GC 过程
JVM内存管理和JVM垃圾回收 JVM内存组成结构JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由FromSpace和ToSpace组成,结构图如下所示:转载 2014-05-09 16:55:00 · 3451 阅读 · 1 评论 -
Java 类文件结构初探(16进制编码角度理解 阅读笔记)
现在正在读一本《 深入理解java虚拟机——JVM高级特性与最佳实践 》的“类文件结构”一章,阅读笔记《深入理解Java虚拟机——最高实践》实验实验:写了两个简单的类,一个是普通的类A另外一个是带有static main方法的类TestA.javapackage jvm.class_structure;public class A {}转载 2014-05-15 10:54:01 · 458 阅读 · 0 评论 -
CGlib简单介绍
CGlib概述:cglib(Code Generation Library)是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。cglib封装了asm,可以在运行期动态生成新的class。cglib用于AOP,jdk中的proxy必须基于接口,cglib却没有这个限制。CGlib应用:以一个实例在简单介绍下cglib的应用。我转载 2014-05-08 10:12:35 · 839 阅读 · 1 评论 -
Java解惑之try catch finally
写给自己: 技术关注过于分散往往导致不能专注,长时间的浮躁、纠结最终的结果只是太多珍贵东西浪费,程序员拥有好奇心、求知欲本是件好事,但学会驾驭这些东西才是真正的成熟,坚持并抵住诱惑、潜心而无视喧闹,这是现在自己要做的。 转入正文: 此文起因是由于论坛中出现的这两个讨论贴: http://www.iteye.com/topic/1112358http://www.转载 2014-05-06 18:53:11 · 428 阅读 · 0 评论 -
Java中的CopyOnWrite容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。转载 2014-04-21 09:51:49 · 357 阅读 · 0 评论 -
字符转int
实现高精度的十进制加法,需要把两个String的每一个字符分别相加,原创 2014-04-18 16:00:04 · 521 阅读 · 0 评论 -
MAT Memory Analyzer Tool 插件安装 myeclipse10.1
之前做android开发的使用遇到内存问题曾看到mat能分析内存使用状态,折腾过了一次。现在有空继续折腾一下。第一步:下载Eclipse MAT下载地址:http://www.eclipse.org/mat/downloads.php可以看到最新版是1.2.1,鉴于myeclipse的安装选择压缩包离线升级第二步:下载之后将压缩包解压,放置到Myeclipse 的M转载 2014-05-05 17:18:40 · 1679 阅读 · 0 评论 -
java中的char类型
char是Java中的保留字,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。Java中使用Unicode的原因是,Java的Applet允许全世界范围内运行,那它就需要一种可以表述人类所有语言的字符编码。Unicode。但是English,Spanish,German, French根本不需转载 2014-04-18 16:17:44 · 734 阅读 · 0 评论 -
设计模式之单例模式
保证系统里面的类最多只能有一个实例对象。简单单例模式的实现:a.首先定义一个私有的变量instance来实例化类对象;b.将构造方法私有化;c.实现全局访问点public static Singleton getInstance()方法,而由于该方法是私有的,因此变量instance也要被定义为私有的。d.如果实例需要比较复杂的实例化过程,那么就将实例化过程放在static{}中:懒汉式:转载 2014-04-29 15:06:15 · 384 阅读 · 0 评论 -
think in java 笔记
今天在整理资料的时候,突然发现以前看think in java(java编程思想)时做的笔记,感觉还不错就拿来分享下,也是秉承我一贯的发表是最好的记忆建议大家都去看下这本书,无论是基础的内容还是。。都是讲的挺仔细的 早期的一次java演讲,Bill Joy(创始人之一)声称“java = C + + - -” 原则:程序设计就是将发生变化的东西同保持不变的东西分隔开/转载 2014-04-29 14:51:16 · 517 阅读 · 0 评论 -
MyEclipse中SVN的使用方法
MyEclipse中的SVN操作手册1.导入项目 点击工具栏上的【File-Import】,进入下图(如果你的对话框中没有SVN这一条目,可能是因为你没有安装SVN插件,请安装完成后,在看这篇博客) 点击Next进入下图 点击Next进入下图,输入你SVN服务器的IP地址,包括端口号和文件夹等完整路径点击Next进入下图 输入用户名转载 2014-03-10 13:17:54 · 399 阅读 · 0 评论 -
Java 多线程下的单例模式
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。正是由于这个特 点,单例对象通常作为程序中的存放配置信息的载体,因为它能保证其他对象读到一致的信息。例如在某个服务器程序中,该服务器的配置信息可能存放在数据库或 文件中,这些配置数据由某个单例对象统一读取,服务进程中的其他对象如果要获取这些配置信息,只需访问该单例对象即可。这转载 2014-03-08 15:59:16 · 386 阅读 · 0 评论 -
正则表达式matcher.group用法
原来,group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西。最近学习正则表达式,发现Java中的一些术语与其他地方描述的有所差异。比如Java正则表达式中的“组”概念与《正则表达式必知必会》一书中讲述的“子表达式”其实是一样的,只是表述不同而已。由此也引发了使用JavaAPI时对group(int g转载 2014-03-01 14:53:18 · 596 阅读 · 0 评论 -
Connection.setAutoCommit使用的注意事项
setAutoCommit总的来说就是保持数据的完整性,一个系统的更新操作可能要涉及多张表,需多个SQL语句进行操作循环里连续的进行插入操作,如果你在开始时设置了:conn.setAutoCommit(false);最后才进行conn.commit(),这样你即使插入的时候报错,修改的内容也不会提交到数据库,而如果你没有手动的进行setAutoCommit(false);出错时就会转载 2014-01-08 22:44:15 · 651 阅读 · 0 评论 -
JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
JAVA_HOME 指向的是JDK的安装路径,如C:\jdk1.5.0_06,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……那么,下面的步骤和以后的应用你都要受累了,呵呵。设置方法:转载 2014-01-03 16:45:50 · 391 阅读 · 0 评论 -
基于栈与基于寄存器的指令集架构
用C的语法来写这么一个语句:C代码 a = b + c; 如果把它变成这种形式:add a, b, c那看起来就更像机器指令了,对吧?这种就是所谓“三地址指令”(3-address instruction),一般形式为:op dest, src1, src2许多操作都是二元运算+赋值。三地址指令正好可以指定两个源和一个目标,能非常灵活的支持二转载 2014-05-15 11:11:26 · 4879 阅读 · 1 评论 -
Java 中InputStream与Reader的区别
java.io下面有两个抽象类:InputStream和ReaderInputStream是表示字节输入流的所有类的超类Reader是用于读取字符流的抽象类InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。即用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。弄清了两个超类的根本区转载 2013-12-09 18:33:18 · 366 阅读 · 0 评论 -
疯狂Java讲义笔记
一、Java概述1.java编译产生与平台无关的字节码(*.class文件),再在JVM里面执行。2.JVM是一个抽象的计算机,具有指令集并使用不同的存储区,负责执行指令,还要管理数据、内存和寄存器。3.JVM细节:指令集、寄存器、类文件的格式、栈、垃圾回收堆、存储区。4.只运行java程序可以只安装JRE,若要开发则要JDK5.bin路径下的绝大部分命令都是包装了tools.转载 2014-09-17 22:13:50 · 2272 阅读 · 0 评论 -
Java中的==和equals区别
引言:从一个朋友的blog转过来的,里面解决了两个困扰我很久的问题。很有久旱逢甘霖的感觉。 中软国际电子政务部Jeff Chi总结,转载请说明出处。概述: A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。 B.对于String a = “a”; Integer b转载 2013-05-26 15:30:25 · 431 阅读 · 0 评论 -
Java正则表达式
正则表达式中的特殊字符: \\ 反斜杠 \t 间隔 ('\u0009') \n 换行 ('\u000A') \r 回车 ('\u000D') \d 数字等价于[0-9] \D 非数字等价于[^0-9] \s 空白符号 [\t\n\x0B\f\r] \S 非空白符号 [^\t\n\x0B\f\r] \w 单独字符 [a-zA-Z_0转载 2014-05-18 13:01:47 · 448 阅读 · 0 评论 -
ConcurrentHashMap
ConcurrentHashMapConcurrentHashMap是一个线程安全的HashTable,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashMa转载 2014-09-16 16:07:57 · 412 阅读 · 0 评论 -
JAVA数据结构
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hash转载 2014-04-21 10:21:04 · 382 阅读 · 0 评论 -
Java GetBytes 编码方式
在JAVA源文件-->JAVAC-->Class-->Java-->getBytes()-->new String()-->显示的过程中,每一步都有编码的转换过程,这个过程总是存在的,只是有的时候用默认的参数进行。 1. JAVAC是以系统默认编码读入源文件,然后按UNICODE进行编码的。可以通过指定编码方式改变Javac读入源文件的编码方式。 Java代码转载 2014-03-05 14:14:45 · 703 阅读 · 0 评论 -
Java 锁笔记
synchronized 同步块对同一线程原创 2014-07-22 17:15:19 · 549 阅读 · 0 评论 -
使用Inputstream读取文件
在java中,可以使用InputStream对文件进行读取,就是字节流的输入。当读取文件内容进程序时,需要使用一个byte数组来进行存储,如此会有如下两个问题:1.如何建立合适大小的byte数组,如果已知输入流的大小。2.如果不知输入流的大小,则肯定需要建立一个很大的byte数组,那么byte中很可能有空的内容,那么如何正确合适的将byte数组的中的内容输出?先看第一个问题:解决之道就转载 2014-09-12 23:09:19 · 473 阅读 · 0 评论 -
java 线程同步的方法
原子操作:由一组相关的操作完成,这些操作可能会操纵与其它的线程共享的资源,为了保证得到正确的运算结果,一个线程在执行原子操作其间,应该采取其他的措施使得其他的线程不能操纵共享资源。原子操作:根据Java规范,对于基本类型的赋值或者返回值操作,是原子操作。但这里的基本数据类型不包括long和double, 因为JVM看到的基本存储单位是32位,而long 和double都要用64位来表示。所以无法在转载 2014-09-22 18:55:13 · 474 阅读 · 0 评论 -
Java 多线程
对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。 sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。 在调用sleep()方法的过程中,线程不会释放对象锁。 而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象原创 2014-08-24 16:15:38 · 438 阅读 · 0 评论 -
java学习之数值型别(int,float,double等)
1。2.Java中数字类型的转换法则test1中看似除数中的所有的因子都被约掉了,只剩下了1000。但实际的输出却是5,而不是我们期望的1000。究其原因,是因为MICROS_PER_DAY按int类型进行的计算,而计算的结果是86400000000,已经超出了int类型的最大值,即溢出了(因int为32位,2^31-1=2147483647),24*60*60*1000*1000转载 2014-08-24 15:07:06 · 682 阅读 · 0 评论 -
java线程中断[interrupt()函数]
java线程中断[interrupt()函数]Java多线程编程JVMthread 一个正常的线程中断:从运行到真正的结束,应该有三个阶段: 正常运行. 处理结束前的工作,也就是准备结束. 结束退出. Java曾经提供过抢占式限制中断,但问题多多,例如的Thread.stop。另一方面,出于Java应用代码的健壮性的考虑,降低了编程门槛,减少不清楚底层机制的转载 2014-08-24 11:40:36 · 978 阅读 · 0 评论 -
java基本数据结构
char 用askii码表示字符 。字符'0' 是48 字符‘A’ 是65 字符int原创 2014-08-19 11:32:47 · 450 阅读 · 0 评论 -
java线程的几个概念和方法
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。要注意的是Thread类也实现了Runnable接口,因此,从Thread类继承的类的实例也可以作为target传入这个构造方法。可通过这种方法实现多个线程的资源共享。线程的生命周期:新建状态:用new语句创建的线程对象处于新建状态,此时它和其它的java对象一样,仅仅在堆中被分配了内存 就绪状态:当一个转载 2014-06-19 12:24:08 · 481 阅读 · 0 评论 -
Java内部类的使用小结
51CTO首页51CTO博客我的博客搜索每日博报社区:学院论坛博客下载更多登录注册学习Androidhttp://android.blog.51cto.com【复制】 【订阅】原创:76翻译:0转载:49博 客|图库|写博文|帮 助首页|Android|Java/J2EE|数转载 2014-06-03 16:53:46 · 389 阅读 · 0 评论 -
Java中-classpath和路径的使用
javac -classpath的使用:javac:如果当前你要编译的java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上-classpath参数,通过使用以下三种类型的方法 来指导编译器在编译的时候去指定的路径下查找引用类。(1).绝对路径:javac -classpath c:/junit3.8.1/转载 2014-01-03 16:44:57 · 435 阅读 · 0 评论 -
JAVA 交集,差集,并集
package test;import java.util.HashSet;import java.util.Set;public class Test { public static void main(String[] args) { Set result = new HashSet(); Set set1 = new HashSet(){{ add(1);转载 2013-12-05 23:22:03 · 580 阅读 · 0 评论 -
JAVA读取大文本
public static void main(String[] args) throws Exception { int bufSize = 1024; byte[] bs = new byte[bufSize]; ByteBuffer byteBuf = ByteBuffer.allocate(1024); FileChannel channel = n转载 2013-12-05 23:14:23 · 458 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常转载 2013-09-27 15:02:30 · 379 阅读 · 0 评论 -
java反射之获取Class对象
一、非基本数据类型1、调用静态方法Class.forName(String className),参数为完整的类名,包括包的名字 Class.forName("p1.Person"); //p1是包名,Person是类名 Class.forName("oracle.jdbc.driver.OracleDriver");2、调用Object类中定转载 2013-09-26 19:37:52 · 481 阅读 · 0 评论 -
JMS学习
JMS Architecture一般将ConnectionFactory和Destination绑定到JNDI上,然后Client查找JNDI来获取。对于ActiveMQ可以直接构造ConnectionFactory和Destination。Connection和Destination就是这里的Administed Objects。 JMS有两种形式:转载 2013-10-10 09:25:29 · 634 阅读 · 0 评论 -
Java中的两种代理方式
下文我们谈论关于Java中的两种代理方式:JDK的动态代理、GBLIB代理,本文不在讨论代理的好处和使用场合,而是对比两种代理方式JDK的动态代理:接口:public interface Gril { void talkWithBoy();}实现类:public class AGril implements Gril{ public vo转载 2013-10-02 14:49:32 · 837 阅读 · 0 评论 -
JAVA泛型类和泛型方法
class A { public List getValues2(Class c) throws Exception{ List values = new ArrayList(); T o= c.newInstance(); values.add(o); return values;原创 2013-10-02 21:38:09 · 1057 阅读 · 0 评论