
Java
bird_cat
这个作者很懒,什么都没留下…
展开
-
java虚拟机管理学习
原文地址,供学习参考 今天看了JVM的内存分配,感觉写得不错,于是画了JVM关于内存分配管理的思维导图,以后就从这个方向去分析程序的内存分配,去理解去学习。原创 2012-02-26 12:30:31 · 1125 阅读 · 1 评论 -
Vector 和 ArrayList 哪一个更好? 为什么?
Vector 和 ArrayList 比较有时用Vector更好一点,有时用ArrayList更好一点,不能准确容易的给出答案,因为要视具体情况而定,有四个主要考虑的因素:1:API2: 同步(synchronization)3:数据增长(Data growth)4:使用模式(Usage pattern)下面分别意义探讨:1:API在Ken Arnold,翻译 2013-03-28 16:24:08 · 3069 阅读 · 0 评论 -
分分钟 面试题 n! 到底考什么?
关于n!每个程序员都能分分钟搞定方法一:最简单的方法就是递推相乘:代码如下,main中加入了很多输入参数的判断: 输入必须是一个 数字 :package test.ms;public class TestJC { public static void main(String[] args) { try{ if(args == null || args.l原创 2013-03-26 14:08:36 · 1565 阅读 · 2 评论 -
递归详解很简单 , 用递归实现99乘法表
1:普通实现99乘法表太简单,是个程序员都会,实现如下:package test.ms;public class Test99 { public static void main(String[] args) { for(int i=1; i<=9;i++){ for(int j=1; j<=i; j++){ System.out.print(j+"原创 2013-03-24 11:20:52 · 18733 阅读 · 2 评论 -
servlet 多线程 不安全 资料收集
1:从一道面试题谈起:2:讨论好激烈,重点看评论:3:用例子解释java堆,java栈,本地方法栈,方法区:4:为什么递归消耗内存:栈就是主要存放 栈帧的。每执行一个方法就发生压栈动作。所以,递归的时候是会影响内存的。而你使用for 循环就不会。因为只是存在一个栈帧中。Java 内存模型:1:wiki2:http://www.cs.umd.edu/~pugh原创 2013-03-24 10:40:55 · 1112 阅读 · 0 评论 -
详解 异常(exception) 二
异常大的分类分为检测性异常(checked exception)和非检测性异常(unchecked exception)。其中检测性异常是指在编译器就能够发现的异常。非检测性异常又包括Error 和 Exception 其中Error代表了非程序内部的异常,即来自于外部的异常:比如: 硬盘破坏、系统故障等。 Exception是指程序内部的异常:一般是指程序是逻辑出了问题,或者 不正翻译 2013-04-03 19:44:57 · 6689 阅读 · 0 评论 -
运用java读取xml文件---DOM 解析
读取本地的xml文件,通过DOM进行解析,DOM解析的特点就是把整个xml文件装载入内存中,形成一颗DOM树形结构,树结构是方便遍历和和操纵。DOM解析的特性就是读取xml文件转换为 dom树形结构,通过节点进行遍历。这是W3c关于节点的概念如果xml中包含有大量的数据,由于dom一次性把xml装入内存中的特性,所以dom不适合于包含大量数据的xml解析。当包含有大量xml的时候,用S原创 2013-03-21 16:59:20 · 11025 阅读 · 0 评论 -
详解 异常exception(一)
Exceptionjava程序使用exception处理errors和别的异常事件。1:什么是异常:异常是指在程序执行期间,打乱了正常的程序指令流而出现的异常事件。exception是 excepitonal event 的 速记。当方法中出现一个错误的时候,这个方法会创建一个对象切换到正在运行的系统,这个对象 叫做异常(exception)对象,异常对象中包含了出现错误的信翻译 2013-04-02 19:16:11 · 11942 阅读 · 1 评论 -
用 公平的算法 把一个数组打乱(两种实现方式)
公平算法,打乱数组这是前几天面试的时候遇见的一道题目,看到这个题首先想到了洗牌程序:方法一:洗牌程序原理在java.util包中的Collections类中的 shuffle方法,现在手工实现以下代码如下:package test.ms;import java.util.Random;public class Redistribute2 { public static原创 2013-03-30 13:50:26 · 3651 阅读 · 0 评论 -
用静态工厂方法代替构造器
在effective java 中第一条提到用静态工厂方法代替构造器 优点如下: 1. 静态工厂方法有名字,构造器名字固定,不易于表达方法签名的意义 2. 不必在每次调用它们的时候都创建一个新对象 3. 可以返回类型的子类好文地址上面这篇文章讲的不错,作者的一系列文章都很不错,有时间可以好好研究下。其中第二条在原作者的评论中有很多人有疑问,在stackoverflow上有针对第二条的原创 2015-08-05 09:09:36 · 1457 阅读 · 0 评论 -
如何让Java类不可变
不可变类:一旦创建,状态无法改变 关于创建不可变类有很多规则,下面一一介绍这些规则: 目录定义不可变类的益处定义不可变类指南 定义不可变的益处构造简单,便于测试和使用不可变类自然是线程安全的,无需关心多线程和同步问题不需要实现clone可以延迟加载,缓存它的返回值由于不可变可以用于Map的key和Set的元素(set元素不能重复)当作为属性时,不需要深度clone 如何让类不可翻译 2015-06-09 23:20:10 · 2432 阅读 · 1 评论 -
为什么String被设计为不可变
对象不可变定义 不可变对象是指对象的状态在被初始化以后,在整个对象的生命周期内,不可改变。 如何不可变 通常情况下,在java中通过以下步骤实现不可变对于属性不提供设值方法所有的属性定义为private final类声明为final不允许继承Return deep cloned objects with copied content for all mutable fields in翻译 2015-06-05 17:58:59 · 2423 阅读 · 0 评论 -
Java7中Switch语句支持String
Java7新特性Swith语句中支持String翻译 2015-06-05 13:13:47 · 2153 阅读 · 0 评论 -
length()代替equals()检验字符串是否为空串
主题 永远也不要使用string.equals(“”)检验一个字符串是空串 最优方案 检验字符串是空串的最好方法是:用length(),这个方法返回字符串中字符的个数,如果字符的个数是0,一定是空串。public boolean isEmpty(String str){ return str.equals(""); //NEVER do this}public boo翻译 2015-06-05 11:18:04 · 3633 阅读 · 2 评论 -
任意一条查询sql转换为查询结果集对应的数目
原思路: 像括号配对一样,如果遇见select 就入栈,如果遇见from就出栈,直到栈为空,取得此时的位置,进行字符串截取。实现方法:遇见字符s并且连续后5个字符elect 就+1,遇见字符f并且连续3个字符为rom就-1,当计数器结果为0时,返回当前字符的位置,然后进行字符串截取即可: /**** * 获取截取位置 * @param selectSQL * @retur原创 2014-04-27 18:49:14 · 2412 阅读 · 0 评论 -
maven 下载 源码和javadoc命令
1:Maven命令下载源码和javadocs当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的达到这个目的:mvn dependency:sourcesmvn dependency:resolve -Dclassifier=javadoc命令使用方法:首先进入到相应的pom.x原创 2013-05-08 22:40:54 · 74943 阅读 · 8 评论 -
求 小于 n 的 质数 几种方式
质数概念质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。最小的素数是2,也是素数中唯一的偶数;其他素数都是奇数。质数有无限多个,所以不存在最大的质数。一:根据定义去求解:也是最笨的方式,效率比较低:package test.ms;public class FindPrime {原创 2013-03-30 11:14:44 · 6979 阅读 · 0 评论 -
常用的操作
1:如何复制dos命令行上面显示的信息:方法一:右键------->标记--------->然后点击回车键即完成复制(推荐使用)方法二:右键------->标记---------->然后点击左上角选择编辑-------->复制即可;原创 2012-07-03 16:55:09 · 617 阅读 · 0 评论 -
常用命令集锦
1:开机启动项:msconfig2:打开windows服务:services.msc不断总结中;原创 2012-06-13 07:02:04 · 460 阅读 · 0 评论 -
关于java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion问题的解决
在学习《struts2.0权威指南》的时候遇见了如下错误: 配置完成:出现如下错误: 严重: Exception starting filter struts2 java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion(Ljava/lang/String;)V原创 2012-05-15 14:13:07 · 14352 阅读 · 0 评论 -
js中弹出新窗口并提交需要在新窗口中显示的数据
有时候希望可以用js另开新窗口,但用window.open方法打开窗口总是被浏览器阻止,可以用下面的方法打开新窗口而不会遭到拦截1.新添加一个Form目标页" method="get" target="_blank">//隐藏域,用来放需要传递的参数注意form的target属性要设置成_blank2.提交这个Formfunction btn原创 2012-04-16 14:51:45 · 4556 阅读 · 0 评论 -
关于ckeditor的深入学习
让CKEDITOR支持JSP上传很早以前就想把CKEditor在JSP下的图片上传及浏览服务器图片的方法写下来了,不过因为教学项目中要用到,担心HEM直接套用,自己不去调查(我可是用心良苦啊),不能很好的锻炼,一直没写出来,今天项目开始测试了,他们的功能也都基本可以结束了,我也可以发我的帖了。写这个的起因是在网上一仁兄的帖子,抱怨说CKEditor不支持JSP了,感叹了转载 2012-04-15 15:37:21 · 1021 阅读 · 0 评论 -
mysql和java中时间对照以及处理方法
其实向mysql数据库里插入时间字段也是很容易的,只要设置为java.util.Date类型后,以Hibernate的Pojo类对象为例,pojo.set(new java.util.Date());就可用了。 以下附录在网上找到的相关资料: Mysql 与 java 的时间类型 MySql的时间类型有 Java中与之对应的时间类型?原创 2012-04-09 22:14:17 · 961 阅读 · 0 评论 -
J2EE
Spring1:spring mvc 1: Front Controller pattern 1:wiki 2 :done2:spring tutorial3: mk yong spring mvc4:spring mvc example 5: spring mvc sts6: spring andr原创 2013-03-07 20:50:03 · 854 阅读 · 0 评论 -
synchronized 使用 的 理解(来自一个讨论)
原帖地址:A:public void synchronized methodA(){ //......}B:private int i = 0;public void methodB(){ synchronized(i){ //.......... }}C:public void methodC(){ synchronized(thi原创 2013-03-28 18:15:46 · 1344 阅读 · 0 评论 -
learning tutorial
算法与数据结构:董的博客基础知识SOAP:version1.0lastest versionW3C tutorialwikiXML:informitxml-RPCwikiWeb Serviceswikiapplicate layerWSDLAJAXAJAX必读aj原创 2013-03-01 15:04:48 · 786 阅读 · 0 评论 -
关于List用法的一个小程序
import java.util.*;public class Deal { public static void main(String[] args) { if (args.length < 2) { System.out.println("Usage: Deal hands cards"); return;原创 2013-02-20 22:35:21 · 2870 阅读 · 0 评论 -
java和 javaw 以及 javaws的区别
java ,javaw 和 javaws 的区别:首先,所有的这些都是java的启动装置,java.exe经常使用,当使用命令行输出到window的时候,会有java.exe进程,通过任务管理器可以看到。通常 我们执行一些小的java程序的时候会有 java.exe进程在运行。javaw.exe对于我们也比较特殊,我们也能够通过任务管理器看到javaw.exe进程的运行。javaws通翻译 2013-02-20 22:21:48 · 109717 阅读 · 4 评论 -
Garbage Collection
对象一旦创建用一些内存,内存分配直到有引用使用该对象。当对象没有引用指向的时候,假设改对象不在需要,这些内存(分配给改对象的)就会被回收利用。java使用GC(Garbage collection) 自动销毁和回收对象内存空间。内存空间得到释放( de-allocate )如果程序不释放内存,当系统中没有内存可以分配的时候, 程序就会内存溢出(memory leaks),造成内存泄露翻译 2013-01-27 18:01:47 · 1199 阅读 · 0 评论 -
Stack and Heap
JVM 分配内存进入以下区域1: Heap2:Stack3:Code4:Staticjvm有效的管理分配到这几个内存区域。Code section 代码区 包含这个 字节码文件 (byte code)Stack section (栈区域) 包含 方法(methods) ,局部变量 (Local variables) 和 引用变量( reference va原创 2013-01-27 22:32:27 · 3317 阅读 · 0 评论 -
图片上传的的尺寸控制
byte skdgbytes[] = (byte[])null;skdgbytes = new byte[fileSizes];for(int j = 0; j < fileSizes; j++) skdgbytes[j] = myFile.getBinaryData(j);ByteArrayInputStream is = new ByteArrayInputStream(skdgbytes);原创 2012-10-31 17:18:55 · 652 阅读 · 0 评论 -
用静态工厂方法代替构造器
在effective java 中第一条提到用静态工厂方法代替构造器 优点如下:静态工厂方法有名字,构造器名字固定,不易于表达方法签名的意义不必在每次调用它们的时候都创建一个新对象它们可以返回原返回类型的任何子类型的对象effective java中给出了相对抽象的解释,学习编程有一点很重要,通过实践让抽象的东西具体化 这篇文章对于以上三点给出了具体解释,很到位: 好文地址上面这篇文章原创 2015-09-04 23:56:47 · 814 阅读 · 0 评论