随笔分类 - JAVA高级复习
java高级
摘要:泛型 1、定义 集合容器类在设计阶段、声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为在这个时候,除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存、如何管理等是确定的,因此此时把元素的
阅读全文
摘要:/** * 有限制条件的通配符的使用 */ public class GenericTest9 { /** * 结论: * ? extends A : * G<? extends A> 可以作为G<A> 和 G<B>的父类,其中B是A的子类 * ? super A : * G<? super A>
阅读全文
摘要:/** * 通配符的使用 * 通配符:? */ public class GenericTest7 { /** * 类A 是 类B的父类,G<A> 和 G<B>是没有关系的,二者共同的父类是:G<?> */ @Test public void test01() { List<Integer> lis
阅读全文
摘要:public class GenericTest6 { @Test public void test01() { Object obj = null; String str = null; obj = str; Integer[] arr = null; Object[] arr2 = null;
阅读全文
摘要:public class Student<T> { private T studentT; //静态方法中不能使用泛型 // public static void show(T studentT) { // System.out.println(studentT); // } public void
阅读全文
摘要:泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系,也就是说,泛型方法所属的类是不是泛型类都没有关系 //泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系 //也就是说,泛型方法所属的类是不是泛型类都没有关系 //下述方法才为泛型方法,注意格式 public
阅读全文
摘要:1. 静态方法中不能使用泛型 2. 泛型数组的正确写法 public class Student<T> { private T studentT; //静态方法中不能使用泛型 // public static void show(T studentT) { // System.out.println
阅读全文
摘要:一、自定义泛型类 自定义泛型结构:泛型类、泛型接口、泛型方法 自定义泛型类的内部结构(方法、属性、构造器等),可以使用类的泛型 如果定义了泛型类,实例化时没有指明类的泛型,则认为泛型类型为Object类型 要求:如果定义了泛型类,在实例化时,要指明类的泛型; /** * 自定义泛型类 */ publ
阅读全文
摘要:1、JDK5.0新增的特性 2、在集合中使用泛型 总结: ① 集合接口 或 集合类在JDK5.0时都修改为带泛型的结构 ② 在实例化集合类时,可以指明具体的泛型类型 ③ 指明完以后,在集合类 或 接口中,凡是定义类 或 接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例
阅读全文
摘要:多线程的创建方式二:步骤 1、创建一个实现了Runnable接口的类 2、实现类中实现Runnable中的run()抽象方法 3、创建实现类的对象 4、将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象 5、通过Thread类的对象调用start()方法。 /** * @des
阅读全文
摘要:/** * @description:线程的优先级 * @date: 2020/7/25 15:56 * @author: winson */ public class ThreadPriority { public static void main(String[] args) { Priorit
阅读全文
摘要:/** * @description:测试线程常用方法 * @date: 2020/7/25 15:12 * @author: winson */ public class ThreadMethodTest { public static void main(String[] args) { Hel
阅读全文
摘要:/** * @description:练习:创建两个线程,一个线程遍历50内的偶数,一个线程遍历50内的奇数 * @date: 2020/7/25 11:02 * @author: winson */ public class CreateThread2 { public static void m
阅读全文
摘要:一、多线程创建 可以通过两种方式创建多线程。 方式一:继承Thread类 1、创建一个继承于Thread类的子类 2、重写Thread类的run() --> 将此线程执行的操作声明在run()中 3、创建Thread类的子类的对象 4、通过此对象调用start() /** * @descriptio
阅读全文

浙公网安备 33010602011771号