
java知识点复习
iteye_19096
这个作者很懒,什么都没留下…
展开
-
java中static之对于class
以下摘自于javaworld的一个问题的解答: 写道Q:Can a class (whether an inner or outer class) be declared static? A:In order to understand the use of the static keyword inclass declaration, we need to understand th...原创 2008-12-16 20:47:05 · 169 阅读 · 0 评论 -
java基础复习(10)--链表实现,单例模式
类的构造器也可以实现重载类的继承体系结构自动的拆装箱写程序要考虑向后的兼容性(新特性不能滥用)链表的实现(用链表实现堆栈或队列都很方便)查看jdk LinkedList源码(该实现为双向循环链表)万老师讲的是单向非循环链表:该类内部使用了一个静态内部类Entry,相当与今晚上课时讲的Node类 private static class Entry<E> ...2009-07-26 19:37:33 · 96 阅读 · 0 评论 -
java基础复习(9)--继承与多态的理解
继承与多态 继承;java中所有类的父类Object构造方法无法被继承。方法的覆盖:返回值不同无法构成方法的覆盖。访问修饰符访问级别:public>protected>default>private在覆盖父类的方法时:子类的覆写方法的修饰符不能低于父类的对应方法的访问修饰符。如:public class An...2009-07-26 19:34:30 · 95 阅读 · 0 评论 -
java基础复习(8)--数组
java中有包名的类无法引用默认包中的类。但是1.2或1.3的jdk却可以编译。新版的jdk已经禁止了这一行为,这样就强制了必须将引用类置于某个包中,形成清晰地组织结构。所以在以后的编程中最好给类指定包。Date类的大部分方法已过时。已由Calendar实现。汉诺塔 递归问题递归的条件:1,面对的问题形式类似2,化简到最后一定有解文件夹得递归访问求最大公约数:辗转相除法...2009-07-26 19:12:41 · 97 阅读 · 0 评论 -
java基础复习(7)--值传递和交换变量值(异或)
对于java中的方法参数传递是传值方式,最典型的是,java中无法实现交换两个数值的方法,但C#和C++可以。C++总所周知是通过指针可以直接访问实参。而C#使用ByRef声明就可以实现。不利用自己提供的临时变量,两个数交换:方法一:a = a+b;b = a-b;a = a-b;但是这样需要考虑到a+b溢出的问题。还有可以利用异或运算实现。方法二:void s...2009-07-26 19:10:24 · 127 阅读 · 0 评论 -
java基础复习(6)
充:java中有包名的类无法引用默认包中的类。但是1.2或1.3的jdk却可以编译。新版的jdk已经禁止了这一行为,这样就强制了必须将引用类置于某个包中,形成清晰地组织结构。所以在以后的编程中最好给类指定包。java方法遵从值传递,无法提供一个方法交换两个数值,因为在传递参数时,做的时值拷贝,对实参没效果的。方法:int j=0,k=0;j=j+k;k=j-k;...2009-07-26 16:18:14 · 86 阅读 · 0 评论 -
java基础复习(5)--考试习题
今天做练习题,一共有31道。有些题目不是很确定;比如: int i=3; int j=0; double k=3.2; if(i<k) if(i==j) System.out.println(i); else System.out.println(j); else Syste...2009-07-26 16:00:14 · 102 阅读 · 0 评论 -
java基础复习(4)
极限编程测试先行,结对编程(要求两个人水平相当。能够提高效率,不易出错,而且编程者无法偷懒哈)看过程序员上面的一篇文章,极限编程具有良好的实践性比如:测试驱动开发,持续集成,用户故事。测试驱动保证了开发人员的编码质量。持续集成保证了每天完成的任务都能够成功集成到系统中,保持项目的持续进展。而用户故事既可以用于开发人员将其实现,也可以便于测试人员在最后进行系统测试时有所依据。...2009-07-26 15:55:09 · 105 阅读 · 0 评论 -
java基础复习(3)
int型整数,a>>b,系统会先对b用32取模,按照得到的结果来做移位运算。这就避免了移33位的问题。java中只对加号做了运算符重载表达式的概念:exp -> 变量|数值|-exp|exp与exp的运算在对数值进行强制类型转换时,需要考虑转换的方向利用括号来表示运算的优先级switch语句是一种不需要求布尔值的分支语句。switch要...2009-07-26 15:51:39 · 122 阅读 · 0 评论 -
java基础复习(11)--final关键字和抽象类
final 关键字final--用于类,方法,变量前final--不可被继承,如java.lang.Math就是一个final类,不可被继承final变量--在初始化后不可改变变量值,用于常量定义。如果final变量是引用变量,则不可以改变它的引用对象,但可以改变对象的数据(属性)final方法--不可被覆盖abstract 可以使用abstract来修饰一个类或者方法...2009-07-26 19:40:33 · 87 阅读 · 0 评论 -
java基础复习(12)--类型转换,异常概念
一个对象只能有一种确切类型虚方法调用--后期绑定instance判断变量的类型 public boolean equals(Object o){ if(o instanceof Bird){ Bird bird = (Bird)o; //调用 Bird的方法 bird.fly(); }} ...2009-07-26 19:43:10 · 115 阅读 · 0 评论 -
AOP
AOP有三种织入切面的方法:其一是编译期织入,这要求使用特殊的Java编译器,AspectJ是其中的代表者;其二是类装载期织入,而这要求使用特殊的类装载器,AspectJ和AspectWerkz是其中的代表者;其三为动态代理织入,在运行期为目标类添加增强生成子类的方式,Spring AOP采用动态代理织入切面。Spring AOP使用了两种代理机制,一种是基于JDK的动态代理,另一种是基于CGLi...原创 2011-02-24 19:47:51 · 118 阅读 · 0 评论 -
code hot swap
关于code hot swap的说明(即更新部署目录的class之后,不用重启应用服务器立即生效):代码热替换是JVM本身的功能,即在调 试状态下的class更改后可以不用重启JVM,即可立即生效。大部分应用服务器在调试状态下都支持代码热替换。结合快速部署插件的同步功能和JVM本身 的代码热替换功能,我们就能够实现代码修改后,不用重启应用服务器即可立即生效的效果。但是对于配置文件的加载,一...原创 2010-08-04 22:54:43 · 119 阅读 · 0 评论 -
java基础复习(18)-对象序列化
2009年8月3日 星期一 00时03分对象序列化的深入探究关于同学的疑问,我研究了一下jdk的实现,希望对你有所帮助,研究情况如下:在我本机测试代码,查看序列化的文件guo.txt,在ultraEdit下,用本地编码看会是一串乱码,但是用十六进制查看,就可以发现规律,文件内容如下:AC ED 00 05 7A 00 00 02 FD 11 00 0A 0D 00 ...2009-08-03 01:35:30 · 104 阅读 · 0 评论 -
java基础复习(17)--字符串,集合,I/O
读取properties文件时出现乱码如果properties文件里含有中文时不可以用ResourceBundle度取,需先对properties文件进行编码转换在JDK中提供了native2ascii命令 他能够实现字符编码的转换。假设message.properties 文件在目录WEB-INF/resource目录下在命令行模式下进入WEB-INF/resou...2009-07-30 22:48:19 · 119 阅读 · 0 评论 -
java基础复习(16)-字符串数组交集,并集和差集
求两个字符串数组的交集,并集和差集的程序代码(有其他或更好的方法希望交流哈):package string;import java.util.HashMap;import java.util.HashSet;import java.util.LinkedList;import java.util.Map;import java.util.Map.Entry;impo...2009-07-29 15:47:06 · 174 阅读 · 0 评论 -
java基础复习(15)-多态问题强化
多态题目:题一: class Parent { private void method1() { System.out.println("Parent's method1()"); } public void method2() { System.out.println("...2009-07-27 13:34:31 · 146 阅读 · 0 评论 -
java基础复习(14)--java并发
并发: 冒泡排序:SimpleThreadExceptionHandler.java: package testthread;public class SimpleThreadExceptionaHandler implements Thread.UncaughtExceptionHandler{ public void uncaughtException(T...2009-07-26 20:05:04 · 100 阅读 · 0 评论 -
java基础复习(13)--java泛型
泛型:public static <T> T gMethod(List<T> list){.....}这种语法和generic classes有相当程度的不同:泛型符号<T>必须加在class名称之后,却必须加在method名称(及回传型别)之前。jdk1.5还允许将“不被method实际用到”的型别参数以符号‘?’表示,例如: pu...2009-07-26 19:53:06 · 102 阅读 · 0 评论 -
java基础复习(2)
java中的TRUE和false不可以用1和0代替java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证java程序的可移植性。32位和64位,处理器和数据总线。因为对于有些编程语言,他们定义的int在不同机器上,实际的长度有可能不一致,那样就导致了程序的移植问题。java语言整型常量的三种表示形式:十进制八进制,要求以0开头,如012十六进制,要求...2009-07-26 15:45:38 · 82 阅读 · 0 评论 -
java基础复习(1)
java虚拟机对java字节码进行优化(针对特定的平台)java字节码是与平台无关的加载代码(classLoader) ,交验代码(bytecode verifier),执行代码垃圾收集在java程序运行过程中自动进行,程序员无法精确控制和干预。java的垃圾回收机制。c++考虑到垃圾回收会导致程序运行效率变低。而现在垃圾回收的资源消耗可以忽略,java的垃圾回收不会对程序...2009-07-26 15:43:50 · 85 阅读 · 0 评论 -
深度克隆问题
曾经面对想完全克隆出一个java对象出来。前面谈ArrayList的克隆问题,我记得当时我就傻傻的自己把被克隆对象的属性一一赋值到了一个新创建的对象中去。这真的是一件体力活啊。如果对象网络很复杂,所做的工作绝不会轻松哈。当时想到把对象图保存到文件中进行序列化。现在还找到一个不错的方法。直接使用管道流,将对象写入再读出,省却了序列化的步骤。找个时间来测验一下这两种方法,谁的效率更高。先把代码贴上:...2009-04-08 23:57:24 · 100 阅读 · 0 评论 -
遭遇java.lang.UnsupportedClassVersionError
调试一个程序时,出现了UnsupportedClassVersionError。我前几天装过1.4的jdk,为了给以前做的网站做细微的调整,因为该网站的服务器上装的jdk是1.4的版本,以前开发时也配的1.4的环境。上网找到了一片阐述的还可以的文章,直接转过来了。源连接:http://read.newbooks.com.cn/info/50546.html出现java.lang.Uns...2009-04-08 23:29:07 · 132 阅读 · 0 评论 -
计时器的使用
import java.util.Timer;import java.util.TimerTask;public class reminder { Timer timer; public reminder(int seconds){ timer = new Timer(); timer.schedule(new ReminderTask(), s...原创 2008-07-12 16:10:25 · 119 阅读 · 0 评论 -
区分运行时异常和编译时异常
jianchen 写道 当你确信方法的使用者会处理你的方法抛出的异常时,可以使用编译时异常。不处理编译时异常,程序编译不能通过。 而运行时异常给了方法的调用者以选择,他可以选择处理,也可以不处理。处理的话,进行catch即可,不处理的话就什么也不做就是了。不处理运行时异常,程序编译能够通过。 在网上搜到一篇现成的文章,链接如下:原文:http://blog.youkuaiyun.com/xk...原创 2009-03-02 00:48:16 · 105 阅读 · 0 评论 -
动态代理模式使用初探
jdk文档: 写道动态代理类(以下简称为代理类)是一个实现在创建类时在运行时指定的接口列表的类,该类具有下面描述的行为。 代理接口 是代理类实现的一个接口。代理实例 是代理类的一个实例。 每个代理实例都有一个关联的调用处理程序 对象,它可以实现接口 InvocationHandler。通过其中一个代理接口的代理实例上的方法调用将被指派到实例的调用处理程序的 Invoke 方法,并传递代理实例...2009-03-02 00:35:52 · 98 阅读 · 0 评论 -
分割ip地址
想把ip地址的每个数值分割出来,比如 将127.0.0.1 分割为 127 0 0 1目前据我所知有两种办法:使用String类的split方法. String ip = new String("127.0.0.1"); String[] str = ip.split("\\."); for(int i=0 ;i<str.length;i++){ Sys...2008-12-19 10:47:03 · 998 阅读 · 0 评论 -
获得类的实际加载路径
尽管 Java 类路径看上去是个很简单的概念,但它也经常是困惑和麻烦的源泉。本文将向您展示一个简单的工具,它可以清楚地确定类装载器从您的类路径中载入了什么 Java 类。(1,000 字) 开发人员在处理 Java 类路径时经常会遇到一些尴尬:他们不总是很清楚类装载器将要载入什么类,尤其是在应用程序的类路径被大量的路径和文件充斥的情况下更是如此。在本文中,我将介绍一个工具,它可以显示被载入的类文...原创 2008-12-18 13:17:27 · 123 阅读 · 0 评论 -
Java的ClassLoader与Package机制
一直想研究下java虚拟机的类装载机制.看到一篇好文,先转过来先.以后有新的内容会继续添加. 源地址链接 写道 为了深入了解Java的ClassLoader机制,我们先来做以下实验:package java.lang;public class Test { public static void main(String[] args) { char...原创 2008-12-17 23:40:43 · 144 阅读 · 0 评论 -
读写其他进程数据
package IO;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;public class TestInOut implements Ru...原创 2008-09-05 16:20:36 · 218 阅读 · 0 评论 -
java中this的使用
在三种情况下我们不得不用this这个关键字.1.我们想通过构造方法将外部传入的参数赋值给成员变量,而构造方法的形式参数与类成员的变量名相同,这时就需要this这个关键字来区别局部变量与类变量;2.假设有一个容器类和一个部件类,在容器类的某个方法中要创建部件类的实例对象,而部件类的构造方法要接收一个代表其所在容器的参数,这时也要用到this3.构造方法是在产生对象 时被自动调用的,我们不能在...原创 2008-09-05 16:52:27 · 76 阅读 · 0 评论 -
如何让你的java程序可以在任何机器上双击运行
如何让你的java程序可以在任何机器上单击运行 在安装好了JRE的机器上的任何一个目录下都可以执行java.exe。因为它在安装时被复制到了windows的system32目录下,而后者无论如何都会在path环境变量中。这个java.exe 最终必然会访问注册表来确定真正的JRE的所在地。如果我们没有安装JRE而只是安装了jdk那么我们就需要设定环境变量,当环境变量设...原创 2008-12-11 23:11:33 · 102 阅读 · 0 评论 -
合并 java中的多进程
(1)引言: java虚拟机一般都有一个几M的内存消耗预留空间.如果并行运行多个java小应用程序的话,有可能占用了很多不必要的内存空间,造成内存资源的枯竭,比如有时候经常开启一些系统监听进程和服务进程等. (2)解决方案: 运行多个应用程序会启动多个java虚拟机进程,这就带来了一定的内存的开销,可以考虑将这些小应用程序合并到在一个java虚拟机进程中运行,就可以节省一定数量...2008-12-11 22:39:04 · 318 阅读 · 0 评论 -
Java程序多进程运行模式的实例分析
一般我们在java中运行其它类中的方法时,无论是静态调用,还是动态调用,都是在当前的进程中执行的,也就是说,只有一个java虚拟机实例在运行。而有的时候,我们需要通过java代码启动多个java子进程。这样做虽然占用了一些系统资源,但会使程序更加稳定,因为新启动的程序是在不同的虚拟机进程中运行的,如果有一个进程发生异常,并不影响其它的子进程。 在Java中我们可以使用两...原创 2008-12-11 21:27:04 · 131 阅读 · 0 评论 -
RandomAccess接口的使用
引子:RandomAccess在类Collections的shuffle()方法中的使用:(jdk源码如下)/** * Randomly permute the specified list using the specified source of * randomness. All permutations occur with equal likelihood...2008-12-11 21:02:23 · 87 阅读 · 0 评论 -
ArrayList的克隆问题
ArrayList<String> ls = new ArrayList<String>(); // xx为自定义类 ... ArrayList<String> clone = (ArrayList<String>)ls.clone(); // 此语句报如下Warning ...2008-11-29 23:57:22 · 173 阅读 · 0 评论 -
面试试题002--数字母的个数
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package myjava;import java.util.HashMap;import java.util.Iterator;import java.util.Set;public ...2008-10-27 23:32:06 · 125 阅读 · 0 评论 -
面试试题001-截取字符串
编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 package myjava;import java.io.BufferedReader;import java.io.IOException;import ...2008-10-27 23:30:33 · 144 阅读 · 0 评论 -
用分治法实现二叉查找
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package myjava;public class BinarySearch { static void find(int[] A, int low, int high, int nu...2008-10-27 23:28:50 · 280 阅读 · 0 评论 -
【转】hashCode()的作用
http://blog.youkuaiyun.com/badboy_blue/archive/2009/01/06/3720509.aspx1.hashcode是用来查找的,如果你学过数据结构就应该知道,在查找和排序这一章有 例如内存中有这样的位置 0 1 2 3 4 5 6 7 而我有个类,这个类有个字段叫ID,我要把这个类存放在以上8个位置之一,如果不用hashcode而任意存放,那么当查找时就需要到...原创 2011-05-14 13:41:31 · 104 阅读 · 0 评论