`
文章列表

Java中动态代理类

    博客分类:
  • Java
1. Java中动态代理模式 实现动态代理必须实现InvocationHandler接口,实现invoke()方法。 生成代理使用Proxy类(代理)的newProxyInstance()方法。 Subject.java public interface Subject{ public void request(); } RealSubject.java public class RealSubject implements Subject{ public void request(){ System.out.pri ...

Java中反射reflect

    博客分类:
  • Java
1. 反射获取字节码(Class对象) Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。 这种在运行时动态的获取信息以及动态调用对象的方法的功能称为 Java 的反射机制。 1. 要想使用反射,首先需要获得待处理类或对象所对应的Class对象。获取某个类或某个对象所对应的Class对象的常用的3种方式: a) 使用Class类的静态方法forName Class.forName("java.lang.String"); b) 使用类的.class语法 S ...

Java中静态导入

    博客分类:
  • Java
1. 静态导入 1. 可以在static对象引用、常量(static或者final)和static方法上进行静态导入。 public class Common{ public static final int AGE = 10; public static void output(){ System.out.println("hello world"); } } import static org08.Common.AGE; import static org08.Common.output; public class StaticImpor ...

Java中枚举enum

    博客分类:
  • Java
1. enum用于常量 在JDK1.5之前可以使用public static final来定义常量,现在可以使用enum,而且枚举提供了比常量更多的方法。 public enum Color{ Red, White, Blue, Black } public class ColorTest{ public static void main(String[] args){ Color myColor = Color.Blue; System.out.println(myColor); System.out.pri ...

Java中可变参数

    博客分类:
  • Java
1. Java中可变参数 在Java5中提供了变长参数,允许在调用方法时传入不定长度的参数,本质上还是基于数组的实现。 1. void method(String ... args) 2. void method(String[] args) 可变参数注意事项: 1. 可变参数只能作为函数的最后一个参数 2. 一个函数最多只能有一个可变参数 可变参数:可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象。但如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散的值。 public class TestVar ...

Java中增强for循环

    博客分类:
  • Java
1. Java中增强for循环 Java中三种循环: 1. 普通的for循环遍历 for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + ","); } 2. 使用迭代器进行遍历 Iterator iterator = list.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + ","); } 3. 增强for循环 for ...

Java中Generics泛型

    博客分类:
  • Java
1. Java中Generics泛型 Generics泛型是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 import java.util.ArrayList; import java.util.List; public class ArrayListTest{ public static void main(String[] args){ List list = new ArrayList(); ...

Java中Properties类

    博客分类:
  • Java
1. Java中Properties类 通过key获取value,配置文件常用xxx.properties(属性文件) import java.util.Iterator; import java.util.Properties; import java.util.Set; public class PropertiesTest{ public static void main(String[] args){ Properties p = System.getProperties(); Set set = p.keySet(); ...

Java中Vector集合

    博客分类:
  • Java
1. Java中Vector集合 Vector类实现了一个动态数组。和ArrayList和相似,但是两者是不同的: 1) Vector是同步访问的。 2) Vector包含了许多传统的方法,这些方法不属于集合框架。 Vector主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。扩容时直接是原来的2倍。 import java.util.Vector; public class VectorTest { public static void main(String[] args) { Vector vector = ...

Java中Map集合

    博客分类:
  • Java
1. Java中Map集合 1. Map中value可以重复,key不能重复。对于重复的key值来说,后放置的值对覆盖前放置的值。 import java.util.HashMap; public class MapTest1{ public static void main(String[] args){ HashMap map = new HashMap(); map.put("a", "zhangsan"); map.put("b", "lisi& ...
1. Java中iterator迭代器 迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象,它提供了一种访问一个容器(container)对象中的各个元素,而又不必暴露该对象内部细节的方法。 通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对容器的遍历。由于创建迭代器的代价小,因此迭代器通常被称为轻量级的容器。 迭代器的使用主要有以下三个方面的注意事项: 1) 使用容器的iterator()方法返回一个Iterator,然后通过Iterator的next()方法返回第一个元素。 2) 使用Iterator()的hasNext()方法判断容器中是否还有 ...
1. Java中hashSet集合 HashSet的add()方法返回ture添加成功,返回false添加失败。HashSet是没有顺序的。 public class SetTest1 { public static void main(String[] args){ HashSet set = new HashSet(); System.out.println(set.add("a")); set.add("b"); set.add("c"); ...
1. Java中栈(stack)和队列(queue) 栈:后进先出(Last In First Out(LIFO)),由List接口实现 队列:先进先出(First In First Out(FIFO)),由Queue接口实现 栈与队列的相同点: 1. 都是线性结构。 2. 插入操作都是限定在表尾进行。 3. 都可以通过顺序结构和链式结构实现。 4. 插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。 5. 多链栈和多链队列的管理模式可以相同。 栈与队列的不同点: 1. 删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。 ...
1. ArrayList集合 ArrayList集合 add()方法,接收的是对象,不能放置原生数据类型,可以在指定的索引插入元素 get()方法 isEmpty()方法 remove()方法,将删除的值返回,如果需要可以获取到 clear()方法,清空集合 indexOf()方法,查询索引值 toArray()方法,接收数组时要强制转换成对应的类型,不能将Object[]转换为Integer[]。所以要在遍历数组的时候将Object类型转换成Ingeter类型。 1. ArrayList底层采用数组实现, ...
1. Java中冒泡排序 public class BubbleSortTest{ public static void bubbleSort(int[] array){ for(int i = 0; i < array.length - 1; i++){ for(int j = 0; j < array.length - i - 1; j++){ if(array[j] > array[j + 1]){ int temp = array[j] ...
Global site tag (gtag.js) - Google Analytics