Java
文章平均质量分 69
longyulu
这个作者很懒,什么都没留下…
展开
-
volatile解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模转载 2015-09-25 19:43:52 · 1405 阅读 · 0 评论 -
Comparable和Comparator的区别
Comparable和Comparator的区别:实现了comparable接口的类,就有了排序的特性,对于该类的List,就可以调用Collections.sort(list)方法了。实现该接口,必须重新其中的compareTo方法,返回int值,根据正负和0来判断大小。如果不实现Comparable接口,那么可以用自定义的Comparator接口或者Comp原创 2013-08-12 16:01:51 · 697 阅读 · 0 评论 -
安装JDK和JRE
1. 安装jdk和jre时会往注册表里写东西run->regedit HKEY_LOCAL_MACHINE->SOFTWARE>JavaSoft ->Java Runtime Environment2. 会自动在C:\Windows\System32中添加java.exe,javaw.exe等java需要运行的命令,是从jre目录(非jdk自带的jre)复制来的原创 2012-11-06 11:05:00 · 938 阅读 · 0 评论 -
Job单线程运行的方案
防止job并行运行的几种解决方案 一、JOB State 在通过MethodInvokingJobDetailFactoryBean在运行中动态生成的Job,配置的xml文件有个concurrent属性,表示job是否可以并行运行:如果一个job的业务处理发费的时间超过了job的启动的间隔时间(repeatInterval),这个属性非常有用。如果为false,那么,在这种情况下,当前jo转载 2013-12-20 17:09:25 · 503 阅读 · 0 评论 -
当try和finally都包含return时
在Java中当try、finally语句中包含return语句时,执行情况到底是怎样的,finally中的代码是否执行,大家众说纷纭,有的说会执行,有的说不会执行,到底哪种说法正确,现在通过下面的例子加以说明: 第一种情况:try中包含return语句,finally中不包含 Java代码 public class TestTry {转载 2013-12-09 12:06:19 · 585 阅读 · 0 评论 -
用来理解 Java 编程语言的 8 个图表
很多时候,一张图比你说 1000 个字能更有效的说清楚一个问题。我们列举了 8 个关于 Java 语言的图表,或许可以让你对 Java 有着更深入的认识。1. 字符串不变性(String Immutability)下面的图表显示执行如下两行代码所发生的事:String s = "abcd"; s = s.concat("ef"); 2. equals() 和转载 2013-11-08 10:36:58 · 647 阅读 · 0 评论 -
ArrayList删除的问题
关于arraylist删除的问题package com.utils.collection;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class DeleteList { /** * @param args */ public static vo原创 2013-10-10 16:40:16 · 2521 阅读 · 0 评论 -
为何重写equals方法需要重写hashcode方法
在这篇文章中,我将告诉大家我对hashCode和equals方法的理解。我将讨论他们的默认实现,以及如何正确的重写他们。我也将使用Apache Commons提供的工具包做一个实现。 目录:hashCode()和equals()的用法重写默认实现使用Apache Commons Lang包重写hashCode()和equals()需要注意记住的事情当使用ORM的时候特别要注意的转载 2013-08-12 16:08:46 · 458 阅读 · 0 评论 -
集合类的remove(obj)和iterator的remove方法差别
java.util.ConcurrentModificationException工作中碰到个ConcurrentModificationException。代码如下:List list = ...;for(Iterator iter = list.iterator(); iter.hasNext();) { Object obj = iter.next(); ..转载 2013-07-09 15:24:46 · 3666 阅读 · 1 评论 -
遍历的时候删除List
在Java中有时候我们会需要对List里面的符合某种业务的数据进行删除,但是如果不了解里面的机制就容易掉入“陷阱”导致遗漏或者程序异常。本文以代码例子的方式进行说明该问题。1、采用索引下标遍历的方式我们看这段示例代码:view sourceprint?1public class ListRemoveTest {转载 2012-12-18 16:27:29 · 21424 阅读 · 4 评论 -
Java字符编码原理
Java开发中,常常会遇到乱码的问题,一旦遇到这种问题,常常就很扯蛋,每个人都不愿意承认是自己的代码有问题。其实编码问题并没有那么神秘,那么不可捉摸,搞清Java的编码本质过程就真相大白了。 其实,编码问题存在两个方面:JVM之内和JVM之外。 1、Java文件编译后形成class这里Java文件的编码可能有多种多样,但Java编译器会自动将这些编码按照Java文件的编码转载 2012-12-25 17:15:14 · 718 阅读 · 0 评论 -
Java中函数参数不固定的问题
如何声明一个函数,既能接收单个参数,又可以接收多个参数呢?多个参数的个数是不固定的。需要使用int ... params的方式,java会自动把他转化为数组的方式,反编译可以看出来。如果有单个参数的方法,又有不定参数的方法,现在传递单个参数,那么系统会自动调用单个参数的方法。如果有数组参数的方法,又有不定参数的方法,那么编译将发生错误。package com.lu.原创 2013-12-25 16:48:01 · 3822 阅读 · 0 评论 -
JAVA监听器原理
Java 最新的事件处理方法是基于授权事件模型事件源生成事件并将其发送至一个或多个监听器监听器简单地等待,直到它收到一个事件。一旦事件被接受,监听器将处理这些事件,然后返回。事件:在授权事件模型中,事件是一个描述事件源状态改变的对象 。 通过鼠标、键盘与 GUI 界面直接或间接交互都会生成事件。 如:按下一个按钮、通过键盘输入一个字符、选择列表框中的一项、点击一转载 2014-05-05 15:40:00 · 15261 阅读 · 1 评论 -
Servlet 3.0 详解
Servlet 3.0 新特性概览 1.Servlet、Filter、Listener无需在web.xml中进行配置,可以通过Annotation进行配置;2.模块化编程,即将各个Servlet模块化,将配置文件也分开配置。3.Servlet异步处理,应对复杂业务处理;4.异步Listener,对于异步处理的创建、完成等进行监听;5. 文件上传API转载 2014-07-31 15:43:15 · 570 阅读 · 0 评论 -
Java的Log系统介绍和切换
Java的log系统比较繁杂。在这里梳理一下。本文只涉及log系统介绍和处理log系统之间的切换。不涉及如何配置和使用。 具体的log系统Log4j:准确的说是log4j 1.x版。是之前使用最广泛的log系统。Logback:Log4j的作者另立炉灶写的新版log,比起log4j性能更好。具体的对比可以参考http://www.oschina.net/transl转载 2014-08-19 17:45:32 · 697 阅读 · 0 评论 -
servlet中文乱码问题
一、常识了解 1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码;3.getBytes() 是通过平台默认字符集进行编码; 二、中文乱码出现 在学习任何一门技术时,经常会有初学者遇到中文转载 2014-07-31 16:56:17 · 502 阅读 · 0 评论 -
serialVersionUID详解
Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。 Eclipse中The serializable class XXXXXX d转载 2014-07-30 10:34:56 · 552 阅读 · 0 评论 -
ClassLoader详解
ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources(Class,文件,来自网络的字节流等),通过ClassLoader从而将资源载入JVM 每个class都有一个reference,指向自己的Cl转载 2014-07-23 17:13:27 · 819 阅读 · 0 评论 -
System.out和System.err的区别
public class TestCodeSeg{ static { System.out.println("1"); } { System.out.println("2"); } public TestCodeSeg() { System.err.println("3"); } public static void main(String[] args) {转载 2013-08-15 15:43:19 · 1658 阅读 · 0 评论 -
Java的Exception解析
在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题。Exception处理是Java应用开发中一个非常重要的方面,也是编写强健 而稳定的Java程序的关键,这自然使它成为面试题中的常客。关于Java中Error和Exception的面试题目多是关于Exception和 Error的概念,如何处理Exception,以及 处理Exception时需要遵守的最佳实践转载 2013-11-08 10:30:58 · 793 阅读 · 0 评论 -
Annotation入门
一. 最常见的annotation@Override:用在方法之上,用来告诉别人这一个方法是改写父类的@Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在程序里的所有的元素上.@SuppressWarnings:暂时把一些警告信息消息关闭@Entity:表示该类是可持久化的类 二. 设计一个自己的Annotation转载 2014-06-29 23:20:53 · 449 阅读 · 0 评论 -
ConcurrentHashMap原理分析
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅转载 2014-05-05 15:41:49 · 686 阅读 · 0 评论 -
java的内存区域
堆区: 1.存储的全部是对象2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 栈区: 1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中 2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。 3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放转载 2012-12-14 17:17:58 · 126 阅读 · 0 评论 -
摘要
?:表示通配符;E:表示Collection里的Element(元素);第二个参数 Collection c 表示的是 Collection c中的元素只能是E及其子类的对象。而泛型E只有E的对象。还有这种形式的List声明的List 能且仅能存放Child及其父类对象.转载 2012-11-05 22:58:05 · 344 阅读 · 0 评论 -
枚举类型enum的使用
要有一个private的构造器 而且constant定义必须在最开始 package com.enums;public enum Size{ //这个必须放在最开始 SMALL("S"), MEDIUM("M"),LARGE("L"); private String abbrev; public String getAbbrev(){ return this.ab原创 2012-09-02 18:39:20 · 567 阅读 · 0 评论 -
JVM内存溢出原因分析
Jvm把内存分为两大块,一个是none heap和 heap,也就是:永久存储区(Permanent Space)和堆空间(The Heap Space)。 其中堆空间又分为新生区(Young (New) generation space)和养老区(Tenure (Old) generation space),新生区又分为伊甸园(Eden space),幸存者0区(Survivor 0 space转载 2012-08-07 16:16:51 · 3329 阅读 · 0 评论 -
velocity
java模板引擎 Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序转载 2012-06-18 21:14:17 · 90 阅读 · 0 评论 -
Java源码转载
常用代码http://topic.csdn.net/u/20110331/23/f7ae08f2-5824-4162-8949-65e618fa5e82.html?71203 植物大战僵尸http://topic.csdn.net/u/20110429/10/97d0f4aa-d388-4ddc-b269-5f94bb69e8b1.html?22362转载 2012-05-17 21:57:46 · 370 阅读 · 0 评论 -
Java面试题
1. 操作符int a = 1; a += a++ + ++a; System.out.println(a); 得到结果是5 2.汉字转换成16进制char c = '李'; String s = String.valueOf(c); byte[] bytes = s.getBytes(); System.out.原创 2012-05-16 09:29:34 · 377 阅读 · 0 评论 -
比较String地址相等
比较String值相等和地址相等 package com;public class A{ /** * @param args */ public static void main(String[] args) { String a = "hello"; String b = "he"; String c = a.substring(0, 2); Sy原创 2012-05-11 11:14:30 · 845 阅读 · 0 评论 -
java变量,初始化快,构造函数的执行顺序
这个讲得非常好,一定要好好看看,记住了。转载:http://blog.csdn.net/macheng365/article/details/6403050 对于JAVA中类的初始化是一个很基础的问题,其中的一些问题也是易被学习者所忽略。当在编写代码的时候碰到时,常被这些问题引发的错误,感觉莫名其妙。而且现在许多大公司的面试题,对于这方面的考查也是屡试不爽。不管基于什么原因,我认为,对转载 2012-03-23 12:07:09 · 731 阅读 · 0 评论 -
Java高级-对象的完全复制
java的类实例拷贝有两种形式:一种是引用拷贝。一种是值拷贝。例如:对于如下A a1 = new A(t);A a = a1;那么 a和a1都是指向的同一块内存区域。即这是一种引用拷贝。那么如何使得a完全拷贝a1的内容,也就是实现a1到a的值拷贝呢? 目前,我了解的主要有两种方法:1. 拷贝构造函数的方法。 即在A中要调价一种构造方法,如下:转载 2012-03-16 19:02:36 · 545 阅读 · 0 评论 -
Java类基础-构造函数
每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。 一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为转载 2012-03-15 15:54:45 · 68 阅读 · 0 评论 -
Java内部类
转载: java内部类详解 http://www.iteye.com/topic/442435转载 2012-09-10 15:40:44 · 341 阅读 · 0 评论 -
Java内存结构
转载 Java内存结构 1. Heap(堆):实例分配的地方,通过-Xms与-Xmx来设置 2. MethodArea(方法区域):类的信息及静态变量。 对应是Permanet Generation, 通过-XX:PermSize来设置 3. JavaStack(java的栈):虚拟机只会直接对Javastack执行两种操作:以帧为单位的压栈或出栈。通过-Xss来设置,转载 2012-09-17 15:57:56 · 370 阅读 · 0 评论 -
8种常见的Java不规范代码
http://developer.51cto.com/art/201209/357242.htm 8种常见的Java不规范代码在工作上,我最近对一个现有的Java项目代码进行了清理。完成之后,我发现了一些反复出现的不规范代码。所以,我把它们整理成了一个列表出来分享给我的同行希望能引起注意并改善代码的质量和可维护性。这个列表不区分顺序,全部来自一些代码质量检查工具,如 C转载 2012-10-10 15:09:36 · 538 阅读 · 0 评论 -
你真的不懂protected
这篇文章很重要,让你发现自己以前的理解很肤浅,是错误的。一直看的好多资料也是错误的。总结成两句话:1.同一个包中的类可以构造该类的实例并用该实例访问该类自己的protected方法。 同一个包中的类可以构造该类的子类的实例并用这个子类实例访问子类自己的通过默认继承来的和该父类一样的protected方法。2.子类可以通过构造子类自己的实例来访问子类自己的通过默认继承来的和该父类一转载 2012-09-08 22:54:23 · 435 阅读 · 0 评论 -
Java中的路径问题
“.”知识代表当前工作目录的意思,它是一个相对路径的写法,一般也就是jvm调用路径,可以通过System.getProperty("user.dir")得到。“.”当前的工作目录,即user.dir,相当于“.\\”;“..”代表user.dir上层目录,与“..\\”等价 “/”linux下表示根目录,windows下表示user.dir所在盘符的根目录,同样等价于“\\”转载 2012-03-22 14:41:00 · 14164 阅读 · 1 评论 -
Java杂
1. 使用request.getParameterMap()获得Map中的数据时,使用 Map map=request.getParameterMap(); if(map.contains(key)){ String value=(String) map.get(key); } 报[Ljava.lang.String; ca原创 2012-03-22 14:44:18 · 419 阅读 · 0 评论 -
Java 小知识点
java=语法规则 + 类库。java application jdk下单独运行 main入口java applet 编译后嵌入到html,依赖浏览器运行分布式计算,把很大很复杂的计算量分到多台计算机上;分布式存储,把文件内容存储到多台计算机上,通过网络访问,就如同访问本地文件一样。异常 方法中throw 方法体声明上 throws throw转载 2011-10-14 15:20:44 · 290 阅读 · 0 评论