Java
文章平均质量分 72
cheng911215
这个作者很懒,什么都没留下…
展开
-
迭代器(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()转载 2014-07-25 16:27:28 · 450 阅读 · 0 评论 -
volatile
用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A) =========================分割线1===========转载 2014-08-28 13:12:44 · 413 阅读 · 0 评论 -
java虚拟机运行时数据区
翻译 2014-08-28 13:42:39 · 489 阅读 · 0 评论 -
对象访问
翻译 2014-08-28 14:23:52 · 453 阅读 · 0 评论 -
并发时的主内存和工作内存
翻译 2014-08-28 16:56:33 · 417 阅读 · 0 评论 -
字节码文件class文件的结构
翻译 2014-08-28 16:49:03 · 418 阅读 · 0 评论 -
clone方法
在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B 任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在Java语言中,用简单的赋值语句是不能满足这种需 求的。要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,也是最高效的手段。 Jav转载 2014-08-29 10:49:32 · 860 阅读 · 0 评论 -
Java 编码格式
几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的转载 2014-08-18 09:35:53 · 446 阅读 · 0 评论 -
线程同步
一、同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。 public class Foo { private int x = 100; public int getX() { return x; } public int fix(int y) { x = x - y; r转载 2014-08-19 16:38:29 · 367 阅读 · 0 评论 -
java.lang.ThreadLocal类
ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地转载 2014-08-19 16:41:14 · 369 阅读 · 0 评论 -
基本数据类型
基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。它们是我们编程中使用最频繁的类型,因此面试题中也总少不了它们的身影,在这篇文章中我们将从面试中常考的几个方面来回顾一下与基本类型相关的知识。基本类型共有八种,它们分别都有相对应的包装类。关于它们的详细信息请看下表:基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、lon转载 2014-09-01 13:52:18 · 503 阅读 · 0 评论 -
final
final可用于声明属性、方法和类,分别表示属性不可变,方法不可重写,类不可继承。当然final修饰的方法是可以被重载的。转载 2014-09-03 10:22:55 · 398 阅读 · 0 评论 -
java.util.regex
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 它包括两个类:Pattern和Matcher 。Pattern: 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。首先一个Pattern实例订制了一个所用语转载 2014-09-03 19:30:04 · 486 阅读 · 0 评论 -
JAVA从jar包中读取资源文件
我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。在单独运行的时候这些简单的处理当然不会有问题。但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了。看看下面的代码:import java.io.*; public class Resource { public void getResource()转载 2014-09-03 15:25:09 · 817 阅读 · 0 评论 -
org.springframework.context.ApplicationContextAware
一、这个接口有什么用?当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean。换句话说,就是这个类可以直接获取spring配置文件中,所有有引用到的bean对象。二、怎么用?举个例子吧:例如我有一个方法类AppUtil,这个方法类中需要使用到的ApplicationCon转载 2014-09-03 10:36:42 · 528 阅读 · 0 评论 -
java string split
Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项: java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 stringObj.split([separator,[limit]]) 免费资源收集网(http://www.fre转载 2014-08-13 10:20:34 · 518 阅读 · 0 评论 -
java 写文件
一,FileWritter写入文件FileWritter, 字符流写入字符到文件。默认情况下,它会使用新的内容取代所有现有的内容,然而,当指定一个true (布尔)值作为FileWritter构造函数的第二个参数,它会保留现有的内容,并追加新内容在文件的末尾。1. 替换所有现有的内容与新的内容。new FileWriter(file);2. 保留现有的内容和附加在该文件的末转载 2014-08-12 19:49:47 · 386 阅读 · 0 评论 -
StringUtils
package org.apache.commons.lang;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.List;public class StringUtils { // Performance testin转载 2014-07-25 16:36:57 · 789 阅读 · 0 评论 -
collection java集合类框架
在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便。这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟知的。例如Map,Set,List等。并且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负担。程序员也可以以这个集合框架为基础,定义更高级别的数据抽象,比转载 2014-07-25 16:20:18 · 405 阅读 · 0 评论 -
private 构造函数的用途
public:所有的类都可以使用;protected: 本包以及子类可以使用;default:本包可以使用;private:仅本类可以使用原创 2014-07-25 16:11:03 · 1202 阅读 · 0 评论 -
Java annotation 自定义注释@interface的用法
一、什么是注释 说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源代码的。在J2SE5.0中可以自定义注释。使用时在@后面跟注释的名字。转载 2014-07-25 17:06:17 · 426 阅读 · 0 评论 -
classpath
Classpath是Java中的重要概念,它描述了Java虚拟机在运行一个Class时在哪些路径中加载要运行的类以及运行的类要用到的类。简单的说,就是像操作系统的path,只不过这个classpath是由Java的虚拟机来使用查找需要加载的类,而操作系统的path是由操作系统用来查找用户输入的可执行程序。同path一样,classpath也是一个环境变量,可以通过set命令来设置。Clas转载 2014-07-28 09:53:50 · 601 阅读 · 0 评论 -
hashcode 和 equals
1、首先需要明确知道的一点是:hashCode()方法和equals()方法是在Object类中就已经定义了的,所以在java中定义的任何类都会有这两个方法。原始的equals()方法用来比较两个对象的地址值,而原始的hashCode()方法用来返回其所在对象的物理地址,下面来看一下在Object中的定义:equals:public boolean equals(Object ob转载 2014-07-29 15:26:37 · 375 阅读 · 0 评论 -
序列化机制
Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及Java序列化的算法,我们用一个实例来示范序列化以后的字节是如何描述一个对象的信息的。序列化的必要性转载 2014-08-19 17:15:41 · 483 阅读 · 0 评论 -
可变类和不可变类
可变类和不可变类(Mutable and Immutable Objects)的初步定义:可变类:当你获得这个类的一个实例引用时,你可以改变这个实例的内容。不可变类:当你获得这个类的一个实例引用时,你不可以改变这个实例的内容。不可变类的实例一但创建,其内在成员变量的值就不能被修改。如何创建一个自己的不可变类:.所有成员都是private.不提供对成员的改变方法,例如:setXXXX转载 2014-07-31 15:33:49 · 537 阅读 · 0 评论 -
getClass方法
第一:不管是T1的getClass()还是Date的getClass(),他们都是非覆盖式的从Object继承来的。第二:Object的getClass()方法的释义是:返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。 /** * Returns the runtime class转载 2014-07-31 17:01:16 · 1678 阅读 · 0 评论 -
多线程概念
以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情。比如你在copy东西的时候不能rename文件名。为了提高系统的利用效率,采用批处理来批量执行任务。 现在的操作系统都是多任务操作系统,每个运行的任务就是操作系统所做的一件事情,比如你在听歌的同时还在用MSN和好友聊天。听歌和聊天就是两个任务,这个两个任务是“同时”进行的。一个任务一般对转载 2014-08-19 16:11:30 · 518 阅读 · 0 评论 -
线程交互
线程交互是比较复杂的问题,SCJP要求不很基础:给定一个场景,编写代码来恰当使用等待、通知和通知所有线程。 一、线程交互的基础知识 SCJP所要求的线程交互知识点需要从java.lang.Object的类的三个方法来学习: void notify() 唤醒在此对象监视器上等待的单个线程。 void notifyAll(转载 2014-08-19 16:40:18 · 349 阅读 · 0 评论 -
java transient简介
我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,诚然,你可以让这个类来实现Exte转载 2014-09-04 09:49:14 · 424 阅读 · 0 评论 -
properties类读取.properties 、简单XML文件、txt文件
Java中读写资源文件最重要的类是Properties,功能大致如下:1. 读写Properties文件2. 读写XML文件3. 不仅可以读写上述两类文件,还可以读写其它格式文件如txt等,只要符合key=value格式即可.注意:资源文件中含有中文时的处理方法 1. 将中文字符通过工作转成utf8编码,可以通过Java自带的nativetoas转载 2014-08-20 16:10:57 · 1153 阅读 · 0 评论 -
线程池和阻塞队列
从Java5开始,Java提供了自己的线程池。每次只执行指定数量的线程,java.util.concurrent.ThreadPoolExecutor 就是这样的线程池。以下是我的学习过程。首先是构造函数签名如下:[java] view plaincopyprint?public ThreadPoolExecutor(int core转载 2014-08-20 16:16:25 · 8269 阅读 · 4 评论 -
java日期时间处理
请使用joda time库import org.joda.time.DateTime;原创 2014-08-12 19:44:52 · 374 阅读 · 0 评论 -
commons-logging + Log4j
一 :为什么同时使用commons-logging和Log4j?为什么不仅使用其中之一? Commons-loggin的目的是为“所有的Java日志实现”提供一个统一的接口,它自身的日志功能平常弱(只有一个简单的SimpleLog?),所以一般不会单独使用它。Log4j的功能非常全面强大,是目前的首选。我发现几乎所有的Java开源项目都会用到Log4j,但我同时发现,所有用到Log4j的项转载 2014-09-03 10:13:32 · 452 阅读 · 0 评论