Java程序员进阶之路
文章平均质量分 90
CSDN 头牌作者「沉默王二」作品,总榜 11 位,原价 59.9,现价 19.9,还等什么,快抢!目前已经 44 篇!
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
沉默王二
这个作者很懒,什么都没留下…
展开
-
写出Windows操作系统内核的程序员,70多岁,还去办公室敲代码
我理解的意思就是,敲代码之前要先想清楚,比如说脑海中有一副蓝图,或者敲完代码自己要先做一次 review,现在有了 AI 的帮助,那最好让 AI 再检测一遍,这样就不会引入 bug,也就不用解决 bug。2006 年,当微软开始向云端进军的时候,亟需构建一个基于云端的操作系统,于是又招募了即将退休的卡特勒,部门负责人 Amitabh Srivastava 用一句“按照卡特勒的意思就是,现如今的 Windows 操作系统版本,不管界面怎么变,内核代码都可以追溯到 1993 年的 Windows NT 分支。原创 2024-10-25 12:00:35 · 99 阅读 · 0 评论 -
深信服今年的薪资。。
将数字字符串的第一位移动到最后一位,意味着每次将字符串首位的字符移到末尾,依次得到不同的字符串组合。第一次轮询结果 “31322”第二次轮询结果 “13223”第三次轮询结果 “32231”第四次轮询结果 “22313”从这些轮询结果中可以看出,字典序最大的字符串是 “32231”。// 输入字符串System.out.println("最大的轮询结果: " + maxStr);// 初始化为原始字符串// 轮询整个字符串,比较每次轮询结果i < length;i++) {原创 2024-10-18 14:51:20 · 285 阅读 · 0 评论 -
我们小公司使用了6年的项目部署方案,打包 + 一键部署详解,稳的一批
这是六年前他写下的一篇关于**编程喵🐱**开源项目如何一键部署在云服务器上的方案,现在看起来虽然有些稚嫩,但足够的详细,使用起来也非常的便捷。有需要的小伙伴可以拿来作为参考和借鉴。...原创 2022-06-17 10:32:45 · 6688 阅读 · 12 评论 -
马蜂窝一面:Comparable和Comparator有什么区别?
那天,小二去马蜂窝面试,面试官老王一上来就甩给了他一道面试题:请问Comparable和Comparator有什么区别?小二差点笑出声,因为三年前,也就是 2021 年,他在《Java 程序员进阶之路》专栏上看到过这题????。PS:为了能够帮助更多的 Java 初学者,已将《Java 程序员进阶之路》开源到了 GitHub(本篇已收录)。该专栏目前已经收获了 580 枚星标,如果你也喜欢这个专栏,觉得有帮助的话,可以去点个 star,这样也方便以后进行更系统化的学习!CodeChina 直达地址:ht原创 2021-11-12 22:12:57 · 2464 阅读 · 1 评论 -
上次被 ArrayList 锤了一拳后,LinkedList 很不服气,做出最后一击
这是《Java 程序员进阶之路》专栏的第 61 篇,我们来继续探讨 ArrayList 和 LinkedList,这一篇比上一篇更深入、更全面,源码讲解、性能考量,方方面面都有涉及到了。首先必须得感谢大家,《Java 程序员进阶之路》在 GitHub 上已经突破 400 个星标了,感谢感谢,还没 star 的赶紧安排一波了,冲击 500 星标了。https://github.com/itwanger/toBeBetterJavaer01、ArrayList 是如何实现的?ArrayList 实现原创 2021-10-20 15:24:44 · 3936 阅读 · 5 评论 -
集合的生产力工具类:Collections,我直呼好家伙。。
Collections 是 JDK 提供的一个工具类,位于 java.util 包下,提供了一系列的静态方法,方便我们对集合进行各种骚操作,算是集合框架的一个大管家。PS:star 这种事,只能求,不求没效果,铁子们,《Java 程序员进阶之路》在 GitHub 上已经收获了 556 枚星标,铁子们赶紧去点点了,冲 600 star!https://github.com/itwanger/toBeBetterJavaer还记得我们前面讲过的 Arrays 工具类吗?可以回去温习下。Collect原创 2021-11-06 11:57:09 · 2418 阅读 · 1 评论 -
Java IO 知识点总结和盘点,看完后直呼很哇塞
“老王,Java IO 也太上头了吧?”新兵蛋子小二向头顶很凉快的老王抱怨道,“你瞧,我就按照传输方式对 IO 进行了一个简单的分类,就能搞出来这么多的玩意!”PS:为了能够帮助更多的 Java 初学者,已将《Java 程序员进阶之路》开源到了 GitHub(本篇已收录)。该专栏目前已经收获了 590 枚星标,如果你也喜欢这个专栏,觉得有帮助的话,可以去点个 star,冲 1000 星标了,这样也方便以后进行更系统化的学习!GitHub 地址:https://github.com/itwanger/to原创 2021-11-15 09:15:19 · 2238 阅读 · 2 评论 -
请不要再轻视Git —— 我在工作中是如何使用 Git 的
CSDN 的小伙伴,大家好,我是二哥呀!对于新手来说,Git 操作确实容易给代码的版本库带来一些不必要的混乱,毕竟大学的时候,学习的重点在编程语言上,在计算机基础上。可一旦参加了工作,就必须得在代码版本库上狠下一番功夫了,毕竟要多人运动啊,不,多人协作啊。恰好二哥最近在连载 Git 方面的一系列文章,这篇就来手把手地教大家重温一下 Git 的基本使用。嗯,我闻到了收藏夹吃灰的味道~PS:为了能够帮助更多的 Java 爱好者,已将《Java 程序员进阶之路》开源到了 GitHub(本篇已收录)。该专栏目原创 2021-12-09 10:58:14 · 13930 阅读 · 19 评论 -
不要再重复造轮子了,Hutool这款开源工具类库贼好使
读者群里有个小伙伴感慨说,“Hutool 这款开源类库太厉害了,基本上该有该的工具类,它里面都有。”讲真的,我平常工作中也经常用 Hutool,它确实可以帮助我们简化每一行代码,使 Java 拥有函数式语言般的优雅,让 Java 语言变得“甜甜的”。PS:为了能够帮助更多的 Java 爱好者,已将《Java 程序员进阶之路》开源到了 GitHub(本篇已收录)。该专栏目前已经收获了 598 枚星标,如果你也喜欢这个专栏,觉得有帮助的话,可以去点个 star,这样也方便以后进行更系统化的学习!https原创 2021-11-16 15:28:44 · 7810 阅读 · 12 评论 -
为什么HashMap的加载因子一定是0.75?而不是0.8,0.6?
JDK 8 中的 HashMap 是用数组+链表+红黑树实现的,我们要想往 HashMap 中放数据或者取数据,就需要确定数据在数组中的下标。先把数据的键进行一次 hash:static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}再做一次取模运算确定下标:i = (n - 1) & hash哈希表这原创 2021-09-27 15:42:20 · 4448 阅读 · 9 评论 -
看完这篇还不懂HashMap的扩容机制,那我要哭了~
HashMap 发出的 Warning:这是《Java 程序员进阶之路》专栏的第 56 篇。那天,小二垂头丧气地跑来给我诉苦,“老王,有个学弟小默问我‘ HashMap 的扩容机制’,我愣是支支吾吾讲了半天,没给他讲明白,讲到最后我内心都是崩溃的,差点哭出声!”我安慰了小二好一会,他激动的情绪才稳定下来。我给他说,HashMap 的扩容机制本来就很难理解,尤其是 JDK8 新增了红黑树之后。先基于 JDK7 讲,再把红黑树那块加上去就会容易理解很多。小二这才恍然大悟,佩服地点了点头。HashMap 发原创 2021-09-24 08:50:16 · 4460 阅读 · 6 评论 -
京东一面:为什么 HashMap 是线程不安全的?
01、多线程下扩容会死循环众所周知,HashMap 是通过拉链法来解决哈希冲突的,也就是当哈希冲突时,会将相同哈希值的键值对通过链表的形式存放起来。JDK 7 时,采用的是头部插入的方式来存放链表的,也就是下一个冲突的键值对会放在上一个键值对的前面(同一位置上的新元素被放在链表的头部)。扩容的时候就有可能导致出现环形链表,造成死循环。resize 方法的源码:// newCapacity为新的容量void resize(int newCapacity) { // 小数组,临时过度下原创 2021-09-30 08:20:44 · 6707 阅读 · 7 评论 -
为什么阿里巴巴强制不要在 foreach 里执行删除操作
那天,小二去阿里面试,面试官老王一上来就甩给了他一道面试题:为什么阿里的 Java 开发手册里会强制不要在 foreach 里进行元素的删除操作?小二听完就面露喜色,因为两年前,也就是 2021 年,他在《Java 程序员进阶之路》专栏上的第 63 篇看到过这题????。PS:star 这种事,只能求,不求没效果,铁子们,《Java 程序员进阶之路》在 GitHub 上已经收获了 523 枚星标,小伙伴们赶紧去点点了,冲 600 star!https://github.com/itwanger/toB原创 2021-11-03 16:03:44 · 16930 阅读 · 12 评论 -
一条 Git 命令减少了一般存储空间,我的服务器在偷着笑
元旦不是搭建了一个《Java 程序员进阶之路》的网站嘛,其中用到了 Git 来作为云服务器和 GitHub 远程仓库之间的同步工具。作为开发者,相信大家都知道 Git 的重要性。Git 是一个分布式版本控制软件,初版由 Linus·Torvalds 开发,并于 2005 年以 GPL 许可协议发布。Git 的牛逼这次就不吹了,毕竟已经吹了 7 篇了,实在是吹不动了!可能是 Git 历史上最伟大的一次代码提交终于有人把 Git 的数据模型讲清楚了昨晚看完 Linus 第一次提交的 Git 代码原创 2022-01-16 13:06:01 · 1280 阅读 · 0 评论 -
干掉 PowerDesigner,这款开源数据库设计神器真的绝了
最近在造轮子,从 0 到 1 的那种,就差前台的界面了,大家可以耐心耐心耐心期待一下。其中需要设计一些数据库表,可以通过 Navicat 这种图形化管理工具直接开搞,也可以通过一些数据库设计工具来搞,比如说 PowerDesigner,更专业一点。今天我给大家推荐的这款国人开源的数据库设计工具 chiner,界面漂亮,功能强大,体验后给我的感觉是真香…一、 关于 PowerDesignerPowerDesigner 是一款功能非常强大的建模工具,可以和 Rational Rose 媲美。Rose 专原创 2022-01-25 17:48:19 · 8769 阅读 · 8 评论 -
二哥的小破站终于上线了,颜值贼高
大家好,我是二哥呀!2022 年 1 月 1 日,二哥的《Java 程序员进阶之路》网站终于上线了!10 天过去了,网站在没有 SEO 的加持下访问量也突破了 1000 pu,算是一个小小的里程碑吧。大家可以通过以下网站来体验一下:https://tobebetterjavaer.com往下看,你不仅会直呼这个网站的颜值贼高,丝毫不输 B 站上那些舞蹈区的小姐姐,hhh,另外你还会学到如何从0 到 1搭建一个个人的学习网站。经常逛 GitHub 的小伙伴应该已经发现了,二哥的《Java 程序员进原创 2022-01-10 12:54:27 · 4190 阅读 · 5 评论 -
干掉 Xshell?这款开源的终端工具逼格更高
作为一名 Java 后端开发,日常工作中免不了要和 Linux 服务器打交道,因为生产环境基本上都是部署在 Linux 环境下的。以前呢,我会选择 Xshell 来作为终端进行远程操作。随着付费版本的出现,尤其是 Xshell 把 FTP 分离出去后,上传下载文件的话还需要单独装一下 Xftp,这显然没有之前集成在一起方便????。还有一点让我费解的是,Xshell 竟然一直没有推出 macOS 版。不过,滴水之恩当涌泉相报,我还是要说,Xshell 真的是非常的 Nice,从实习到现在,Window原创 2021-12-18 16:09:44 · 4273 阅读 · 3 评论 -
30 天终于弄完域名备案
新注册的域名在短时间内是可以访问到的(参照上篇),但过一段时间后,就会提示「网站暂时无法访问」。这就意味着我们需要对网站进行备案。关于网站备案,百度百科是这样解释的:网站备案的目的是为了防止在网上从事非法的网站经营活动,打击不良互联网信息的传播,如果网站不备案的话,很有可能被查处以后关停。那网站如何备案呢?登录你购买服务器的服务器厂商官网,就可以进行网站备案。我购买的是阿里云服务器,所以这里以阿里云为例。登录阿里云,点击「ICP 备案」(指网站在信息产业部提交网站信息进行官方认可)菜单,点击原创 2022-01-24 16:58:20 · 1571 阅读 · 1 评论 -
3 年9.9元,网站从HTTP升级到HTTPS
上一次,我们完成域名解析后,发现浏览器地址栏里的域名被提示为不安全,就是因为它还是个宝宝,没有升级为 HTTPS 证书。那怎么升级为 HTTPS 证书呢?可以直接通过阿里云购买 SSL 证书,但特么巨贵!本来想尝试一下 AWS 的免费 SSL 证书,但卡到验证码这一步就是收不到信息。索性就还用 FreeSSL 吧。FreeSSL.cn 是一个提供免费HTTPS证书申请的网站,网址如下:https://freessl.cn输入域名 tobebetterjavaer.com 选择 trust原创 2022-01-22 14:13:02 · 6002 阅读 · 4 评论 -
某俄罗斯小哥,竟靠一个服务器软件直接封神?
最近在搭建一个网站,就不可避免地要用到 Nginx,索性就出一期 Nginx 的入门教程,希望也可以帮助到大家~????作为开发者,相信大家都知道 Nginx 的重要性。Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器,由俄罗斯的伊戈尔·赛索耶夫开发,第一个版本发布于 2004 年 10 月 4 日。Nginx 的特点是:内存占用少并发能力强(可支持大约 50000 个并发连接)配置超简洁bug 非常少安装超简单服务特别稳(几个月也不需要重启)基于这些特点,越来越多的原创 2021-12-27 09:40:26 · 27429 阅读 · 30 评论 -
我鮳,Log4j2突发重大漏洞,我们也中招了。。
长话短说吧。相信大家已经被 Log4j2 的重大漏洞刷屏了,估计有不少小伙伴此前为了修 bug 已经累趴下了。很不幸,我的小老弟小二的 Spring Boot 项目中恰好用的就是 Log4j2,版本特喵的还是 2.14.1,在这次漏洞波及的版本范围之内。第一时间从网上得知这个漏洞的消息后,小二吓尿了。赶紧跑过来问老王怎么解决。老王先是给小二提供了一些临时性的建议,比如说:JVM 参数添加 -Dlog4j2.formatMsgNoLookups=truelog4j2.formatMsgNoLooku原创 2021-12-12 13:06:50 · 38264 阅读 · 27 评论 -
Spring Boot为什么不需要额外安装Tomcat?
首次接触 Spring Boot 的时候,绝大多数小伙伴应该和我一样好奇:为什么 Spring Boot 不需要额外安装 Tomcat 啊?到底为什么呢?让我们带着好奇心开始今天的旅程吧。打开上一节我们搭建好的 tobebetterjavaer 项目,找到 pom.xml 文件,可以在里面看到一个 parent 属性,代码如下:<parent> <groupId>org.springframework.boot</groupId> <artifact原创 2022-01-01 18:15:47 · 17769 阅读 · 22 评论 -
一分钟快速搭建 Spring Boot 项目
大家好,我是二哥呀!学 Java,自然少不了 Spring Boot 的学习!作为一名 Java 技术博主,已经被催了 N 多次 Spring Boot 的教程了,再不更新真有点鸽的不成样子——鸽上加鸽。因此我打算在接下来一段时间里间歇性地输出一些 Spring Boot 方面的文章,包括一些非常入门级的教程和一些非常优质的 Spring Boot 项目推荐,已经身经百战的 starter 们忽略就好。《Java 程序员进阶之路》在 GitHub 上获得了 872 个 star,还没去点亮的小伙伴去原创 2021-12-23 16:45:23 · 3378 阅读 · 8 评论 -
273 块钱购入的域名,值了
大家好,我是二哥呀。给大家通报下战绩,自从2022年01月01日上线小破站以来,PU 马上突破 1000 人了,发完这篇文章后应该就能突破了,一会赶紧去截图纪念下。这个小小的里程碑,是《Java 程序员进阶之路》迈出去的一大步。这点小成绩让我感觉 273 块钱买的这个 tobebetterjavaer.com 域名真的是值了!今天顺带给大家补一个小知识:域名解析。老手可以直接拉到文末给个三连就可以撤了,新手可以把这篇收藏起来,往后自己搭建博客时必然会遇到的。购买域名可以通过多个服务商,比如说阿里云原创 2022-01-20 09:52:43 · 8404 阅读 · 10 评论 -
取代Maven?maven-mvnd持续霸榜 GitHub Trending,性能提升300%
在 GitHub 上闲逛的时候,发现了一个新的项目:maven-mvnd,持续霸占 GitHub trending 榜单好几天了。maven-mvnd,可以读作 Maven Daemon,译作 Maven 守护版,旨在为 Maven 提供更快的构建速度,灵感借鉴了 Gradle 和 Takari(Maven 生命周期优化器)。https://github.com/apache/maven-mvndMaven 和 Gradle 可以说是项目构建工具中的绝代双骄,我自己的观点是:Maven 不比 G原创 2021-12-31 11:59:07 · 1934 阅读 · 3 评论 -
为了彻底搞懂 hashCode,我连 JDK 的源码都没放过(建议收藏)
今天我们来谈谈 Java 中的 hashCode() 方法——通过源码的角度。众所周知,Java 是一门面向对象的编程语言,所有的类都会默认继承自 Object 类,而 Object 的中文意思就是“对象”。Object 类中就包含了 hashCode() 方法:@HotSpotIntrinsicCandidatepublic native int hashCode();意味着所有的类都会有一个 hashCode() 方法,该方法会返回一个 int 类型的值。由于 hashCode() 方法是一个原创 2021-08-10 17:58:23 · 3046 阅读 · 8 评论 -
剖根问底:Java 不能实现真正泛型的原因是什么?
大家好,我是二哥呀!今天我来给大家讲一下,Java 不能实现真正泛型的原因是什么?本文已同步至 GitHub 《教妹学 Java》专栏,风趣幽默,通俗易懂,对 Java 初学者亲切友善,么么哒????,内容包括 Java 语法、Java 集合框架、Java 并发编程、Java 虚拟机等核心知识点,欢迎 star。GitHub 开源地址:https://github.com/itwanger/jmx-javaCodeChina:https://codechina.csdn.net/qing_gee/原创 2021-07-30 10:59:03 · 5319 阅读 · 10 评论 -
蔚来一面:HashMap 的 hash 方法原理是什么?看完这篇还不懂HashMap的hash原理,那我要哭了~
Warning:这是《Java 程序员进阶之路》专栏的第 55 篇。那天,小二去蔚来面试,面试官老王一上来就问他:HashMap 的 hash 方法的原理是什么?当时就把裸面的小二给蚌埠住了。回来后小二找到了我,于是我就写下了这篇文章丢给他,并严厉地告诉他:再搞不懂就别来找我。听到这句话,心头一阵酸,小二绷不住差点要哭 ????。PS:本文 GitHub 上已同步,有 GitHub 账号的小伙伴,记得看完后给二哥安排一波 star 呀!冲一波 GitHub 的 trending 榜单,求求各位了。G原创 2021-09-13 09:09:05 · 4273 阅读 · 10 评论 -
❤️用武侠小说的形式来阅读LinkedList的源码,绝了!
一、LinkedList 的剖白大家好,我是 LinkedList,和 ArrayList 是同门师兄弟,但我俩练的内功却完全不同。师兄练的是动态数组,我练的是链表。问大家一个问题,知道我为什么要练链表这门内功吗?举个例子来讲吧,假如你们手头要管理一推票据,可能有一张,也可能有一亿张。该怎么办呢?申请一个 10G 的大数组等着?那万一票据只有 100 张呢?申请一个默认大小的数组,随着数据量的增大扩容?要知道扩容是需要重新复制数组的,很耗时间。关键是,数组还有一个弊端就是,假如现在有 500原创 2021-09-03 10:40:32 · 2139 阅读 · 8 评论 -
保姆级神器 Maven,再也不用担心项目构建搞崩了
今天来给大家介绍一款项目构建神器——Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具,从此以后,再也不用担心项目搞崩了。PS:为了能够帮助更多的 Java 爱好者,已将《Java 程序员进阶之路》开源到了 GitHub(本篇已收录)。该专栏目前已经收获了 675 枚星标,如果你也喜欢这个专栏,觉得有帮助的话,可以去点个 star,这样也方便以后进行更系统化的学习:https://github.com/原创 2021-11-23 14:48:10 · 1834 阅读 · 0 评论 -
海康威视一面:Iterator与Iterable有什么区别?
那天,小二去海康威视面试,面试官老王一上来就甩给了他一道面试题:请问 Iterator与Iterable有什么区别?小二差点笑出声,因为一年前,也就是 2021 年,他在《Java 程序员进阶之路》专栏上的第 62 篇看到过这题????。PS:星标这种事,只能求,不求没效果,come on。《Java 程序员进阶之路》在 GitHub 上已经收获了 460 枚星标,小伙伴们赶紧去点点了,冲 500!https://github.com/itwanger/toBeBetterJavaer在 Jav原创 2021-10-26 20:57:57 · 2399 阅读 · 3 评论 -
ArrayList 重拳出击,把 LinkedList 干翻在地
大家好,我是二哥呀。这是《Java 程序员进阶之路》专栏的第 60 篇,我们来聊聊 ArrayList 和 LinkedList 之间的区别。大家可以到 GitHub 上给二哥一个 star,马上破 400 星标了。https://github.com/itwanger/toBeBetterJavaer如果再有人给你说 “ArrayList 底层是数组,查询快、增删慢;LinkedList 底层是链表,查询慢、增删快”,你可以让他滚了!这是一个极其不负责任的总结,关键是你会在很多地方看到这样的结原创 2021-10-13 09:02:58 · 1912 阅读 · 0 评论 -
教妹学 Java:try-with-resouces
“二哥,终于等到你讲 try-with-resouces 了!”三妹夸张的表情让我有些吃惊。“三妹,不要激动呀!开讲之前,我们还是要来回顾一下 try–catch-finally,好做个铺垫。”我说,“来看看这段代码吧。”public class TrycatchfinallyDecoder { public static void main(String[] args) { BufferedReader br = null; try {原创 2021-07-13 15:26:05 · 2203 阅读 · 3 评论 -
教妹学 Java:throw 和 throws
“二哥,你能告诉我 throw 和 throws 两个关键字的区别吗?”三妹问。“throw 关键字,用于主动地抛出异常;正常情况下,当除数为 0 的时候,程序会主动抛出 ArithmeticException;但如果我们想要除数为 1 的时候也抛出 ArithmeticException,就可以使用 throw 关键字主动地抛出异常。”我说。throw new exception_class("error message");语法也非常简单,throw 关键字后跟上 new 关键字,以及异常的类型原创 2021-07-13 15:25:23 · 2471 阅读 · 5 评论 -
教妹学 Java:try-catch-finally
“二哥,上一节你讲了异常处理机制,这一节讲什么呢?”三妹问。“该讲 try-catch-finally 了。”我说,“try 关键字后面会跟一个大括号 {},我们把一些可能发生异常的代码放到大括号里;try 块后面一般会跟 catch 块,用来处理发生异常的情况;当然了,异常不一定会发生,为了保证发不发生异常都能执行一些代码,就会跟一个 finally 块。”“具体该怎么用呀,二哥?”三妹问。“别担心,三妹,我一一来说明下。”我说。try 块的语法很简单:try{// 可能发生异常的代码}原创 2021-07-13 15:24:31 · 1616 阅读 · 2 评论 -
教妹学 Java:异常处理机制
“二哥,今天就要学习异常了吗?”三妹问。“是的。只有正确地处理好异常,才能保证程序的可靠性,所以异常的学习还是很有必要的。”我说。“那到底什么是异常呢?”三妹问。“异常是指中断程序正常执行的一个不确定的事件。当异常发生时,程序的正常执行流程就会被打断。一般情况下,程序都会有很多条语句,如果没有异常处理机制,前面的语句一旦出现了异常,后面的语句就没办法继续执行了。”“有了异常处理机制后,程序在发生异常的时候就不会中断,我们可以对异常进行捕获,然后改变程序执行的流程。”“除此之外,异常处理机制可以保证原创 2021-07-13 15:23:56 · 2203 阅读 · 5 评论 -
教妹学 Java:字符串拆分
“哥,我感觉字符串拆分没什么可讲的呀,直接上 String 类的 split() 方法不就可以了!”三妹毫不客气地说。“假如你真的这么觉得,那可要注意了,事情远没这么简单。”我微笑着说。假如现在有这样一串字符序列“沉默王二,一枚有趣的程序员”,需要按照中文逗号“,”进行拆分,这意味着第一串字符序列为逗号前面的“沉默王二”,第二串字符序列为逗号后面的“一枚有趣的程序员”。“这不等于没说吗?哥!”还没等我说,三妹就打断了我。“别着急嘛,等哥说完。”我依然保持着微笑继续说,“在拆分之前,要先进行检查,判断原创 2021-07-13 15:20:36 · 1264 阅读 · 1 评论 -
教妹学 Java:字符串拼接
“哥,你让我看的《Java 开发手册》上有这么一段内容:循环体内,拼接字符串最好使用 StringBuilder 的 append() 方法,而不是 + 号操作符。这是为什么呀?”三妹疑惑地问。“好的,三妹,哥来慢慢给你讲。”我回答。三妹能在学习的过程中不断地发现问题,让我感到非常的开心。其实很多时候,我们不应该只是把知识点记在心里,还应该问一问自己,到底是为什么,只有迈出去这一步,才能真正的成长起来。“+ 号操作符其实被 Java 在编译的时候重新解释了,换一种说法就是,+ 号操作符是一种语法糖,让原创 2021-07-13 15:19:27 · 1346 阅读 · 0 评论 -
教妹学 Java: 如何比较两个字符串相等
“哥,如何比较两个字符串相等啊?”三妹问。“这个问题看似简单,却在 Stack Overflow 上有超过 370 万的访问量。”我说,“这个问题也可以引申为 .equals() 和 ‘==’ 操作符有什么区别。”“==”操作符用于比较两个对象的地址是否相等。.equals() 方法用于比较两个对象的内容是否相等。“不是很理解。”三妹感到很困惑。“我来举个不恰当又很恰当的例子,一看你就明白了,三妹。”有一对双胞胎,姐姐叫阿丽塔,妹妹叫洛丽塔。我们普通人可能完全无法分辨谁是姐姐谁是妹妹,可她们原创 2021-07-13 15:18:26 · 3179 阅读 · 3 评论 -
教妹学Java:深入浅出之美团技术团队解析过的 String.intern
intern“哥,你发给我的那篇文章我看了,结果直接把我给看得不想学 Java 了!”三妹气冲冲地说。“哪一篇啊?”看着三妹面色沉重,我关心地问到。“就是美团技术团队深入解析 String.intern() 那篇啊!”三妹回答。https://tech.meituan.com/2014/03/06/in-depth-understanding-string-intern.html“哦,我想起来了,不挺好一篇文章嘛,深入浅出,精品中的精品,看完后你应该对 String 的 intern 彻底理解原创 2021-06-05 12:27:56 · 2055 阅读 · 5 评论