- 博客(31)
- 收藏
- 关注
原创 Java中的对象流 ObjectInputStream 和ObjectOutputStream
ObjectInputStream和ObjectOutputStream是Java中用于对象序列化和反序列化的重要工具,它们属于Java I/O库中的对象流。
2024-05-29 13:49:11
377
1
原创 Java中的转换流InputStreamReader 和 OutputStreamWriter
在Java的I/O(输入/输出)库中,InputStreamReader 和 OutputStreamWriter 是两个重要的桥接类,它们被用来在字节流(InputStream 和 OutputStream)和字符流(Reader 和 Writer)之间进行转换。
2024-05-29 13:37:14
583
原创 Java中的打印流PrintStream 和 PrintWriter
PrintStream和PrintWriter在Java中都是用于打印输出的类,但它们之间存在一些明显的区别。
2024-05-29 13:31:08
584
原创 Java中的IO流
new File(File parnet,String child)//根据父目录构建文件+子路径构建。new File(String parnet,String child)//根据父目录+子路径构建。new File(String pathname) //根据路径构建一个File对象。java的IO流共涉及40多个类,实际上非常规则,都是从如上4个抽象类基类派生的。由这4个类派生出来的子类名称都是以其父类名作为子类名后缀。InputStream抽象类是所有类字节输入流的超类。
2024-05-29 13:25:09
759
原创 Java的事件处理机制
Java事件处理是采取“委派事件模型”。当事件发生时,产生事件的对象,会把此“信息”传递给“事件的监听者”处理,这里所说的“信息”实际上就是java.awt.event事件类库里某个类所创建的对象,把它称为“事件的对象”
2024-05-10 14:48:23
373
原创 Java中的泛型
基本语法1class 类名<T、R…>{//…表示可以有多个泛型成员注意细节普通成员可以使用泛型(属性、方法)使用泛型的数组,不能初始化静态方法中不能使用类的泛型泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型)如果在创建对象时,没有指定类型,默认为Object基本语法2interface 接口名<T、R…>{注意细节接口中,静态成员也不能使用泛型(这个和泛型类规定一样)泛型接口中的类型,在继承接口或者实现接口是确定。
2024-05-09 15:48:22
479
原创 Java中TreeSet和TreeMap的底层原理
Java中的TreeSet是一个基于红黑树(Red-Black Tree)实现的NavigableSet接口的实现类。红黑树是一种自平衡的二叉查找树,能够在动态数据结构中维持排序和二分搜索的性能。TreeSet使用红黑树作为其底层数据结构。红黑树是一种特殊的二叉查找树,它满足以下五个特性:1. 每个节点要么是红色,要么是黑色。2. 根节点是黑色的。3. 每个叶节点(NIL或空节点)是黑色的。4.如果一个节点是红色的,则它的两个子节点都是黑色的。
2024-05-08 18:52:07
945
原创 Java中HashSet、LinkedHashSet和TreeSet的底层原理
Java中的HashSet的底层原理主要基于哈希表(HashMap)来实现。HashSet内部使用哈希表(实际上是一个HashMap的实例)来存储元素。哈希表由一个数组(桶)和多个链表(或红黑树,在Java 8及以后版本中,当链表长度超过某个阈值时,会转换为红黑树)组成。当向HashSet中添加元素时,首先会计算该元素的哈希码(通过调用对象的hashCode()方法)。哈希码是一个整数,用于确定元素在哈希表中的位置。使用哈希码和哈希表的大小(即桶的数量)来计算元素应该存放在哪个桶中。
2024-05-07 19:02:23
1511
1
原创 Java中ArrayList、LinkedList和Vector的底层原理
Java中的ArrayList底层原理主要涉及其数据结构、扩容机制、线程安全性以及元素存储和访问方式。ArrayList的底层数据结构是一个动态数组。这意味着ArrayList可以根据需要自动增长其容量,从而存储更多的元素。实际上,ArrayList内部维护了一个Object类型的数组,用于存储列表中的元素。当向ArrayList中添加元素时,如果当前数组的容量不足以容纳新元素,ArrayList会自动进行扩容。扩容操作涉及创建一个新的、容量更大的数组,并将原数组中的元素复制到新数组中。
2024-05-07 18:45:03
1233
1
原创 Java中ArrayList、LinkedList与Vector的区别
如果你的程序本省是线程安全的,那么使用ArrayList是更好的选择;LinkedList是一个双向链表,在添加和删除元素时具有比ArrayLiat更好的性能,但是在get与set方面若于ArrayList。当然,这些对比都是指数据量很大或者操作很频繁的情况下的对比,如果数据和运算量很小,那么对比将失去意义。ArrayList是一个可以改变大小的数组,当更多的元素加入到ArrayList中时,其大小将会动态的增长,内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组。
2024-05-05 19:46:22
615
原创 Java中List接口
2.如果有参构造器1.5倍,如果是无参构造器,第一次10,第二次开始按1.5扩。1.如果是无参,默认10,满后,就按2倍扩容;如果指定大小,则每次直接2倍扩。方式1:使用iterator。方式2:使用增强for。方式3:使用普通for。
2024-04-27 17:48:49
747
原创 Java中的集合
集合框架体系图Collection接口 特点 方法Collection接口的子接口:List实现类:ArraysList、LinkedList、VectorCollection接口的子接口:Set实现类:HashSet、LinkedHashSetMap接口 特点方法 遍历方式Map接口的实现类:HashMap、Hashtable等Collection工具类的使用。
2024-04-25 17:00:38
158
原创 Java中的日期类
使用minus方法检测查看一年前和一年后的日期。使用plus方法检测增加时间的某个部分。MonthDay类:检查重复事件。LocalDateTime类。
2024-04-24 16:36:24
224
原创 Java中的BigInteger类和BigDecimal类
在调用divide方法时,指定精度即可,BigDecimal.ROUND_CEILING。BigDecimal适合保存精度更高的浮点型。BigInteger适合保存比较大的整型。如果有无线循环小数,就会。
2024-04-23 17:28:47
328
1
原创 Java中的Math类、Arrays类和System类
获取a-b之间的整数 (int)(a + Math.random() * (b-a+1))Math.random();Math.random() * (b - a) 返回的就是 0 <= 数 <=b-a。向下取整,返回<=该参数的最大整数(转成double)Math.ceil();//返回ab的最小值。//返回ab的最大值。Math.abs();
2024-04-23 16:24:49
730
1
原创 Java中的注解
使用 Annotation 时要在其前面增加 @ 符号, 并把该 Annotation 当成一个修饰符使用。用于修饰它支持的程序元素。
2024-04-22 14:44:34
338
原创 String、StringBuffer和StringBuilder的比较、效率测试和选择
【代码】String、StringBuffer和StringBuilder的比较、效率测试和选择。
2024-04-21 19:35:32
392
1
原创 Java中StringBuffer类和StringBuilder类
java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删很多方法与String相同,但StrinBuffer是可变长度的StringBuffer是一个容器。
2024-04-21 19:32:53
833
1
原创 Java 异常 Exception
当程序中出现了某些“错误”,但该错误信息并没有在Throwable子类中描述处理,这个时候可以自己设计异常类,用于描述该错误信息。
2024-04-21 08:18:39
890
1
原创 Java枚举和使用enum实现枚举
1.将构造器私有化,防止 直接 new2.去掉setXxx方法,防止属性被修改3.在Season内部直接创建固定的对象4.优化,可以加入 final 修饰符//定义个四个对象public static final Season SPRING = new Season("春天","温暖");public static final Season SUMMER = new Season("夏天","炎热");
2024-04-20 14:06:05
281
原创 Java内部类(难点、重点)
一个类的内部又完整的嵌套了另一个类结构,被嵌套的类称为内部类,内部类的最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。
2024-04-20 08:57:07
430
原创 Java代码块
代码块又称为初始化块,属于类中的成员(是类的一部分),类似于方法,将逻辑语句封装在方法体中,通过{}包围起来。但和方法不同,没有方法名,没有返回值,没有返回参数,只有方法体,而且不用通过对象或类显示调用,而是加载类时,或创建对象时隐式调用[修饰符]{代码1.修饰符可选,要写的话只能写static2.代码块分为两类,使用static修饰的代码块叫静态代码块,没有static修饰的叫普通代码块3.逻辑语句可以为任何逻辑语句我们不管使用哪个构造器,创建对象,都会先调用代码块的内容。
2024-04-19 17:38:45
330
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人