Java 基础
文章平均质量分 74
Java 基础
Yake1965
ok
展开
-
java split
limit :数组中字符串的数量限制。如果它为零,它将返回所有匹配正则表达式的字符串。regex : 应用于字符串的正则表达式。返回值:array of strings。原创 2024-01-20 11:27:40 · 448 阅读 · 0 评论 -
List add、addAll 和 set
Java 中线性表 List 接口的插入方法有三大类,add、addAll 和 set。原创 2023-12-07 12:16:51 · 556 阅读 · 0 评论 -
Java Integer.numberOfLeadingZeros()
对 i 进行判断,因为 int 型长度为 32,所以先判断 i 是不是大于 2^16,如果大于则无符号右移 16位,继续进行计算。例:10 的二进制为:0000 0000 0000 0000 0000 0000 0000 1010。返回无符号整型 i 的最高非零位前面的 0 的个数,包括符号位。如果 i 小于 0 则返回 0,等于 0 则返回 32。判断为 true,得到 n = 15,i = 4;判断为 true,得到n = 13, i = 1;最后相当于 13 - 0 = 13。原创 2023-11-18 12:43:23 · 256 阅读 · 0 评论 -
Java TreeMap
TreeMap 是一个基于 keykey value 散列表。原创 2023-11-12 10:10:52 · 287 阅读 · 0 评论 -
Java 和 Python 中的负数取模
负数取模原创 2023-02-03 18:50:48 · 931 阅读 · 0 评论 -
0x3f3f3f3f
另一方面,由于一般的数据都不会大于 10^9,所以当把无穷大加上一个数据时,它并不会溢出(这就满足了“无穷大加一个有穷的数依然是无穷大”),事实上 0x3f3f3f3f + 0x3f3f3f3f = 2122219134,这非常大但却没有超过 32-bit int 的表示范围,所以 0x3f3f3f3f 还满足了 “无穷大加无穷大还是无穷大” 的需求。级别的(和 0x7fffffff 一个数量级),而一般场合下的数据都是小于 10。的,所以它可以作为无穷大使用而不致出现数据大于无穷大的情形。原创 2023-06-17 18:10:53 · 400 阅读 · 0 评论 -
Java 如何创建泛型对象与泛型数组
在 Java 中,是不能直接创建泛型对象和泛型数组的。原因是 Java 有类型擦除,任何泛型类型在擦除之后就变成了 Object 类型,因此创建泛型对象就相当于创建了一个 Object 类型的对象。创建 Object 类型的对象通常没有任何意义,所以直接创建泛型对象的行为被编译器禁止。泛型数组也是一样。不能创建泛型对象,意味着下面的代码是非法的。从某种意义上说,Java 实际上并没有真正实现泛型。Java 中的泛型只是基于面向对象语言共有的允许“向上引用”的语法而已。原创 2023-06-16 16:41:29 · 2201 阅读 · 0 评论 -
@Data 使用
像 lombok 这种插件,已经不仅仅是插件了,它在编译器编译时通过操作 AST(抽象语法树)改变字节码生成,变相的说它就是在改变 java 语法,它改变了你编写源码的方式,它不像 spring 的依赖注入一样是运行时的特性,而是编译时的特性。如果一个项目有非常多这样的插件,会极大的降低阅读源代码的舒适度。此时 Lombok 就对第一步骤得到的 AST 进行处理,找到 @Data 注解所在类对应的语法树(AST),然后修改该语法树(AST),增加getter 和 setter 方法定义的相应树节点。原创 2023-06-15 08:05:23 · 765 阅读 · 0 评论 -
Java Integer
Integer 类继承了 Number 实现了 ComparableInteger 类存在 java.lang 包下,使用时不需要导包Integer 类在对象中包装基本类型 int 的值。Integer 类型的对象包含单个字段,其类型为 int。原创 2023-06-12 17:40:14 · 1358 阅读 · 0 评论 -
Java8 JDK1.8
Java 8 的特性原创 2023-06-08 06:59:31 · 960 阅读 · 0 评论 -
Generic Array Creation,泛型数组创建时提示出错。
在 Java中,。当两者在一起的时候,就会出现问题。原创 2023-06-03 18:06:36 · 696 阅读 · 0 评论 -
同余定理【数论】
若 a 和 b 用 m 相除留下相同的余数 r,则 a = q1 m + r, b = q2 m + r, q1 和 q2 为某两个整数,由此的 a - b = (q1 m + r) - (q2 m - r) = m (q1 - q2),根据整除定义,有 m | (a - b),由同余式定义得出结论:a ≡ b (mod m)【定义】 设 m 是大于 1 的正整数,a、b 是整数,如果 m | (a - b),则称 a 与 b 关于模 m 同余,记作 a ≡ b (mod m)。原创 2023-04-19 09:08:08 · 1808 阅读 · 0 评论 -
java 洗牌 shuffle
如果使用的是数组,可以先把数组转为 list,然后再调用上面的方法。如果打乱的是 list,可以使用下面这个方法。原创 2023-04-19 13:07:31 · 279 阅读 · 0 评论 -
Java 中 switch 的用法
【代码】Java 中 switch 的四种用法。原创 2023-04-08 16:20:15 · 6603 阅读 · 0 评论 -
Java 泛型 E、T、K、V
Java 泛型中的标记符含义E - Element (在集合中使用,因为集合中存放的是元素)T - Type(Java 类)K - Key(键)V - Value(值)N - Number(数值类型)? - 表示不确定的 java 类型S、U、V - 2nd、3rd、4th typesObject 跟这些标记符代表的 java 类型有啥区别呢?Object 是所有类的根类,任何类的对象都可以设置给该 Object 引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型 T、 E等这原创 2021-12-14 20:55:47 · 182 阅读 · 0 评论 -
Java import
Java 包(package):Java 系统包和自定义包在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也是一件很麻烦的事,尤其是一些同名问题的发生。有时,开发人员还可能需要将处理同一方面的问题的类放在同一个目录下,以便于管理。Java 为了解决上述问题,提供了包机制。系统包包允许将类组合成较小的单元(类似文件夹),它基本上隐藏了类,并避免了名称上的冲突。包允许在更广泛的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类。包的原创 2022-01-19 18:22:06 · 631 阅读 · 0 评论 -
Java 流程控制语句
Java 流程控制语句Java语句:Java 空语句、复合语句和表达式语句将顺序结构中的语句分为表达式语句、空语句和复合语句 3 大类。在 Java 中,语句是最小的组成单位,每个语句必须使用分号作为结束符。将一个语句放在多行中:String str = "Apple " + "Banner " + "Pear " + " Orange";由于 Java 使用分号作为语句的结束符,所以上面的 3 行代码会被 Java 认为是一条语句,因为这 3 行中只有一个分号。将多个语句放在一行来编写原创 2022-01-23 22:51:24 · 201 阅读 · 0 评论 -
Java Number & Math & Character
Java Number & Math 类整数类型:byte,short,int,long浮点数类型:float,double在开发过程中,需要的对象不是内置数据类型时。Java 语言为每一个内置数据类型提供了对应的包装类。所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。包装类基本数据类型BooleanbooleanBytebyteShortshortIntegerint原创 2021-12-09 19:33:08 · 461 阅读 · 0 评论 -
Java int 和 Integer 互转原理
Java int 和 Integer 互转原创 2021-12-28 17:17:41 · 5491 阅读 · 0 评论 -
Java Lambda
一、Lambda(参数列表) -> { // 执行的功能 }() -> { // 语句 } // 无参数、无返回值(x) -> { // 语句 } // 有一个参数,无返回值 x -> { // 语句 } // 当只有一个参数时,小括号可以不写。(x,y) -> x + y; // 有两个参数或多个参数,有返回值,只有一条语句时,{} 和 return 都可以省略。参数列表的数据类型可以省略,JVM 编译器通过上下文推断。 void test(){ (x,原创 2021-12-13 17:33:27 · 345 阅读 · 0 评论 -
Java 自定义排序
java sortComparableComparable 可以认为是一个内比较器,实现了 Comparable 接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了 Comparable 接口的类如何比较,则依赖 compareTo 方法的实现,compareTo 方法也被称为自然比较方法。如果开发者 add 进入一个 Collection 的对象想要 Collections 的 sort 方法帮你自动进行排序的话,那么这个对象必须实现 Comparable 接口。compareT原创 2021-12-12 18:57:04 · 16171 阅读 · 2 评论 -
Java random
模块 java.base 软件包 java.utilClass Randomjava.lang.Object java.util.Random实现的所有接口 Serializable该类的实例用于生成伪随机数流。 该类使用 48 位种子,使用线性同余公式进行修改。如果使用相同的种子创建了两个 Random 实例,并且对每个实例都进行了相同的方法调用序列,则它们将生成并返回相同的数字序列。 为了保证此属性,为类 Random 指定了特定算法。 为了Java代码的绝对可移植性,Java 实现必原创 2022-01-16 16:22:15 · 153 阅读 · 0 评论 -
JAVA8中Stream的用法之最大、最小、平均值、分组、求和、遍历、过滤、排序
https://blog.csdn.net/yihuaiyan/article/details/101050144?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-101050144-blog-118086169.pc_relevant_aa_2&depth_1-utm_source=distribute.pc_relevant_t0原创 2022-07-21 19:51:58 · 467 阅读 · 0 评论 -
Java Array
Java 数组Java 语言中提供的数组是用来存储固定大小的同类型元素。声明数组变量首先必须声明数组变量,才能在程序中使用数组。dataType[] arrayRefVar; // 首选的方法dataType arrayRefVar[]; // 效果相同,但不是首选方法创建数组Java 语言使用 new 操作符来创建数组:arrayRefVar = new dataType[arraySize];使用 dataType[arraySize] 创建了一个数组;把新创建的数组的引原创 2021-12-05 12:34:38 · 770 阅读 · 0 评论 -
Java System.arraycopy
Java System.arraycopyJava System.arraycopy() 是一种本地静态方法,用于将元素从源数组复制到目标数组。方法签名为:public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);src: the source array.srcPos: source array index from where copy will star原创 2022-01-01 11:15:56 · 613 阅读 · 0 评论 -
Java String
Java String 类创建字符串String str = "Java";在代码中遇到字符串常量时,这里的值是 “Java”,编译器会使用该值创建一个 String 对象。和其它对象一样,可以使用关键字和构造方法来创建 String 对象。用构造函数创建字符串:String str2 = new String(“Java”);// String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上。String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串,比如原创 2021-12-09 20:02:42 · 329 阅读 · 0 评论 -
Java StringBuffer & StringBuilder
Java StringBuffer 和 StringBuilder 类String 对象是不可变的,StringBuffer 和 StringBuilder 是可变的字符序列。StringBuilderStringBuilder 不保证同步,比 StringBuffer 更快。StringBuilder上的主要操作是 append 和 insert 方法,它们被重载以便接受任何类型的数据转换为字符串,追加或插入到字符串构建器中。构造方法StringBuilder() // 初始容量为16个字原创 2021-12-12 08:44:17 · 315 阅读 · 0 评论 -
Java binarySearch
Java binarySearch原创 2022-07-12 12:58:18 · 284 阅读 · 0 评论 -
Java ArrayList
List在集合类中,List 是最基础的一种集合:它是一种有序列表。List 的行为和数组几乎完全相同:List 内部按照放入元素的先后顺序存放,每个元素都可以通过索引确定自己的位置,List的索引和数组一样,从0开始。数组和 List 类似,也是有序结构,如果我们使用数组,在添加和删除元素的时候,会非常不方便。因此,在实际应用中,需要增删元素的有序列表,我们使用最多的是ArrayList。实际上,ArrayList 在内部使用了数组来存储所有元素。当添加一个元素并指定索引到 ArrayList原创 2021-12-07 10:46:37 · 1022 阅读 · 0 评论 -
Java LinkedList
模块 java.base 软件包 java.utilClass LinkedListjava.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.AbstractSequentialList<E> java.util.LinkedList<E>参数类型E - 此集合中保留的元素类型实现的所有接口Serializabl原创 2021-12-25 12:47:31 · 227 阅读 · 0 评论 -
ArrayList 反转
反转 ArrayList1、listIterator 2、Collections.reverse(aList);3、递归原创 2022-01-02 19:41:09 · 2064 阅读 · 0 评论 -
Java Class Collections
模块 java.base 软件包 java.utilClass Collectionsjava.lang.Object java.util.Collections public class Collections xtends Object此类仅包含对集合进行操作或返回集合的静态方法。如果提供给它们的集合或类对象为 null,则此类的方法都抛出 NullPointerException 。Collections.sort()对集合中的元素进行升序排序。这要求列表中的所有元素都必须实现原创 2022-02-13 18:01:33 · 297 阅读 · 0 评论 -
Java Collection 的三种遍历方式
Collection 的遍历方式迭代器 Iteratorforeach(增强 for 循环)JDK 1.8 开始之后的新技术 Lambda 表达式Iterator 迭代器JDK 专门提供了一个接口 java.util.Iterator 用于遍历集合中的所有元素。public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合中的元素的。Iterator 接口的常用方法如下:public E next():返回迭代的下一个元素。public boolean ha原创 2022-01-17 20:26:41 · 372 阅读 · 0 评论 -
Java Collection
Java Collection集合类也被称为容器类。Java 所有的集合类都位于 java.util 包下,提供了一个表示和操作对象集合的统一构架,包含大量集合接口,以及这些接口的实现类和操作它们的算法。集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象,而集合里只能保存对象。Java 集合类型分为 Collection 和 Map,它们是 Java 集合的根接口,这两个接口又包含了一些子接口或实现类。Iterator 接口 集合的输出接口,主要用于遍历输出(即迭代访问)Collect原创 2021-12-29 20:08:52 · 553 阅读 · 0 评论 -
Java Queue
模块 java.base软件包 java.utilInterface Queue参数类型E - 此队列中保留的元素类型All Superinterfaces:Collection , IterableAll Known Subinterfaces:BlockingDeque , BlockingQueue , Deque , TransferQueue所有已知实现类:AbstractQueue , ArrayBlockingQueue , ArrayDeque , Concurren原创 2022-05-08 20:25:32 · 520 阅读 · 0 评论 -
Java Deque
接口 Deque模块 java.base软件包 java.utilInterface Deque参数类型E - 此双端队列中保留的元素类型All Superinterfaces:Collection , Iterable , QueueAll Known Subinterfaces:BlockingDeque所有已知实现类:ArrayDeque , ConcurrentLinkedDeque , LinkedBlockingDeque , LinkedListpublic int原创 2022-01-12 17:45:06 · 2622 阅读 · 0 评论 -
Java PriorityQueue
Class PriorityQueueModule java.basePackage java.utilClass PriorityQueuejava.lang.Object java.util.AbstractCollection<E> java.util.AbstractQueue<E> java.util.PriorityQueue<E>Type Parameters:E - the type of elements held in thi原创 2021-12-14 20:15:24 · 415 阅读 · 0 评论 -
Java HashMap
Java HashMap模块 java.base 软件包 java.utilClass HashMap<K,V>java.lang.Object java.util.AbstractMap<K,V> java.util.HashMap<K,V>参数类型K - 此映射维护的密钥类型V - 映射值的类型实现的所有接口Serializable , Cloneable , Map<K,V>HashMap 是一个散列表,它存储的原创 2021-12-25 18:05:36 · 2427 阅读 · 0 评论 -
Java Map.of
Java Map.of 代码示例示例1: dumpJavaOptionsimport java.util.Map; @Testvoid dumpJavaOptions() { List<String> expectedLines = List.of( "java", "--dry-run", "--patch-module", " com.greetings=xxx",原创 2022-02-03 19:05:43 · 7120 阅读 · 0 评论 -
map.computeIfAbsent
map.computeIfabsent原创 2021-12-28 11:12:11 · 8892 阅读 · 0 评论