java
zi_jun
这个作者很懒,什么都没留下…
展开
-
Java程序员应该了解的10个面向对象设计原则
面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式,而不重视面向对象的分析和设计。甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程转载 2012-03-15 11:02:54 · 475 阅读 · 1 评论 -
JAVA学习 准备篇
一、准备篇 1 什么是Java、Java2、JDK?JDK后面的1.3、1.4版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二 版)?br> ?br> JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Softw are Develop Kit)。 到目前(2003年转载 2012-03-17 15:04:22 · 549 阅读 · 0 评论 -
JSP和SERVLET区别
JSP和SERVLET到底在应用上有什么区别,很多人搞不清楚。我来胡扯几句吧。简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。 后来SUN推出了类似于ASP的镶嵌型的JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的转载 2012-03-17 16:32:51 · 546 阅读 · 0 评论 -
Map.Entry 类使用简介
你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用Map.Entry类,你可以得到在同一时间得到所有的信息。标准的Map访问方法如下:Set keys = map.keySet( );if(keys != null) {Iterator iterator = keys.iterator( );while(iterator.hasNext( )) {Object key转载 2012-03-19 20:56:11 · 435 阅读 · 0 评论 -
深入理解HashMap
/***@author annegu*@date 2009-12-02*/Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的文章很多,但到底是自己学习的总结,就发出来跟大家一起分享,一起讨论。1、hashmap的数据结构要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的转载 2012-03-19 14:48:42 · 385 阅读 · 0 评论 -
Java transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程转载 2012-03-19 14:56:58 · 405 阅读 · 0 评论 -
java中关键字volatile的作用
用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A)=========================分割线1============转载 2012-03-19 15:05:15 · 657 阅读 · 0 评论 -
java对象持久化
第1章 对象持久化什么是持久化?简单地说,持久化就是把数据同步保存到数据库或某些存储设备中。在软件的分层体系结构中,持久化层是与数据库打交道的逻辑层。在数据库中对数据的增加、删除、查找和修改操作由持久化层来处理。最常见的操作是在ASP或JSP的页面代码中混杂了很多连接数据库、操作数据库的语句,这实际上是把持久层和展现层耦合到了一起,使得代码的编写和维护都很困难,程序结构非常不清晰。对于大型应转载 2012-03-19 15:11:03 · 12444 阅读 · 2 评论 -
JAVA中extends 与implements有啥区别?
1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就转载 2012-03-19 15:53:47 · 672 阅读 · 0 评论 -
java ObjectOutputStream 的用法详解
ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。通过在流中使用文件可以实现对象的持久存储。public class ObjectOutputStreamextends OutputStreamimplements ObjectOutput, O转载 2012-03-19 15:55:01 · 9378 阅读 · 0 评论 -
java高手释疑:package 与 import
有些人写了一阵子 Java,可是对于 Java 的 package 跟 import 还是不太了解。很多人以为原始码 .java 文件中的 import 会让编译器把所 import 的程序通通写到编译好的 .class 档案中,或是认为 import 跟 C/C++ 的 #include 相似,实际上,这是错误的观念。 让我们先了解一下,Java 的 package 到底有何用处。转载 2012-03-19 20:40:11 · 485 阅读 · 0 评论 -
Java初学者---Java的学习路径(全集)
JSP2_0技术手册JSP高级编程.pdf这两本都不错 如果你没有java的基础 就看看下面Java初学者---Java的学习路径(全集) 一、 JDK (Java Development Kit)JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务转载 2012-05-02 10:22:41 · 617 阅读 · 0 评论 -
数据库连接池
百科名片数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数转载 2012-05-02 09:54:01 · 430 阅读 · 0 评论 -
int与char运算的问题...
int i = 1; char c= 'b '; c +=i; //编译通过 c = c + i; //编译错误 为什么啊? =======================================================================================对两个转载 2012-05-05 16:42:13 · 5136 阅读 · 1 评论 -
“吸血鬼数字”
public class EqualsMethod2 { public static void main(String[] arg){ String[] ar_str1,ar_str2; int sum=0; //双重循环穷举 for(int i=10;i //j=i+1避免重复 for(int j=i+1;j int i_val=i*j;转载 2012-05-05 17:19:57 · 660 阅读 · 1 评论 -
java_Random
Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完转载 2012-05-05 09:39:40 · 508 阅读 · 0 评论 -
java中关于主函数的遐想
public class DynamicArray { public staticvoid main(String[] args) { Other.main(new String[]{ "fiddle", "de", "dum" }); }}class Other { public staticvoid main(String[] args) {原创 2012-05-08 05:51:03 · 519 阅读 · 0 评论 -
java中main函数中的变量定义及其使用
错误案例一:public class exe1{static int i=10;int k=3;public static void main(String[] args){ k=5;System.out.println("i="+i);System.out.println("k="+k);}}报错为,k应该为静态;静态方法操作动态变量既是main转载 2012-05-10 11:04:15 · 8549 阅读 · 1 评论 -
Java的包访问权限(friendly)
Java默认访问权限没有任何关键字,但通常是指包访问权限(有时也表示成为friendly)。 这就意味着当前的包中的所有其他类对那个成员都有访问权限,但对于这个包之外的所有类,这个成员却是private。 由于一个编译单元(即一个文件),只能隶属于一个包,所以经由包访问权限,处于同一个编译单元中的所有类彼此之间都是自动可访问的。 Java中包访问权限允许将包内所转载 2012-05-10 17:11:11 · 7570 阅读 · 2 评论 -
java备忘001
哎,上网搜到了csdn spiniper的回复帖子。粘在这做个备份。1、一般在java代码中,如果没有提供构造函数,把java编译成class文件时,jdk编译器会自动加上一个无参的构造函数,但是当jdk检测到 java代码中提供了构造函数代码,则不会添加构造函数了。检测方式就是在父类中你只提供一个有参的构造函数,子类继承必须显示调用构造函数,否则无法通过编译。2、继承的概念只是针对类而不转载 2012-05-11 00:34:14 · 523 阅读 · 0 评论 -
JAVA_split_用法
java.lang.string.splitsplit 方法将一个字符串分割为子字符串,然后将结果作为字符串数组返回。stringObj.split([separator,[limit]])stringObj 必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。separator 可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用转载 2012-05-12 21:27:12 · 644 阅读 · 0 评论 -
Arrays的toString()方法
原文地址:【转】Arrays的toString()方法作者:alieluyaString[] arg = {"a","b","c","d"};//结果 [a, b, c, d]System.out.print(Arrays.toString(arg));JAVA源代码中,Arrays里有很多toString()方法,long、int、short、char转载 2012-05-12 21:42:55 · 17704 阅读 · 2 评论 -
对象的引用调用private类型函数的问题
public class Test1{ private void f(){ System.out.println ("private f()"); } public static void main (String[] args) { Test1 po=new Test1(); po.f(); }}疑问:为何在类Test1中,创建他本身的对象的时候,其对象原创 2012-05-11 00:15:43 · 4890 阅读 · 0 评论 -
浅谈Java中的几种随机数
众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。我们从书本上学到什么?最明显的,也是直观的方式,在Java中生成随机数只要简单的调用:java.lang.Math.random() 在所有其他语言中,生成随机数就像是使用Math工具类,如abs, pow, flo转载 2012-05-11 00:55:51 · 398 阅读 · 0 评论 -
java中stringBuilder的用法
一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。 在 StringBuilder 上的主要操作是 append 和 insert 方法,可重载这些方法,转载 2012-05-12 21:50:39 · 4683 阅读 · 0 评论 -
java 继承类 变量、静态变量、构造函数执行顺序
class C{static int prt(int i){System.out.println(i);return i;}}class A{int a=C.prt(0);static int b=C.prt(1);A(){System.out.println("constructor of A");}}class B extends A{i转载 2012-05-13 00:49:04 · 801 阅读 · 1 评论 -
String 定义对象的区别(堆与栈的不同之处)
String str = "abc";和String str = new String("abc");和char[] c = {'a','b','c'};String str=new String(c);一样吗?如果不同,为什么?1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但转载 2012-06-01 22:51:00 · 636 阅读 · 0 评论 -
java synchronized详解
一直对这些不是很懂。找了一下,看一下,供我以后再看:第一篇: Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前转载 2012-06-02 01:17:22 · 493 阅读 · 0 评论 -
关于paint(),repaint(),paintcomponent()
事件派发线程::事件派发线程是用于swing组件的。当你在main函数里创建一个窗口类的子类像JFrame,就自动创建了一个事件派发线程,如果你在 窗口里按下一个按钮或操作其它控件,就会产生事件,如果你为这个事件定义了响应代码,这些代码就会在事件派发线程里执行。我的理解是事件派发线程里有个事 件队列,事件派发线程不停地检查事件队列,如果有事件就取出来并执行相应操作。 在java里转载 2012-06-01 21:58:19 · 3785 阅读 · 1 评论 -
java中stringBuilder的用法
String对象是不可改变的。每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如,当在一个循环中将许多字符串连接在一起时,使用转载 2012-06-02 00:21:26 · 175512 阅读 · 11 评论 -
认识StringBuilder的Capacity自动增加方式
现在知道动态组字符串要用StringBuilder,它的效能会比较好,但一般我们都是直接new出来用,很少去设定它的Capacity,那么StringBuilder它的预设Capacity是多少?而在我们使用的过程中,它是怎么自动增加? 一般在我们直接New的情况下StringBuildersb=new StringBuilder(),它的预设Capacity是16,每次Append个长度为转载 2012-06-02 01:08:00 · 3520 阅读 · 0 评论 -
java 中assert的使用
一、assertion的意义和用法 J2SE 1.4在语言上提供了一个新特性,就是assertion功能,它是该版本在Java语言方面最大的革新。 从理论上来说,通过 assertion方式可以证明程序的正确性,但是这是一项相当复杂的工作,目前还没有太多的实践意义。 在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正转载 2012-06-01 22:40:40 · 606 阅读 · 0 评论 -
JAVA中各种去除空格
1. String.trim()trim()是去掉首尾空格2.str.replace(" ", ""); 去掉所有空格,包括首尾、中间String str =" hell o ";String str2 = str.replaceAll("","");System.out.println(str2);3.或者replaceAll(" +",""); 去掉所有转载 2012-06-01 20:17:54 · 6396 阅读 · 0 评论 -
String Pool
其实只要理解以下知识: String 是存放在java栈中,当创建一个String对象时(其他存放在栈中的基本类型变量类似),会去栈中查找是否有相同值的String,如果有则将变量地址赋给变量引用,没有则创建一个变量,同时将地址赋给引用。以上不适用于new 申明的变量;因为new 关键字创建的变量都是存储与堆中的。以下是转载文章:在jvm中存在着S转载 2012-06-01 22:59:04 · 1988 阅读 · 0 评论 -
jdk与jre的区别
很多程序员已经干了一段时间java了依然不明白jdk与jre的区别。JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。JRE是Java Runtime Enviroment是指Java的运行环境,是面向Ja转载 2012-05-16 22:58:36 · 453 阅读 · 0 评论 -
java下Class.forName的作用是什么,为什么要使用它
Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。 A a = (A)Class.forName("pa转载 2012-06-06 17:16:57 · 450 阅读 · 0 评论 -
如何使用javadoc规范java开发文档
以前自己写程序的时候都没有写注释的习惯,现在想到自己就快毕业了,以后写文档是很重要的事,不可缺少的事,所以要会写规范化的文档,最好的就是使用javadoc规范java开发文档。通常我们写java程序可能很少会写注释的,但是在公司里真正开发项目的时候。通常都会有严格的文档要求,我这里谈到的不是设计或者测试文档,而是javadoc。我一直认为javadoc察看起来比MSDN要方便,写起来同样不复杂转载 2012-05-18 19:05:03 · 658 阅读 · 0 评论 -
Java 最佳学习途径(二)----书籍篇
学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。 在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个转载 2012-05-21 23:59:17 · 801 阅读 · 0 评论 -
Java学习路径(三)过程篇
每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。学习Java的第一步是安装好JDK,写一个Hello World, 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:转载 2012-05-22 00:00:02 · 439 阅读 · 0 评论 -
Java web 推荐书籍
首先说明一点:java web并不难学!1 servlet Jsp学习java web首先要学的就是servlet和jsp。 servlet就是运行在服务器端的java程序,通常来接受Http请求,在MVC模式中充当Controller的角色-----接收请求,调用业务逻辑,然后转发请求。而jsp则是在servlet的基础之上产生的,用来显示页面,在刚开始学习jsp的时候,可以这样理解:j转载 2012-05-22 00:04:53 · 1334 阅读 · 0 评论