- 浏览: 50379 次
- 性别:
- 来自: 西安
最新评论
文章列表
一.
关于匿名内部类:匿名内部类一定是继承了某个父类或是实现了某个接口
补充:面试题:
匿名内部类可以继承其他类和实现接口,因为匿名类就是在抽象类和接口的基础之上发展起来的!
public abstract class Anonymous {
private String name;
private int age;
public Anonymous(){
}
public Anonymous(String name,int age){
this.name=name;
this.age=age;
}
public String getInfo(){ ...
- 2012-03-03 09:28
- 浏览 491
- 评论(0)
一.
通过Junit4.x深入分析Annotation在框架中的实际应用
在所有方法执行之前执行的方法---@BeforeClass
public static void a(){}
在所有方法执行之后执行的方法---@AfterClass
public static void b(){}
二.
限定annotation使用对象@Target
表示@Target所修饰的注解是用来修饰什么的(Class Method ......), Target与ElementType是结合使用的
import java.lang.annotation.ElementType;
...
- 2012-03-01 12:17
- 浏览 515
- 评论(0)
一.
我们定义的所有annotation都继承于java.lang.annotation.Annotation接口
二.
如果我们通过手工的方式来声明一个接口,让该接口继承Annotation接口,
那么我们定义的这个接口仅仅是一个普通的接口而已,与注解没有任何关系
public interface I extends Annotation......仅仅是定义一个接口,而不是注解
三.
java.lang.annotation.Annotation就是一个接口,它本身并不是注解
四.
介绍:Retention及RetentionPolicy与反射的结合在Annotati ...
- 2012-03-01 12:10
- 浏览 561
- 评论(0)
一.
几个常见Annotation的举例
/**
* 标示方法过时的注解
* */
public class DeprecatedTest {
@Deprecated
public void doSomething() {
System.out.println("do something");
}
public static void main(String[] args) {
DeprecatedTest test = new DeprecatedTest();
test.doSomething();
}
}
/**
* 标示子类重写父 ...
- 2012-03-01 12:06
- 浏览 428
- 评论(0)
一.
接口可以继承吗?---------------------------答:可以
二.
抽象类中的方法可以都是具体方法吗?------------答:可以
三.
抽象类可以实例化吗?-------------------------答:不可以
四.
Junit是单元测试框架
用Junit编写的类叫着测试类:来测试我们的源代码是对,还是不对
五.
Junit是如何利用反射去测试代码的
六.
Junit4.x是基于java的注解Annotation的
import junit.framework.Assert;
import org.junit.Test;
/ ...
- 2012-03-01 11:48
- 浏览 413
- 评论(0)
一.
动态代理的使用:spring中的AOP(面向方面的编程)
二.
Interface InvocationHandler(调用处理器):该接口中仅定义了一个方法
public object invoke(Object obj,Method method,Object[] args)
在实际使用时,第一个参数obj一般是指代理类,method是被代理的方法,如上例的request(),
args为该方法(被代理的方法)的参数数组。这个抽象方法在代理类中动态实现。
三.
Proxy:该类即为动态代理类。作用类似于上例中的ProxySubject,其中主要包含以下内容
...
- 2012-03-01 11:35
- 浏览 476
- 评论(0)
一.
静态的只能访问静态的.单例模式.....每个类只有一个实例
/**
* 第一种单例模式:类加载的时候就创建
* */
public class Singleton {
private static Singleton singleton=new Singleton();
private Singleton(){
}
public static Singleton getInstance(){ ...
- 2012-03-01 11:12
- 浏览 744
- 评论(0)
一.
泛型好处
作为对原有Java类型体系的扩充,使用泛型可以提高Java应用程序的类型安全、可维护性和可靠性
java中泛型的继承
1.ArrayList<Object>继承了List<Object>
2.ArrayList<String>并没有继承List<Object>
3.<?>永远等价于<? extends Object>
//泛型的继承
public class Test {
public void method1(List<Object> list) {
}
pu ...
- 2012-02-29 23:57
- 浏览 555
- 评论(0)
一.
当使用多态时,引用所要调用的方法必须存在于父类中。
二.
关于多态:
1.父类的引用可以指向子类的实例
2.接口类型的引用可以指向实现该接口的类的实例
三.
多态是运行期行为,采用的是晚绑定(late binding)
//多态是运行期行为,采用的是晚绑定(late binding)
public class PoliTest {
public ParentDemo generate() {
Random random = new Random();
int number = random.nextInt(3);// 生成随机数
switch ( ...
- 2012-02-29 23:48
- 浏览 382
- 评论(0)
//定义一个枚举类
public enum Week {
MON,TUE,WED,THU,FRI,SAT,SUN
}
//遍历枚举类中的常量
public class EnumList {
public static void main(String[] args) {
Week[] days = Week.values();// 把一个enum转换成一个enum类型的数组
for (Week d : days) {
System.out.println(d) ...
- 2012-02-29 23:36
- 浏览 540
- 评论(0)
public class Frequency {
public static void main(String[] args) {
Map<String, Integer> m = new TreeMap<String, Integer>();// TreeMap...带排序的Map
String str = "中国,美国,日本,朝鲜,中国,中国,美国,越南";
String[] strArray = str.split(",");
for (String word : strArray) {
Intege ...
- 2012-02-29 23:32
- 浏览 439
- 评论(0)
一.
for-each循环的使用
对于集合类型最多有三种的循环方式
public class ForTest {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println("------------------------------------");
// 采用新式for ...
- 2012-02-29 23:28
- 浏览 515
- 评论(0)
一:
受限制的类型参数
泛型机制允许开发者对类型参数进行附加约束(T extends List............)
public class ListGenericFoo<T extends List> {
private T[] fooArray;
public T[] getFooArray() {
return fooArray;
}
public void setFooArray(T[] fooArray) {
this.fooArray = fooArray;
}
public static void main(String[] ...
- 2012-02-29 23:09
- 浏览 566
- 评论(0)
一:
将原本确定不变的数据类型参数化
二:
作为对原有Java类型体系的扩充,使用泛型可以提高Java应用程序的类型安全、可维护性和可靠性
三:
创建集合容器时规定其允许保存的元素类型,然后由编译器负责添加元素的类型合法性检查,
再去用集合元素时则不必再进行造型处理(cast强制类型转换)
public class GenericFoo<T> {// 泛型类
private T foo;
public T getFoo() {
return foo;
}
public void setFoo(T foo) {
this.foo = foo;
}
...
- 2012-02-29 22:55
- 浏览 613
- 评论(0)
一.
HashSet底层采用HashMap实现
二.
这个HashMap的key就是放进HashSet中的对象,而value就是一个Object类型的对象,这个value我们不关心它到底是什么
三.
当调用HashSet的add方法时,实际上是向HashMap中增加了一行(key-value对),
该行的key就是向HashMap中增加的那个对象,该行的value就是一个Object类型的常量
四.
HashMap底层采用数组维护
五.
调用增加的那个对象的hashCode方法,来得到一个hashCode值,
然后根据该值计算出一个数组的下标索引(计算出数组中的一个 ...
- 2012-02-29 22:47
- 浏览 495
- 评论(0)