javase
DarkNight_YuJiang
1.喜欢编程,有过2年javaEE开发经验;
2.能快速了解业务,有很好的工作主动性,能够快速的融入团队
3.能够承受一定的压力,具有有良好的沟通意识、合作意识和执行能力
4.喜欢学习接触新的技术
展开
-
java.util.ConcurrentModificationException解决方案
在做一个hibernate+struts的小模块中有一个需求,需要在一个Set类型的集合中删除满足条件的对象,于是想当然地想到直接调用Set的remove(Object o)方法将指定的对象删除即可,但是出现了并发修改的异常,这使得我想起了list的集合中曾经也犯过这个错误。于是到网上查了点资料,自己也模拟了一下错误的出现,在此就总结一下,以便后期再次犯错。【模拟错误再现:】原创 2014-09-04 11:00:56 · 624 阅读 · 0 评论 -
为什么JAVA只允许单继承
一个类只能继承一个其他的类 在Java语言中禁止多重继承:一个类可以具有多个直接父类。多重继承不合法的原因是容易引发意义不明确。例如,有一个类C,如果允许它同时继承A类与B类(class C extends A,B{}),假如A、B两个类都有同一种方法fun(),如果定义: C c = new C(); 那么c.fun()应该调用哪一个父类的fun()方法?无法原创 2015-09-09 08:50:49 · 5544 阅读 · 3 评论 -
引用/对象
【示例】package com.jjyy.basic;public class BasicType { static String str = ""; public static void main(String[] args) { DemoTT001 t1 = new DemoTT001(); System.out.println(t1.i); Syste原创 2015-09-10 08:31:39 · 383 阅读 · 0 评论 -
No compiler is provided in this environment. Perhaps you are running on a JRE
出现这样的问题是Eclipse中的jdk没有配置,而是默认选择的jre.所以只要在build path将jdk关联到本地环境的jdk就可以了。原创 2015-09-12 15:09:52 · 905 阅读 · 0 评论 -
数据拆分操作策略
public void selectTempAndInsertToDetail() { List transOrderList = expressCwbOrderDataImportDAO.getTransOrderTempByKeys(); if (transOrderList == null || transOrderList.size() == 0) { return; }原创 2015-09-18 08:33:48 · 544 阅读 · 0 评论 -
打造高性能JAVA应用你需要知道的
这篇文章节选自《java performance》,对java性能比较关心的同学大概都知道这本书,性能这个东西可能是很多同学在日常写java code的时候很少去关心的,但是在我们写code的过程中确又时时离不开对程序性能的影响,小到我们使用位运算来实现算术运算,大到我们对JAVA代码的总体架构设计,性能其实离我们很近。本片文章主要提到几个点,主要是在性能领域我们比较关注的一些问题,并且是有启发性转载 2015-10-22 08:46:42 · 545 阅读 · 0 评论 -
产生一个Java的内存泄露
在纯Java中,有一个很好的方式可以产生真正的内存泄露(通过执行代码使对象不可访问但仍存在于内存中):应用产生一个长时间运行的线程(或者使用一个线程池加速泄露)。线程通过一个(可选的自定义)类加载器加载一个类。该类分配大内存(例如,new byte[1000000]),赋值给一个强引用存储在静态字段中,再将它自身的引用存储到ThreadLocal中。分配额外的内存是可选的(泄露类实例就转载 2015-10-22 09:07:48 · 559 阅读 · 0 评论 -
Map的序列的排序
package com.jjyy.basic;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.LinkedList;import java.util.List;import原创 2015-09-18 15:39:57 · 806 阅读 · 0 评论 -
Java 多线程同步的五种方法
二、为什么要线程同步因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常。举个例子,如果一个银行账户同时被两个线程操作,一个取100块,一个存钱100块。假设账户原本有0块,如果取钱线程和存钱线程同时发生,会出现什么结果呢?取钱不成功,账户余额是100.取钱成功了,账户余额是0.那到底是哪个呢?很难说清楚。因转载 2015-09-18 15:50:14 · 591 阅读 · 0 评论 -
解码OutOfMemoryError:PermGen Space
垃圾回收是Java开发人员理解得最不彻底的地方之一。他们觉得既然JVM负责垃圾回收,那么便不必担心内存的分配跟回收等问题。但是当应用变得复杂的时候,垃圾回收同样变得复杂起来,而且一旦垃圾回收变得复杂,程序的性能就会受到影响。所以,这篇文章将会帮助Java开发人员更好地理解垃圾回收机制是怎样工作的,以及如何修复Java中的“Out of Memory”问题。有两个十分普遍的导致“Out of Mem转载 2015-09-21 08:10:48 · 399 阅读 · 0 评论 -
Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。导致OutOfMemoryError异常的常见原因有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据;集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;代码中存在死循环或循环产生过多重复转载 2015-09-23 11:27:29 · 531 阅读 · 0 评论 -
String字符串的逆序
public static String reverse1(String s) { int length = s.length(); if (length <= 1) return s; String left = s.substring(0, length / 2); String right = s.substring(length / 2, length); ret转载 2015-09-23 14:35:11 · 1446 阅读 · 0 评论 -
关于 hashCode() 你需要了解的 3 件事
在 Java 中,每一个对象都有一个容易理解但是仍然有时候被遗忘或者被误用的 hashCode 方法。这里有3件事情要时刻牢记以避免常见的陷阱。一个对象的哈希码允许算法和数据结构将对象放入隔间,就象打印机类型案件中的字母类型。打印机将所有的“A”类型放到一个房间,它寻找这个“A”的时候就只需要在这个房间进行寻找。这种简单的系统让他在未排序的抽屉中寻找类型的时候更快。这也是基于哈希的集合的想转载 2015-10-30 08:30:54 · 531 阅读 · 0 评论 -
java日志的处理
推荐文章链接:http://www.importnew.com/16331.html原创 2015-10-30 08:24:52 · 2105 阅读 · 0 评论 -
equals和hashCode没有必然的联系
由于equals()和hashCode()方法都是Object中的,所以hashCode和equals方法都可以被重写的,如果重写了其中的一个,而没有重写另外一个,则两个对象A,B之间如果A.equals(B)==true ,那么A的hashCode和B的hashCode未必相等。package com.jjyy.basic;public class EqualsDemo { p原创 2015-09-09 09:15:07 · 382 阅读 · 0 评论 -
jdk版本不一致——UnsupportedClassVersionError
java.lang.UnsupportedClassVersionError: com/jjyy/jms/ProducerConsumerTest : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineC原创 2015-08-31 16:02:21 · 646 阅读 · 0 评论 -
try-catch-finally陷阱
package com.jjyy.test;import org.junit.Test;public class BasicTest { @Test public void test01() { System.out.println(test_01());//try } @Test public void test02() { System.out.println(t原创 2015-07-18 12:27:21 · 659 阅读 · 0 评论 -
常用类——时间处理总结
1、System类[java.lang.System] System类中提供了获取时间的静态方法public static long currentTimeMillis() ,该方法返回的是系统当前时间,单位是毫秒。2、Date[java.util.Date] a、分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。转载 2014-08-10 19:00:57 · 738 阅读 · 0 评论 -
java NIO
1. 基本概念IO是主存和外部设备(硬盘、终端和网络等)拷贝数据的过程。IO是操作系统的底层功能实现,底层通过I/O指令进行完成。所有语言运行时系统提供执行I/O较高级别的工具。(c的printf scanf,java的面向对象封装)2. Java 标准io回顾Java标准IO类库是io面向对象的一种抽象。基于本地方法的底层实现,我们无须关注底层实现。 InputStream\转载 2014-09-11 21:11:58 · 384 阅读 · 0 评论 -
NIO与IO的区别
nio是new io的简称,从jdk1.4就被引入了。现在的jdk已经到了1.6了,可以说不是什么新东西了。但其中的一些思想值得我来研究。这两天,我研究了下其中的套接字部分,有一些心得,在此分享。首先先分析下:为什么要nio套接字? nio的主要作用就是用来解决速度差异的。举个例子:计算机处理的速度,和用户按键盘的速度。这两者的速度相差悬殊。如果按照经典的方法:一个用户设定一个线程,专门等转载 2014-09-11 21:13:07 · 865 阅读 · 0 评论 -
谈谈对方法模板设计模式的理解
套用一下子《大话设计模式》里的模板设计模式的定义:定义一个操作中算法的骨架,而将这些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。原创 2014-09-01 21:19:34 · 565 阅读 · 0 评论 -
Eclipse常用快捷键(备忘)
1. Ctrl+左键 这个是大多数人经常用到的,用来查看变量、方法、类的定义2. Ctrl+O 查看一个类的纲要,列出其方法和成员变量。提示 :再多按一次Ctrl+O ,可以列出该类继承的方法和变量。助记 :"O"--->"Outline"--->"纲要"3. Ctrl+T 查看一个类的继承关系树,是自顶向下的,再多按一次Ctrl+T, 会换成自底向上的显示结构。转载 2014-12-29 13:34:02 · 455 阅读 · 0 评论 -
java两个ArrayList合并,并且去掉重复数据的算法
package com.lxl.test;import java.util.ArrayList;import java.util.List;/** * 两个ArrayList合并,并且去掉重复数据的算法 * 思路: * ①取出两个list中公共的元素 * ②分别从两个list中把公共的元素去掉 * ③将去掉公共元素的两个list合并就去掉了重复的数据转载 2014-12-29 13:35:43 · 3371 阅读 · 0 评论 -
DOM、JDOM、DOM4J的区别 .
dom是解析xml的底层接口之一(另一种是sax) 而jdom和dom4j则是基于底层api的更高级封装 dom是通用的,而jdom和dom4j则是面向java语言的 DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和转载 2015-03-08 22:42:51 · 527 阅读 · 0 评论 -
Arrays.asList()使用---导致java.lang.UnsupportedOperationException分析
最近在做项目的时候,遇到使用Arrays,asList()后出现java.lang.UnsupportedOperationException。贴出代码为:public static CodOrderTemplate appendReturnDetailFields(CodOrderTemplate entity,String returnDetailsFieldIds) { Stri原创 2015-03-21 00:25:03 · 991 阅读 · 0 评论 -
IOUtils
package com.jjyy.util;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class IOUtils { private IOUtils() { } public static void In2Out(InputStream in原创 2015-04-16 23:01:23 · 532 阅读 · 0 评论 -
This compilation unit is not on the build path
This compilation unit is not on the build path of a Java project 解决办法:大致是因为项目文件缺失 解决方法:找到项目根目录下的.project文件,修改,加入jdt支持,我的项目修改后如下所示 dmp_pj org.eclipse.jdt.core.javabuilder原创 2015-04-09 23:30:54 · 817 阅读 · 0 评论 -
String pool和heap
String str1 = "java"; // str1指向字符串池String str2 = "blog"; // str2指向字符串池 String s = str1 + str2; // s是指向堆中值为"javablog"的对象,+ 运算符会在堆中建立起来两个String对象,这两个对象分别是"java","blog",也就是说从字符串池中复制这两个值,然后在堆中原创 2015-08-25 14:48:29 · 430 阅读 · 0 评论 -
经典String str = new String("abc");内存分配问题
java把内存划分为两种:一种是栈(stack)内存,一种是堆(heap)内存 在函数中定义的一些基本类型的变量和对象的引用变量都在栈内存中分配,当在一段代码块定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用 堆内存用来存放由new创建的对象和数组,在堆中分配的内转载 2015-08-25 14:55:13 · 807 阅读 · 1 评论 -
HashCode和equals
1.equals如果没有重写的话是比较地址和==效果一样2.==比较的是对象的引用地址3.hashcode的比较是在集合中才会使用到,比如HashSet中的add方法: public boolean add(E e) { return map.put(e, PRESENT)==null; }public V put(K key, V value) {原创 2015-08-25 15:20:05 · 404 阅读 · 0 评论 -
Java基础题 你能对几道?
一、==符的使用首先看一段比较有意思的代码[java] view plaincopyInteger a = 1000,b=1000; Integer c = 100,d=100; public void mRun(final String name){ new Runnable() {转载 2015-12-22 08:26:26 · 2172 阅读 · 6 评论