随笔分类 -  java basic

摘要:文件复制 阅读全文
posted @ 2019-03-06 10:11 comeluder 阅读(124) 评论(0) 推荐(0)
摘要:使用前提: 1.使用Lambda必须具有接口,且要求“接口中有且只有一个抽象方法”。 无论是JDK内置的runable,Comparator接口还是自定义的接口,只有当接口中的抽象方法存在且唯一时,才可以使用。 2.使用LambDa必须具有上下文推断。 也就是方法的参数或局部变量类型必须为对应的接口 阅读全文
posted @ 2019-03-05 10:09 comeluder 阅读(152) 评论(0) 推荐(0)
摘要:Collections在对自定义对象进行排序时,自定义类需要对compareTo()函数进行重写。 如果用sort带排序参数的方法,则自定义类可以不用写compareTo()方法。 阅读全文
posted @ 2019-03-01 15:47 comeluder 阅读(166) 评论(0) 推荐(0)
摘要:HashSet: 1.无序集合。 2.底层是一个哈希表结构,查询速速很快。 哈希表==数据 + 链表/红黑树 特点:查询速度快。 存储数据到SET中: 1.计算数据的HASH值. 2.查看有没有相同HASH值的元素。 3.如果没有就把数据存到集合中。 4.如果有相同的HASH值,用equals方法对 阅读全文
posted @ 2019-03-01 11:11 comeluder 阅读(170) 评论(0) 推荐(0)
摘要:Arraylist 通过对ArrayList的源码的查看,他的底层实现是对数组进行数据的操作,所以他的数据特点同数组。 查询快,因为他的内存区域为一个整块,可直接根据索引进行查询。 增删慢,因为每次增删都会创建一个新的数组去接收源数据,然后把源数据复制过去,销毁源数据。 LinkedList 通过对 阅读全文
posted @ 2019-03-01 10:20 comeluder 阅读(116) 评论(0) 推荐(0)
摘要:查询慢:链表中数据不是连续的,每次查询元素,都得从头开始 增删快:链表结构,增加或删除一个数据,对链表的整体结构没有影响,所以快。 阅读全文
posted @ 2019-03-01 09:16 comeluder 阅读(111) 评论(0) 推荐(0)
摘要:泛型通配符只能用于方法的参数 不能用对象定义 阅读全文
posted @ 2019-02-28 10:56 comeluder 阅读(204) 评论(0) 推荐(0)
摘要:成员内部类 局部内部类 权限修饰符 外部类:public / default 成员内部类:public protect default private 局部内部类:什么都不能用 局部内部类,如果希望访问所在方法的局部变量,这个局变量必是final的。如果这个变量不变,final可不写。 原因 1.n 阅读全文
posted @ 2019-02-27 10:24 comeluder 阅读(156) 评论(0) 推荐(0)
摘要:获得CLASS的三种方式: 1.Class.forname("全类名"):将字节码文件加载进内存,返回Class对象。 多用于配置文件,将类名放到配置文件中,读取配置文件,加载类 2.类名.class:通过类名的属性class获取 多用于参数的传递 3.对象.getClass():getClass( 阅读全文
posted @ 2019-02-19 15:46 comeluder 阅读(120) 评论(0) 推荐(0)
摘要:Fu obj = new ZI(); 访问成员变量规则 编译看左,运行看左。 obj.num; 1.直接通过对象名访问成员变量:看等号左右是谁,优先用谁,没有则往上找。 obj.getnum(); 2.间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则往上找。 子类没有覆盖重写,就用父。 阅读全文
posted @ 2019-02-15 16:25 comeluder 阅读(108) 评论(0) 推荐(0)
摘要:今天在写代码的时候,index定义的时候用了Integer,在list.remove(index)的时候,总是不成功,后来发现如果用Integer定义的时候,index不再是基础数据类型,被识别为remover(Object o),导致不成功,特此记录。 阅读全文
posted @ 2019-02-15 10:55 comeluder 阅读(88) 评论(0) 推荐(0)
摘要:抽象类使用的四点注意事项: 1.抽象类不能创建对象。 2.抽象类可以没有抽象方法,但有抽象方法一定得是抽象类。 3.抽象类可以有构造方法,是供子象创建对象时,初始化父类成员使用的。 4.抽象类的子类,必须要重写父类的所有抽象方法,否则报错。 Interface java8 特性 增加default方 阅读全文
posted @ 2019-02-15 09:35 comeluder 阅读(143) 评论(0) 推荐(0)
摘要:子类的对象在创建时,首先调用父类的构造函数,再调用子类自己的构造函数。 子类的构造函数中,有一个默认的super(),为一个无参调用,这个不显示,但会被首先调用,所有才会有父类构造函数被调用的情况。 如果父类的构造函数中有参数,则super()会变无效,子类构造函数将报错,如果想要改变这种情况,可以 阅读全文
posted @ 2019-02-14 16:44 comeluder 阅读(83) 评论(0) 推荐(0)
摘要:静态方法不能访问非静态变量的原因 静态的方法和变量在内存中先产生,非静态的后产生,在静态调用时非静态可能还未创建,所以会发生错误,故不能访问。 static的内存图 静态代码块 ` 在类中由static包起来的代码块,在创建此类的第一个对象的时候被调用,在所有构造函数前执行,且只执行一次 用处:一般 阅读全文
posted @ 2019-02-14 15:52 comeluder 阅读(103) 评论(0) 推荐(0)
摘要:==在不同数据类型中意义不同。 在基础数据类型中,表示的是数值的比较。 在引用数据类型中,表示的是内存地址值的比较。 一、基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围 128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取 阅读全文
posted @ 2019-02-14 11:02 comeluder 阅读(134) 评论(0) 推荐(0)
摘要:字符串常量池 只有直接用双引号定义的字符串,就直接在常量池中, 这样做是由于JAVA虚拟机为了节省内存,对同样的字符串重复使用造成的。 字符串改变的本质 在这个过程中,“abc”与“def”这两个字符串本身没有发生变化,只是new了一个新的字符串“abcdef”,这个字符串的地址给了变量str1 阅读全文
posted @ 2019-02-14 10:56 comeluder 阅读(152) 评论(0) 推荐(0)
摘要:int[] a = new int[5]; int[] b = new int{1,2,3}; int[] c = {4,5,6}; 以上几种定义都可以。 a叫动态初始化。 b叫静态初始化。 c叫静态初始化的省略格式。 a,b可以拆分书写,但c不能拆分书写。 int[] a; a = new int 阅读全文
posted @ 2019-02-14 10:03 comeluder 阅读(129) 评论(0) 推荐(0)