![](https://img-blog.csdnimg.cn/cfa86b4c82ad4e69a4fe4790784efca7.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java精修
文章平均质量分 52
Java 相关文章,心得记录
我有明珠一颗
一条通往业界大神的成功之路
展开
-
Java异常处理(总结)
Error:Java虚拟机无法解决的严重问题。JVM系统内部错误、资源耗尽。如:StackOverFlowError、OOM。这种问题无法进行异常处理。Exception:除了 Error 以外的问题。可以进行异常处理。Exception分为:编译时异常、运行时异常。运行时异常:运行时才会发生的问题,如:除数为0,空指针异常。原创 2023-11-14 13:29:52 · 188 阅读 · 0 评论 -
Java数组(知识点总结)
数组是多个相同类型数据按一定顺序排列的集合,使用一个名字命名,通过编号的方式来对这些数据进行统一管理。数组是引用数据类型,数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。数组一旦初始化,长度就确定了,数组长度一旦确定不可修改。原创 2023-11-14 13:12:06 · 107 阅读 · 0 评论 -
Java中所有的运算符,以及运算符优先级(总结)
运算法是一种特殊的符号,用于表示数据的运算、复制、比较等。原创 2023-11-13 14:35:21 · 425 阅读 · 0 评论 -
包装类、自动装箱、自动拆箱是什么?有哪些注意点?
Java中的数据类型总体上分为基本数据类型和引用数据类型。引用类型的数据可以通过对象的属性和方法来进行操作,但对于基本数据类型的数据,我们能不能像操作对象那样来操作呢?为了实现这个目标,Java为8种基本数据类型分别设计了对应的类,这就是包装类(Wrapper Classes,外覆类,数据类型类)。因为这些包装类都是引用类型,所以我们就可以方便地操作这些数据的属性和方法了。包装类的设计主要是为了配合Java 5之后出现的泛型,在泛型的使用中,基本数据类型和泛型不能混用。原创 2023-11-13 14:10:22 · 809 阅读 · 0 评论 -
IDEA中的自动代码补齐(合集)
IDEA中的自动代码补齐(合集)变量.null:if(变量 == null)变量.nn:if(变量 != null)变量.notnull:if(变量 != null)ifn:if(xx == null)inn:if(xx != null)原创 2023-11-11 21:02:26 · 509 阅读 · 0 评论 -
HJ26 字符串排序
Character.isLetter(char c) 方法可判断字符是否为字母,相当于判断(c>='a'&& c='A'&& c (char)c)可以转化为字符型;filter() 表示过滤,这里将所有大小写字母过滤出来原创 2023-11-10 14:05:34 · 128 阅读 · 0 评论 -
HJ23 删除字符串中出现次数最少的字符
将字符串中的字符通过 Stream 和 lambda表达式 加入到 HashMap 中,记录每个字符的个数;通过 Collections.min() 方法找到 map 中最小值对应的 value值;通过Stream的filter方法过滤掉数量最少的元素,mapToObj将类型转化为char,最后无换行输出。原创 2023-11-10 13:26:02 · 78 阅读 · 0 评论 -
HJ20 密码验证合格程序
str.chars() 获取字符流,通过流的 filter 方法可以简单地过滤出符合要求的字符。".*(.{3,}).*\\1.*" 表示匹配长度 >=3 的重复子字符串。这里的 .* 表示任意长度(>=0)的字符串,中间夹杂了 "(.{3,})" 和 "\\1",(.{3,})表示匹配任意长度>=3的字符串,\\1 表示匹配与前面(.{3,})一样的字符串,所以 ".*(.{3,}).*\\1.*" 表示匹配长度 >=3 的重复子字符串。原创 2023-11-09 19:24:16 · 125 阅读 · 1 评论 -
Java正则表达式(全面回忆)
找了视频教程整体学习了一遍,以下是具体的学习内容与代码,可以帮助快速全面回忆java正则表达式的内容原创 2023-11-09 19:14:21 · 243 阅读 · 0 评论 -
华为机试练习题:HJ35 蛇形矩阵
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。输入正整数N(N不大于100)输出一个N行的蛇形矩阵。原创 2023-11-09 15:21:39 · 82 阅读 · 0 评论 -
Java8.0 Stream、lambda表达式练习(持续更新中)
Java8.0 Stream、lambda表达式练习。原创 2023-11-09 00:37:05 · 333 阅读 · 0 评论 -
华为机试练习题:HJ51 输出单向链表中倒数第k个结点
Java实现:输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。原创 2023-11-08 13:23:41 · 89 阅读 · 0 评论 -
华为机试练习题:HJ9 提取不重复的整数
String类型的contains()方法,可以判断字符串中是否有子字符串。String类型的substring(int beginIndex, int endIndex) 根据指定的起始位置和终止位置,截取字符串。原创 2023-11-08 12:40:28 · 84 阅读 · 0 评论 -
华为机试练习题:HJ8 合并表记录
TreeMap 可以自动升序排序,输出符合测试用例如果结果不讲究排序,则可以用 HashMap使用Lambda表达式可简化集合的输出代码,不必再写for循环原创 2023-11-08 12:17:52 · 79 阅读 · 0 评论 -
Java 反射获取类实例的4种方式、创建对象、调用构造器、属性或方法
Java 反射获取类实例的4种方式、创建对象、调用构造器、属性或方法原创 2023-11-07 19:59:19 · 1765 阅读 · 0 评论 -
华为机试练习题:HJ15 求int型正整数在内存中存储时1的个数
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。数据范围:保证在 32 位整型数字范围内。这个数转换成2进制后,输出1的个数。原创 2023-11-07 18:15:46 · 103 阅读 · 0 评论 -
华为机试练习题:HJ14 字符串排序
Arrays.sort() 可以对各种类型的数组进行排序操作。原创 2023-11-07 18:05:39 · 118 阅读 · 0 评论 -
华为机试练习题:HJ13 句子逆序
trim() 方法:去除字符串首尾的空格;split() 方法:按照指定分隔符来把字符串且分为字符串数组,默认分隔符为空格;采用 StringBuilder 类来操作有长度变化需求的字符串,可提升效率。原创 2023-11-07 17:56:31 · 66 阅读 · 0 评论 -
Java实现字符串反转
String 类没有 reverse 方法,但是 StringBuffer 和 StringBuilder 有,直接调用即可实现。原创 2023-11-07 17:38:46 · 52 阅读 · 0 评论 -
华为机试练习题:HJ11 数字颠倒
String 一旦赋值或实例化后就不可更改,如果赋予新值将会重新开辟内存地址进行存储。而 StringBuffer 和 StringBuilder 类使用 append 和 insert 等方法改变字符串值时只是在原有对象存储的内存地址上进行连续操作,减少了资源的开销。因此:当需要进行频繁修改字符串的操作时先建立 StringBuffer 或 StringBuilder 类对象进行操作,将最后结果转化成 String 类对象返回,这样效率会高很多。原创 2023-11-07 17:27:41 · 81 阅读 · 0 评论 -
Java中的字符串、数组、集合之间的各种转换(持续更新中......)
1、String char[]:字符串与char型数组之间的转换。2、数组Array与集合List之间的相互转换。3、数组Array 和 Set 之间的相互转换。原创 2023-11-06 13:54:27 · 670 阅读 · 0 评论 -
华为机试练习题:HJ10 字符个数统计
编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次。例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3。输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。数据范围: 1≤n≤500。输入一行没有空格的字符串。原创 2023-11-06 13:27:16 · 88 阅读 · 0 评论 -
Java实现创建链表与打印链表元素(可作为模板)
1、通过数组元素值,构造一个单向链表;2、将链表元素以数组的形式打印出来,如“[1, 2, 3, 4]”原创 2023-11-05 23:40:13 · 218 阅读 · 0 评论 -
算法题:203. 移除链表元素(递归法、设置虚拟头节点法等3种方法)Java实现创建链表与解析链表
讲一下设置虚拟头节点的那个方法,设置一个新节点指向原来链表的头节点,这样我们就可以通过判断链表的当前节点的后继节点值是不是目标删除值,来判断是否删除这个后继节点了。如果不设置虚拟头节点,则需要将头节点和后面的节点分开来讨论,代码会复杂一点。原创 2023-11-05 23:33:42 · 202 阅读 · 0 评论 -
算法题:33. 搜索旋转排序数组(二分法)
题目要求必须设计一个时间复杂度为O(log n)的算法解决此问题,所以我们可以采用二分法。Step1. 先把 nums[0] 作为目标值,通过二分法找到旋转点索引;Step2. 如果旋转点索引为0,则数组本身就是升序的,否则思想上可以将数组一分为二,看做两个升序数组。Step3. 判断 target 目标值在一分为二后的数组的哪一个里面,从而确定左右端索引。(特殊情况:如果旋转点索引为0,则左右端索引就是 0 和 nums.length - 1)。Step4. 二分法查找到 target。原创 2023-11-05 11:04:05 · 173 阅读 · 0 评论 -
java的集合类中哪些可以添加不同类型数据,哪些不可以?
在Java的集合类中,有些可以添加不同类型的数据,而有些则要求元素类型必须一致。原创 2023-11-04 21:55:33 · 451 阅读 · 0 评论 -
算法题:53. 最大子数组和(动态规划)Java & Python 实现
算法题:53. 最大子数组和(动态规划)Java & Python 实现原创 2023-11-04 20:09:43 · 174 阅读 · 0 评论 -
算法题:870. 优势洗牌
解题思路:田忌赛马的思想 + 贪心法。Step1. 对两个数组进行排序。Step2. 同时遍历排序后的nums2和nums1,将num1中刚好超过nums2当前值的值放到对应的位置,而不超过nums2当前值的值放到最后面去,因为反正这些值超不过nums2,不如把num1中较小的值用来对应nums2中较大的值。原创 2023-11-04 00:15:27 · 170 阅读 · 0 评论 -
算法题:16. 最接近的三数之和(Python & Java 详解)
Step1:先对数组排序,然后设置3个指针,遍历范围为(0~数组长度减2)。位置确定时,后面的数组元素首位各放置一个指针(Step3:如果三数之和=target,则返回target值;如果三数之和target,则将往前移动。Step4:当和重合时,则将往后移动。Step5:重复 Step2 到 Step4。直到遍历完。原创 2023-11-03 20:54:57 · 156 阅读 · 0 评论 -
算法题:144.二叉树的前序遍历(递归、迭代)Java & Python部分
二叉树的前序遍历(递归、迭代)Java实现原创 2023-11-03 11:27:27 · 81 阅读 · 0 评论 -
算法:Java构建二叉树并迭代实现二叉树的前序、中序、后序遍历
算法:Java构建二叉树并迭代实现二叉树的前序、中序、后序遍历。原创 2023-11-03 11:22:56 · 439 阅读 · 0 评论 -
算法:Java构建二叉树并递归实现二叉树的前序、中序、后序遍历
Java构建二叉树并递归实现二叉树的前序、中序、后序遍历原创 2023-11-03 09:23:27 · 372 阅读 · 0 评论 -
要求写一个method方法实现:打印出 a=100, b=200
要求写一个method方法实现:打印出 a=100, b=200原创 2023-10-18 21:35:40 · 71 阅读 · 0 评论 -
2023各版本JDK下载链接
2023各版本JDK下载链接原创 2023-10-18 11:22:39 · 160 阅读 · 0 评论 -
Java 中带标签的 break 和 continue
在循环外面加:自定义的标签名+冒号,在循环内用break 或者 continue 时后面接这个标签名就可以跳出指定的循环了。原创 2023-10-18 09:52:00 · 401 阅读 · 0 评论 -
Java 求两个数的最大公约数和最小公倍数(理解原理 > 背诵)
为什么反复执行 a % b ,即可得到最大公约数?(设定前提是a > b)其中的数学原理就是:a 和 b 的最大公约数 完全等同于b 和 a%b 的最大公约数原创 2023-10-17 17:48:35 · 124 阅读 · 0 评论 -
RocketMQ的3种消息发送模式是什么?如何确保消息不丢失?
RocketMQ发送消息的三种模式分别是:同步发送、异步发送和单向发送。需要根据具体的业务需求和场景来选择合适的发送模式。例如,对于需要确保消息的可靠性和顺序性的关键业务操作,同步发送模式是一个较好的选择。而对于日志收集等高吞吐量场景,异步发送模式可以提高消息发送的效率。对于不需要关注发送结果的通知类消息,可以使用单向发送模式。原创 2023-10-14 11:24:01 · 996 阅读 · 0 评论 -
有哪些设计模式,作用是什么?
设计模式是软件开发中常用的解决问题的经验总结,它们提供了一套通用的解决方案和设计原则,用于解决特定的软件设计问题。设计模式可以提高代码的可重用性、可维护性和可扩展性,并促进了代码的可读性和灵活性。原创 2023-10-13 17:08:27 · 468 阅读 · 0 评论 -
什么是线程池?
线程池(Thread Pool)是一种线程管理机制,它维护了一组可重用的线程,用于执行多个任务。线程池在应用程序启动时创建一定数量的线程,并将它们放入池中,随后可以从池中获取线程来执行任务,执行完成后线程会返回池中等待下一个任务。线程池的主要目的是提高线程的利用率和性能,避免频繁地创建和销毁线程,从而减少系统开销。通过重用线程,可以避免创建线程的开销,减少线程上下文切换的开销,并控制并发执行的线程数量,以防止系统资源耗尽。原创 2023-10-11 14:25:36 · 80 阅读 · 0 评论 -
关于起变量名的一点看法
之前分享会上,一位同事谈到起变量名的问题:第一☝️要顾名思义,不怕你写得长一点(甚至可以用好几个单词连起来来表达词意),就怕你简简单单乱起个名字,不管是自己日后来看还是别人来维护的时候都一脸懵逼。第二☝️请参照上一点 当时只是关注了一下,日后再给变量/方法/类/项目 起名的时候就格外注意了些,关于变量名引发的问题,我直到近日才深刻体会到。 之前要维护一段前端代码,...原创 2019-04-12 12:49:17 · 268 阅读 · 0 评论