java
文章平均质量分 61
mapc我
我的个人站点:
展开
-
java网页解析工具包
Jsoup是一个非常好的解析网页的包,用Java开发的,提供了类似DOM,CSS选择器的方式来查找和提取文档中的内容。相关资料如下:下载地址:http://jsoup.org/download中文文档资料:http://www.open-open.com/jsoup/比较好的文档:http://www.ostools.net/apidocs/apidoc?a原创 2016-04-27 16:44:59 · 1045 阅读 · 0 评论 -
Java7里try-with-resources分析
这个所谓的try-with-resources,是个语法糖。实际上就是自动调用资源的close()函数。和Python里的with语句差不多。例如:[java] view plaincopystatic String readFirstLineFromFile(String path) throws IOException {转载 2015-05-05 16:22:56 · 350 阅读 · 0 评论 -
Java SE 7新特性:同时捕获多个异常类型
在Java SE 7中,你可以使用单个catch语句块处理一种或多种类型的异常,并以改进的异常类型检查方式来重新抛出异常。我们先来看一段代码:catch (IOException ex) { logger.log(ex); throw ex;catch (SQLException ex) { logger.log(ex); throw ex;转载 2015-05-05 16:49:10 · 1869 阅读 · 0 评论 -
Serializable序列化与session
1,关于javabean实现Serializable接口的问题。如果把对象序列化到硬盘,就必须实现这个接口。实现了这个接口的javabean类会有一个默认的类标识,也可以成为类主键。当反序列化的时候,就是通过这个类标识来辨别这个被序列化的对象到底是哪一个类。然后会利用反射调用javabean的空参构造方法来重新创建一个对象,并且初始化这个对象的状态为被序列化的那个对象序列化前的状态,这样就反序列化原创 2015-09-15 19:53:37 · 3362 阅读 · 0 评论 -
JAVA监听器原理
来源:http://www.cnblogs.com/hulitut/archive/2012/03/27/2420414.htmlJava 最新的事件处理方法是基于授权事件模型事件源生成事件并将其发送至一个或多个监听器监听器简单地等待,直到它收到一个事件。一旦事件被接受,监听器将处理这些事件,然后返回。事件:在授权事件模型中,事件是一个描述事件源状态改变的对转载 2016-03-24 15:11:00 · 575 阅读 · 0 评论 -
java拦截器模型
Java实现的拦截器模型 拦截器在在流行的开源框架中很常见,依赖的技术就是Java的动态代理。理解拦截器的核心原理对理解这些开源框架的体系结构至关重要。下面以一个简单的模型的来说明拦截器的实现的一般方法。 模型分为以下模块:业务组件:是被代理和被拦截的对象。代理处理器:实现了InvocationHandler接口的一个对象代理对象:P转载 2016-03-25 09:27:59 · 593 阅读 · 0 评论 -
ThreadLocal怎么理解?
关于对ThreadLocal的困惑 看了网上不少博主对ThreadLocal的理解,紧接着下面就有很多批判,搞得我都不知道ThreadLocal具体该怎么理解啦。 为了求证,去看了源码 看了源码,自己理解了一遍,然后再百度看了别人博客更接近的解释,感觉以下两篇博文解释更精确一点。 博文一:点击去原文查看ThreadLocal<T>类在Spring,Hibernate等框架中起原创 2016-03-27 00:24:23 · 1766 阅读 · 0 评论 -
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
大神就是大神啊,感觉博主写的太好了,感觉保藏起来不过瘾,就跟着博主把这篇博文学完后,又再次转载过来,这样可以让更多的人看到大神高质量的博文。想看大神原文的点击转去查看:http://blog.csdn.net/luanlouis/article/details/24589193===========================================================转载 2016-03-27 11:39:10 · 2266 阅读 · 1 评论 -
java泛型
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqyumidi");转载 2016-04-01 09:07:29 · 298 阅读 · 0 评论 -
LinkedList基本用法
LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.LinkedList的构造函数如下1. public LinkedList(): ——生成空的链表2. public LinkedList(Collection col): 复制构造函数1、获取链表的第一个和最后一个元素[java] view plaincopy转载 2015-07-24 10:54:26 · 633 阅读 · 0 评论 -
java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
public class ConvertJson { /** * 对象转换为Json * @param obj * @return */ public static String object2json(Object obj) { StringBuilder json = new StringBuilder();转载 2016-04-09 03:26:29 · 618 阅读 · 0 评论 -
Java7里try-with-resources分析(二)
try-with-resources语句是一个声明一个或多个资源的 try 语句。一个资源作为一个对象,必须在程序结束之后随之关闭。 try-with-resources语句确保在语句的最后每个资源都被关闭 。任何实现了 java.lang.AutoCloseable的对象, 包括所有实现了 java.io.Closeable 的对象, 都可以用作一个资源。 下面的例子转载 2015-05-05 16:28:57 · 416 阅读 · 0 评论 -
Java7里try-with-resources分析(三)
在此之间我们处理SQL语句,异常或IO对象时,不得不用命令关闭资源,就如下:try{//Create a resource- R} catch(SomeException e){//Handle the exception} finally{//if resource R is not null thentry{/转载 2015-05-05 16:41:12 · 344 阅读 · 0 评论 -
Java7里try-with-resources分析(四)
Java SE 7中新增了try-with-resources语句。try-with-resources语句是一个声明了一个或多个资源的try语句。这里的一个资源指的是在使用完成后必须关闭释放的对象。try-with-resources语句可以确保在该语句执行之后关闭每个资源。所有实现了java.lang.AutoCloseable接口的对象均可以作为资源在try-with-resources语句转载 2015-05-05 16:44:00 · 430 阅读 · 0 评论 -
事务
一、事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 例如:A——B转帐,对应于如下两条sql语句 update from account set money=money+100 where name='B'; update from account set money=money-100 where name='A';转载 2015-07-16 14:40:51 · 406 阅读 · 0 评论 -
java ImageIO处理图像的封装
java ImageIO处理图像的封装分类: java类2014-05-12 18:23 2206人阅读 评论(0) 收藏 举报 package com.adam.dev.pic.easyImage;import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Font;impo转载 2015-07-15 17:54:36 · 393 阅读 · 0 评论 -
可序列化类的不同版本的序列化兼容性
凡是实现Serializable接口的类都有一个表示序列化版本标识符的静态变量:private static final long serialVersionUID;以上serialVersionUID的取值是Java运行时环境根据类的内部细节自动生成的。如果对类的源代码作了修改,再重新编译,新生成的类文件的serialVersionUID的取值有可能也会发生变化。原创 2015-06-29 15:34:34 · 2851 阅读 · 0 评论 -
JAVA序列化机制的深入研究
1、java序列化简介序列化就是指对象通过写出描述自己状态的数值来记录自己的过程,即将对象表示成一系列有序字节,java提供了将对象写入流和从流中恢复对象的方法。对象能包含其它的对象,而其它的对象又可以包含另外的对象。JAVA序列化能够自动的处理嵌套的对象。对于一个对象的简单域,writeObject()直接将其值写入流中。当遇到一个对象域时,writeObject()被再次调用,如果这个转载 2015-06-29 15:28:58 · 472 阅读 · 0 评论 -
LinkedHashSet实现原理-学习
1. LinkedHashSet概述: LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。 注意,此实现不是同步的。如果多个线程同时访问链接的哈希Set,而其中至少一个线程修改了该Set,则它必须保持外转载 2015-05-27 17:12:35 · 436 阅读 · 0 评论 -
HashSet实现原理-学习
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2. HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet的实现比转载 2015-05-27 17:08:41 · 314 阅读 · 0 评论 -
LinkedHashMap实现原理-学习
1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序转载 2015-05-27 17:09:33 · 307 阅读 · 0 评论 -
ArrayList实现原理-学习
1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量也转载 2015-05-27 17:12:40 · 347 阅读 · 0 评论 -
HashMap实现原理-学习
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,H转载 2015-05-27 17:05:16 · 425 阅读 · 0 评论 -
ArrayList
JAVA ArrayList的实现原理 及ArrayList的使用1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小转载 2015-05-27 16:45:36 · 325 阅读 · 0 评论 -
《编程思想-笔记》-第三章,第四章
1,Random类,是一个产生随机数的类,创建一个Random对象,即可以通过这个对象调用不同的方法产生不同的随机数。这个产生随机数的原理是:Random类内部依靠一种算法,每次需要为这个算法内部一个变量一个初始值。这个初始值也被称为种子。如果创建的几个对象给的种子值都一样时,那么依据相同的算法会产生相同的随机数。当然也可以不给种子,那么默认的使用对象创建时的时间作为种子。2,通常Object原创 2015-08-03 17:13:47 · 339 阅读 · 0 评论 -
《java编程思想》-第二章,一切都是对象
1,java中引用:java中的对象的“引用”,和c++指针不一样,更贴切的讲java中的引用是一种句柄,有了这个句柄可以间接对堆中对象内存进行操纵。这个句柄,有可能是空句柄,不直向任何对象。2,java中数据的存储:(1)寄存器:最快的存储区,位于处理器内部。数量有限,不能人为控制,是操作系统根据需求进行分配的。(2)堆栈:位于通用的随机访问存储器(RAM)。通过堆栈指针可以从处原创 2015-07-17 09:29:12 · 485 阅读 · 0 评论 -
对象的this以及构造方法
实例成员变量存储在在堆中开辟的一块对象空间中。而,实例成员方法和类的静态成员则存储在静态方法区。 类的每个实例,都拥有各自的成员变量,变量的不同值则代表对象的不同状态。而成员方法则不然,所有的实例都共用同一套成员方法。一,作为隐含参数:那么实例方法如何区分要处理哪一个实例的成员变量呢?在实例化一个类时,每个实例都有一个隐含的指针this,系统会将这个this指向每个实例本身,代表本对象。在原创 2015-04-19 12:48:20 · 551 阅读 · 0 评论 -
关于程序中的不同成员的在内存中存储情况
实例成员变量存储在在堆中开辟的一块对象空间中。而,实例成员方法和类的静态成员则存储在静态方法去。类的每个实例,都拥有各自的成员变量,变量的不同值则代表对象的不同状态。而成员方法则不然,所有的实例都共用同一套成员方法。**********************************************(未完)原创 2015-04-19 12:45:01 · 542 阅读 · 0 评论 -
继承的相关注意事项
一,继承的内存形态:对于父类的成员,子类继承后,并非将父类中的成员复制一份放到子类的空间中。它仍然只在父类空间中只用一份。那么子类如何访问继承的成员的呢?二,关于子类访问继承的成员子类对象.成员名:编译器会首先到子类空间中查找是否存在此成员,如果没有则在父类空间中查找,依次向上查找。注意向上查找的过程中,有可能存在某层子类中也定义了和该层上面的父类同名的成员,那么此时会发生父类成员原创 2015-04-19 21:21:45 · 669 阅读 · 0 评论 -
Java NIO (一)
Java NIO:NIO概述Java NIO:NIO概述 在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题。NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题。本文下面分别从Java NIO的几个基础概念介绍起。 以下是本文的目录大纲: 一.NIO中的几个基础概念 二.Channel 三.Buffe转载 2015-04-19 17:09:20 · 566 阅读 · 0 评论 -
静态代码块
静待代码块中的变量都是局部变量,只在本快内有效。静态代码块是在类加载时自动执行,这个自动加载者可能是jvm也可能是其他类。静态代码块只能访问静态成员。静态代码块是在静态方法包括main方法之前加载,一般用于初始化类的。经常一些操作在类加载时就需要执行,那么可以把它放在静态代码块,比如数据库驱动类的加载。原创 2015-04-19 13:34:52 · 553 阅读 · 0 评论 -
垃圾回收机制(四)- System.gc()
1.垃圾收集算法的核心思想 Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。 垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被引用转载 2015-04-19 17:59:29 · 449 阅读 · 0 评论 -
垃圾回收机制(三)
下面是自己百度收集整理的,不是本人原创总结。这个方面,我也是有点模糊不清。 java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身。其中,System.gc()和Runtime.getRuntime().gc() 方法调用时用于显式通知JVM可以进行一次垃圾转载 2015-04-19 16:45:13 · 549 阅读 · 0 评论 -
垃圾回收机制(二)
详细介绍Java垃圾回收机制垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再使用的对象。GC通过确定对象是否被活动对象引用来确定是否收集该对象。GC首先要判断该对象是否是时候可以收集。两种常用的方法是引转载 2015-04-19 16:28:12 · 369 阅读 · 0 评论 -
main方法与命令行参数
java编译器把java源代码编译成字节码,然后把字节码加载进内存,调用jvm解释执行字节码翻译成本地系统cpu可以执行的机器指令。在加载字节码的时候首先会调用静态代码块来对类进行初始化。接着jvm解释器就会查找main方法,从这个开始整个程序的运行。也就是main方法只能由系统调用,因此它的参数也只能由系统传递给它,系统传递的参数则来自于用户的输入。对于控制台:java 类名 [参数原创 2015-04-19 14:12:58 · 555 阅读 · 0 评论 -
java的引用调用
ava中的引用调用,只是传地址值调用,并没有像c和c++传的是引用OnlyTest.javapublic class OnlyTest { private int x=0; public int getX() { return x; } public void setX(int x) { this.x = x; } }TrySwap.java原创 2015-04-19 12:28:50 · 719 阅读 · 0 评论 -
静态成员变量
只提一点:用一个类声明的一个变量,而没有new对象,这个变量可以直接调用类中的静态成员,而不能调用类中的实例成员,因为实例成员归具体对象所有。而没有new对象的那个变量只是一个null,它没有指向任何对象,此时它只能代表类本身。原创 2015-04-19 13:45:14 · 515 阅读 · 0 评论 -
垃圾回收机制(一)
JVM分代垃圾回收策略的基础概念JVM分代垃圾回收策略的基础概念由于不同对象的生命周期不一样,因此在JVM的垃圾回收策略中有分代这一策略。本文介绍了分代策略的目标,如何分代,以及垃圾回收的触发因素。文章总结了JVM垃圾回收策略为什么要分代,如何分代,以及垃圾回收的触发因素。为什么要分代分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因转载 2015-04-19 16:24:45 · 553 阅读 · 0 评论 -
Java NIO (三)
Java NIO:浅析I/O模型 也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了转载 2015-04-19 17:36:16 · 332 阅读 · 0 评论 -
java.util.ResourceBundle使用详解
一、认识国际化资源文件 这个类提供软件国际化的捷径。通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的语言 一次处理多个语言环境 以后可以轻松地进行修改,支持更多的语言环境 说的简单点,这个类的作用就是读取资源属性文件(properties),然后根据.properties文件的名转载 2015-07-16 16:39:18 · 341 阅读 · 0 评论