随笔分类 - javase
摘要:注解 如何自定义注解(参照@SuppressWarnings定义) 注解声明为:@interface 内部定义成员,通常使用value表示 可以指定成员的默认值,使用default定义 如果自定义注解没有成员,表明是一个标识作用 如果注解有成员,在使用注解时,需要指明成员的值 自定义注解必须配上注解
阅读全文
摘要:枚举类 一、枚举类的使用 枚举类的理解:类的对象只有有限个,确定的,我们称此类为枚举类 当需要定义一组常量时,强烈建议使用枚举类 如果枚举类中只有一个对象,则可以作为单例模式的实现方式 二、如何定义枚举类 jdk5.0之前,自定义枚举类 jdk5.0,可以使用enum关键字定义枚举类 自定义枚举类
阅读全文
摘要:反射 获取Class的实例的四种方式 //获取Class的实例的四种方式@Testpublic void test1() throws Exception{ //方式一:调用运行时类的属性:.class Class clazz1 = Person.class; System.out.println(
阅读全文
摘要:IO流 文本文件的读操作(FileReader) /** * * 一:流的分类: * 1.操作数据单位:字节流、字符流 * 2.数据的流向:输入流、输出流 * 3.流的角色:节点流、处理流 * * 二、流的体系结构 * 抽象基类 节点流(或文件流) 缓冲流(处理流的一种) * InputStream
阅读全文
摘要:泛型 在集合中使用泛型: 集合接口或集合类在jdk5.0时都修改为带泛型的结构 在实例化集合类时,可以指明具体的泛型类型 指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例化的泛型类型,比如:add(E e) > 实例化以后:ad
阅读全文
摘要:Map概述 一、Map框架* | Map接口:双列集合,用来存储一对(key - value)一对的数据 -->高中函数: y=f(x)* * | HashMap:作为Map的主要实现类,是线程不安全的,效率高,可以存储null的key和value* | LinkedHashMap:保证在遍历map
阅读全文
摘要:HashMap的底层实现原理 jdk7中: HashMap map = new HashMap(); ,在实例化以后,底层创建了长度为16的一维数组Entry[] table map.put(key1,value1);,添加一个元素,首先,调用key1所在类的hashCode()计算key1的哈希值
阅读全文
摘要:ArrayList、LinkedList、Vector三者的异同? 相同点:三个类都是List接口的实现类,存储数据的特点相同:存储有序的、可重复的数据。 不同点:ArrayListList接口的主要实现类是线程不安全的,效率高;底层使用Object[] elementData存储。 LinkedL
阅读全文
摘要:HashSet(底层是HashMap实现) Set:存储无序的、不可重复的数据,以HashSet为例说明: HashSet作为Set接口的主要实现类,底层是数组+链表的数据结构(jdk7中);是线程不安全的;可以存储null值 1. 无序性:不等于随机性,存储的数据在底层数组中并非按照数组索
阅读全文
摘要:HashSet(底层是HashMap实现) Set:存储无序的、不可重复的数据,以HashSet为例说明: HashSet作为Set接口的主要实现类,底层是数组+链表的数据结构;是线程不安全的;可以存储null值 1. 无序性:不等于随机性,存储的数据在底层数组中并非按照数组索引的顺序添加,
阅读全文
摘要:ArrayList、LinkedList、Vector ArrayList源码分析 jdk7下: * ArrayList list = new ArrayList();//底层创建了长度为10的Object[]数组elementData * list.add(123);//elementData[0
阅读全文
摘要:集合之Collection /** * @author ccchai * @create 2022-02-22 14:11 * * * 1.数组在存储多个数据方面的缺点: * > 一旦初始化以后,其长度就不可修改 * > 数组中提供的方法非常有限,对于添加、删除、修改、插入数据等操作,非常不便,同时
阅读全文
摘要:集合的遍历之Collection 迭代器iterator接口 /** * 集合元素的遍历操作,使用迭代器iterator接口 * 1.内部的方法 hasNext() 和 next() 搭配使用 * 2.集合对象每次调用iterator()都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前
阅读全文
摘要:Comparable和Comparator的使用 public class Goods implements Comparable{ String name; double price; public Goods() { } public Goods(String name, double pr
阅读全文
摘要:JDK8的日期和时间的API public class JDK8DateTimeTest { /* LocalDate、LocalTime、LocalDateTime 的使用 说明: 1.LocalDateTime相较于LocalDate、LocalTime,使用频率要高 2.类似于Calendar
阅读全文
摘要:JDK8之前日期和时间的API /** * * JDK8之前日期和时间的API测试 * 1.System类中currentTimeMills() * 2.java.util.Date和子类java.sql.Date * 3.SimpleDateFormat * 4.Calendar * * @aut
阅读全文
摘要:String、StringBuffer、StringBuilder String、StringBuffer、StringBuilder三者的异同? String:不可变的字符序列;底层使用char[]存储 StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储 Str
阅读全文
摘要:String 与 byte[]之间的转换 public class StringTest1 { /* String 与 byte[]之间的转换 编码 String --> byte[]:调用String的getBytes() 解码 byte[] --> String:调用String的构造方法
阅读全文
摘要:String的声明 public class StringTest { @Test public void test4(){ String s1 = "helloworld"; String s2 = "world"; String s3 = "hello"+s2; System.out.prin
阅读全文
摘要:多线程 多线程的创建方式 方式一:继承于Thread类 创建一个继承于Thread类的子类 重写Thread类的run() --> 将此线程执行的操作声明在此方法中 创建Thread类的子类的对象 通过此对象调用start() 注意:1. 我们不能通过直接调用run()的方式启动线程,这样就只有一个
阅读全文
浙公网安备 33010602011771号