上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 33 下一页
摘要: 不可变类 一个类的对象在通过构造方法创建后如果状态不会再被改变,那么它就是一个不可变(immutable)类。它的所有成员变量的赋值仅在构造方法中完成,不会提供任何 setter 方法供外部类去修改。 不可变类String 1)常量池的需要 字符串常量池是 Java 堆内存中一个特殊的存储区域,当创 阅读全文
posted @ 2024-07-13 23:27 _Sylvan 阅读(28) 评论(0) 推荐(0)
摘要: 变量 局部变量 在方法体内声明的变量被称为局部变量,该变量只能在该方法内使用,类中的其他方法并不知道该变量。 局部变量声明在方法、构造方法或者语句块中。 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,将会被销毁。 访问修饰符不能用于局部变量。 局部变量只在声明它的方法、构造 阅读全文
posted @ 2024-07-13 23:27 _Sylvan 阅读(35) 评论(0) 推荐(0)
摘要: 包 Java 定义了一种名字空间,称之为包:package。一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是包名.类名。使用package来解决名字冲突。 包没有父子关系。java.util和java.util.zip是不同的包,两者没有任何继承关系。 包的作用域 不用p 阅读全文
posted @ 2024-07-13 23:26 _Sylvan 阅读(24) 评论(0) 推荐(0)
摘要: 尽量不要 catch RuntimeException,比如 NullPointerException、IndexOutOfBoundsException 等等,应该用预检查的方式来规避。 尽量使用 try-with-resource 来关闭资源:禁止在 try 块中直接关闭资源,因为一旦 clos 阅读全文
posted @ 2024-07-13 23:26 _Sylvan 阅读(55) 评论(0) 推荐(0)
摘要: checked和unchecked异常 checked 异常(检查型异常)在源代码里必须显式地捕获或者抛出,否则编译器会提示你进行相应的操作;而 unchecked 异常(非检查型异常)就是所谓的运行时异常,通常是可以通过编码进行规避的,并不需要显式地捕获或者抛出。 NoClassDefFoundE 阅读全文
posted @ 2024-07-13 23:25 _Sylvan 阅读(30) 评论(0) 推荐(0)
摘要: TreeMap 由红黑树实现,可以保持元素的自然顺序,或者实现了 Comparator 接口的自定义顺序 红黑树(英语:Red–black tree)是一种自平衡的二叉查找树(Binary Search Tree),结构复杂,但却有着良好的性能,完成查找、插入和删除的时间复杂度均为 log(n)。 阅读全文
posted @ 2024-07-13 23:20 _Sylvan 阅读(31) 评论(0) 推荐(0)
摘要: 继承自 Vector,是线程安全的 在 Java 中,推荐使用 ArrayDeque 来代替 Stack,因为 ArrayDeque 是非线程安全的,性能更好 push public E push(E item) { addElement(item); return item; } 调用了 Vect 阅读全文
posted @ 2024-07-13 23:20 _Sylvan 阅读(16) 评论(0) 推荐(0)
摘要: PriorityQueue 是 Java 中的一个基于优先级堆的优先队列实现,它能够在 O(log n) 的时间复杂度内实现元素的插入和删除操作,并且能够自动维护队列中元素的优先级顺序。 // 传入比较器 PriorityQueue<String> priorityQueue = new Prior 阅读全文
posted @ 2024-07-13 23:19 _Sylvan 阅读(31) 评论(0) 推荐(0)
摘要: ![](https://img2024.cnblogs.com/blog/1900828/202407/1900828-20240713231926347-1764342020.png) 阅读全文
posted @ 2024-07-13 23:19 _Sylvan 阅读(15) 评论(0) 推荐(0)
摘要: 静态内部类Node private static class Node<E> { E item; // 双向链表 Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element 阅读全文
posted @ 2024-07-13 23:19 _Sylvan 阅读(27) 评论(0) 推荐(0)
摘要: HashMap 是无序的,LinkedHashMap 是可以维持插入顺序的 LinkedHashMap 继承了 HashMap,内部追加了双向链表,来维护元素的插入顺序 // LinkedHashMap.Entry 继承了 HashMap.Node static class Entry<K,V> e 阅读全文
posted @ 2024-07-13 23:18 _Sylvan 阅读(31) 评论(0) 推荐(0)
摘要: Java遍历List有三种方式 public static void main(String[] args) { List<String> list = new ArrayList<>(); // for循环 for (int i = 0; i < list.size(); i++) { Syste 阅读全文
posted @ 2024-07-13 23:18 _Sylvan 阅读(22) 评论(0) 推荐(0)
摘要: HashMap 的实现原理是基于哈希表的,它的底层是一个数组,数组的每个位置可能是一个链表或红黑树,也可能只是一个键值对。当添加一个键值对时,HashMap 会根据键的哈希值计算出该键对应的数组下标(索引),然后将键值对插入到对应的位置。 当通过键查找值时,HashMap 也会根据键的哈希值计算出数 阅读全文
posted @ 2024-07-13 23:17 _Sylvan 阅读(71) 评论(0) 推荐(0)
摘要: for-each删除元素报错 public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("haha"); list.add("xixi"); list.add("hehe"); f 阅读全文
posted @ 2024-07-13 23:16 _Sylvan 阅读(25) 评论(0) 推荐(0)
摘要: Comparable 实现了 Comparable 接口,重写 compareTo() 方法,就可以按照自己制定的规则将由它创建的对象进行比较 public interface Comparable<T> { // 返回值可能为负数,零或者正数,代表的意思是该对象按照排序的规则小于、等于或者大于要比 阅读全文
posted @ 2024-07-13 23:16 _Sylvan 阅读(23) 评论(0) 推荐(0)
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 33 下一页