自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沉潜飞动

人非生而知之者,孰能无惑?惑而不从师,其为惑也,终不解矣。

  • 博客(170)
  • 资源 (13)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java23 的新特性

JEP 423: G1垃圾回收器的区域固定(Region Pinning for G1)JEP 447: super(…)前置语句(Statements before super(…),预览)JEP 454: 外部函数和内存API(Foreign Function & Memory API)JEP 456: 未命名变量和模式(Unnamed Variables & Patterns)JEP 457: 类文件API(Class-File API,预览)

2024-09-19 09:00:00 470

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java22 的新特性

JEP 423: G1垃圾回收器的区域固定(Region Pinning for G1)JEP 447: super(…)前置语句(Statements before super(…),预览)JEP 454: 外部函数和内存API(Foreign Function & Memory API)JEP 456: 未命名变量和模式(Unnamed Variables & Patterns)JEP 457: 类文件API(Class-File API,预览)

2024-09-18 09:00:00 545

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java21 的新特性

JEP 430: 字符串模板(String Templates,预览)JEP 431: 有序集合(Sequenced Collections)JEP 439: 分代ZGC(Generational ZGC)JEP 440: Record模式(Record Patterns)JEP 441: switch模式匹配(Pattern Matching for switch)

2024-09-17 09:00:00 526

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java20 的新特性

Java20 在 2023 年 3 月 21 日发布GA版本,共七大特性,这些新特性处于预览或孵化阶段,旨在简化并发编程、提高性能和增强语言表达能力。JEP 429: 作用域值(Scoped Values,孵化),来自Amber项目,允许在线程内和线程间共享不可变数据,优于传统的线程局部变量。它主要用于在多线程应用中安全地传递和访问数据,例如从父线程向子线程传递数据。JEP 432: Record模式(Record Patterns,第二次预览),来自Amber项目,用于简化数据结构的模式匹配。

2024-09-16 09:00:00 817

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java19 的新特性

Java19 在 2022 年 9 月 20 日发布GA版本,共七大特性,这些新特性大多处于预览或孵化阶段,旨在简化并发编程、提高性能和增强语言表达能力。JEP 405: Record 模式(预览)JEP 422: Linux/RISC-V移植JEP 424: 外部函数和内存API(预览)JEP 425: 虚拟线程(预览)JEP 426: 向量API(第四次孵化)JEP 427: Switch模式匹配(第三次预览)JEP 428: 结构化并发API (孵化)

2024-09-15 09:00:00 879

原创 AI 时代程序员的挑战与机遇

你好,我是看山。在当今数字化快速发展的时代,AIGC(如 ChatGPT、Midjourney、Claude 等)大语言模型如雨后春笋般接二连三的涌现,与此同时,AI 辅助编程工具也日益普及。这一系列的变化使得程序员的工作方式正在发生着深刻的变革。

2024-09-14 22:22:56 890

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java18 的新特性

Java18新特性

2024-09-10 08:30:00 1051 1

原创 SpringBoot 实战:国际化组件 MessageSource 与 Nacos 组合实现动态配置能力

前面介绍了 Spring 的 MessageSource 组件的用法、执行逻辑和源码,本文我们将根据前面的知识,实现自己的动态刷新的国际化组件。

2022-08-15 07:23:11 11

原创 SpringBoot实战:国际化组件MessageSource的执行逻辑与源码

掌握 MessageSource 的原理,我们才能更好的扩展。

2022-08-07 21:19:40 2364 1

原创 《SpringBoot 手册》:国际化组件 MessageSource

咱们今天一起来聊聊 SpringBoot 中的国际化组件 MessageSource。

2022-07-30 11:41:43 3452

原创 小心 transmittable-thread-local 的这个坑

本文主要是变更 transmittable-thread-local 使用方式时出现的一个异常。

2022-07-30 11:19:17 2718

原创 Switch 块、Switch 表达式、Switch 模式匹配,越来越好用的 Switch

与 if-else 一样,switch 语法是用来做条件判断的。当条件清晰简洁时,能够有效地提升代码可读性。switch 语法从 Java5 开始,Java12 增加了 Switch 表达式(Java14 提供正式版),Java17 增加 Switch 模式匹配(预览版)。...

2022-07-30 11:11:33 1633

原创 2022 年 Java 行业分析报告

前段时间介绍了从 Java8 到 Java17 每个版本比较有特点的新特性(收录在 从小工到专家的 Java 进阶之旅 专栏),今天看到 JRebel 发布了《2022 年 Java 发展趋势和分析》,于是借此分析一下 Java 行业的现状,希望给大家一些参考。......

2022-06-19 11:50:56 4882 1

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java17 的新特性

你好,我是看山。本文收录在 《从小工到专家的 Java 进阶之旅》 系列专栏中。从 2017 年开始,Java 版本更新策略从原来的每两年一个新版本,改为每六个月一个新版本,以快速验证新特性,推动 Java 的发展。从 《JVM Ecosystem Report 2021》 中可以看出,目前开发环境中有近半的环境使用 Java8,有近半的人转移到了 Java11,随着 Java17 的发布,相信比例会有所变化。因此,准备出一个系列,配合示例讲解,阐述各个版本的新特性。概述Java17 是在.

2022-05-17 21:39:12 1755 1

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java16 的新特性

你好,我是看山。本文收录在 《从小工到专家的 Java 进阶之旅》 系列专栏中。从 2017 年开始,Java 版本更新策略从原来的每两年一个新版本,改为每六个月一个新版本,以快速验证新特性,推动 Java 的发展。从 《JVM Ecosystem Report 2021》 中可以看出,目前开发环境中有近半的环境使用 Java8,有近半的人转移到了 Java11,随着 Java17 的发布,相信比例会有所变化。因此,准备出一个系列,配合示例讲解,阐述各个版本的新特性。概述Java16 是在.

2022-04-19 08:08:35 2605

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java15 的新特性

你好,我是看山。本文收录在 《从小工到专家的 Java 进阶之旅》 系列专栏中。从 2017 年开始,Java 版本更新策略从原来的每两年一个新版本,改为每六个月一个新版本,以快速验证新特性,推动 Java 的发展。从 《JVM Ecosystem Report 2021》 中可以看出,目前开发环境中有近半的环境使用 Java8,有近半的人转移到了 Java11,随着 Java17 的发布,相信比例会有所变化。因此,准备出一个系列,配合示例讲解,阐述各个版本的新特性。概述Java15 是在.

2022-03-17 07:49:08 1925 1

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java14 的新特性

本文讲解一下 Java14 的特性,这个版本带来了不少新特性、功能实用性的增强、GC 的尝试、性能优化等:JEP 305:instanceof 模式匹配 (预览版);JEP 343:打包工具 (孵化);JEP 345:G1 的可识别 NUMA 系统的内存分配;JEP 349:JFR 事件流;JEP 352:非原子性的字节缓冲区映射;JEP 358:NullPointerException 的友好提示信息;JEP 359:Record 声明 (预览版);JEP 361:Switch 表达式转正 (第二版预览)

2022-03-07 21:50:57 1500 1

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java13 的新特性

你好,我是看山。本文收录在 《从小工到专家的 Java 进阶之旅》 系列专栏中。从 2017 年开始,Java 版本更新策略从原来的每两年一个新版本,改为每六个月一个新版本,以快速验证新特性,推动 Java 的发展。从 《JVM Ecosystem Report 2021》 中可以看出,目前开发环境中有近半的环境使用 Java8,有近半的人转移到了 Java11,随着 Java17 的发布,相信比例会有所变化。因此,准备出一个系列,配合示例讲解,阐述各个版本的新特性。概述本文讲解一下 Ja.

2022-02-14 21:56:37 2459 1

原创 从春运迁徙图看疫情变化

你好,我是看山。腊月二十七宰鸡赶大集,响应国家号召,就地过年。难免思乡,于是翻了翻百度地图提供的迁徙数据。我们从迁出地和迁徙趋势看一看这几年的春运变化。我们先来看看从2020年到现在(2022年)的春运迁徙图:从三张图中,我们不难看出一些规律,待我慢慢道来。春运热门迁出地这几年中,比较热门的迁出地有北京、上海、广州、深圳,稍微热门的是杭州、武汉、重庆、长沙、西安等。不难看出,热门迁出地对应着一线、新一线城市。这些城市的外来务工人员比较多,在春节选择回家过年。其中,北上广深是一线城市,.

2022-01-29 17:51:46 2010 1

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java12 的新特性

本文收录在 《从小工到专家的 Java 进阶之旅》 系列专栏中。你好,我是看山。从 2017 年开始,Java 版本更新策略从原来的每两年一个新版本,改为每六个月一个新版本,以快速验证新特性,推动 Java 的发展。从 《JVM Ecosystem Report 2021》 中可以看出,目前开发环境中有近半的环境使用 Java8,有近半的人转移到了 Java11,随着 Java17 的发布,相信比例会有所变化。因此,准备出一个系列,配合示例讲解,阐述各个版本的新特性。概述本文讲解一下 Ja..

2022-01-17 08:30:00 2042

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java11 的新特性

文章目录概述增强 Stringrepeatstrip、stripLeading、stripTrailingisBlanklines增强文件读写增强集合的数组操作增强函数 PredicateLambda 中的局部变量转正的 HTTP 客户端基于嵌套关系的访问控制优化增强 java 命令动态类文件常量低开销的堆性能采用工具ZGC改进 Aarch64 指令集Epsilon 垃圾收集器飞行记录器(Flight Recorder)移除或过期组件其他小改动文末总结推荐阅读你好,我是看山。本文收录在 《从小工到专.

2022-01-10 07:00:00 2324 6

原创 Java11 中基于嵌套关系的访问控制优化

有人的地方就有江湖,有猿的地方就有 bug

2022-01-05 23:08:08 4019 7

原创 这一年很幸运,平平淡淡的|2021 年度总结

一晃又是一年,果然岁数越大,时间越快。总结下来,2021 年还算幸运,平平淡淡过一年。工作上按部就班,生活上一如既往。

2022-01-05 22:53:39 2840 3

原创 原来还能这么干——观罗胖2022年《时间的朋友》后感

你好,我是看山。就这样 2022 年了,年纪越大,时间越快,又到了罗胖《时间的朋友》直播的时候,看完后想写点什么,奈何腹中墨水太少,索性不难为自己,随便写写。由于疫情原因,罗胖今年的跨年演讲现场的观众全部都是熊猫娃娃,评论区有整场直播的视频回访和文字稿,有些事情,还是要自己亲自感受一下。打破思维的墙整场演讲的主题是“原来还能这么干”,用我能够理解的话,就是打破思维的墙。每个人都有自己的思维模式,这是我们赖以生存的根本,也是我们能够更快速、更高效处理普通事务的根本。之前在 别让非理性思维毁了你的人.

2022-01-02 01:07:01 2030 8

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java10 的新特性

你好,我是看山。本文收录在 《从小工到专家的 Java 进阶之旅》 系列专栏中。从 2017 年开始,Java 版本更新策略从原来的每两年一个新版本,改为每六个月一个新版本,以快速验证新特性,推动 Java 的发展。从 《JVM Ecosystem Report 2021》 中可以看出,目前开发环境中有近半的环境使用 Java8,有近半的人转移到了 Java11,随着 Java17 的发布,相信比例会有所变化。因此,准备出一个系列,配合示例讲解,阐述各个版本的新特性。概述从 Java10 .

2021-12-29 22:10:45 2916 1

原创 Spring隐藏了真实的错误,让排查问题变得很难

你好,我是看山。今天项目依赖了一个基础组件之后,启动失败,排查过程走了一些弯路,最终确认是因为依赖组件版本冲突造成了java.lang.NoClassDefFoundError异常。下面是排查过程,希望可以给你提供一些思路。观察异常栈下面是打印的异常栈信息,从其中提炼可能的关键信息,能够找到“Could not convert argument value of type [java.lang.String] to required type [java.lang.Class]”,还有“Unres.

2021-12-28 21:54:21 5003 2

原创 Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java9 的新特性

你好,我是看山。本文收录在 《从小工到专家的 Java 进阶之旅》 系列专栏中。从 2017 年开始,Java 版本更新策略从原来的每两年一个新版本,改为每六个月一个新版本,以快速验证新特性,推动 Java 的发展。从 《JVM Ecosystem Report 2021》 中可以看出,目前开发环境中有近半的环境使用 Java8,有近半的人转移到了 Java11,随着 Java17 的发布,相信比例会有所变化。因此,准备出一个系列,配合示例讲解,阐述各个版本的新特性。概述相较于 Java8.

2021-12-20 06:00:00 3001 1

原创 微服务架构的陷阱:从单体到分布式单体

你好,我是看山。前面咱们聊了架构的演进过程,提到单体架构、SOA 架构、微服务架构、无服务架构。整个过程如下图:目前无服务架构还未成熟,只能满足一些简单场景。所以大家在设计软件架构时,首选还是微服务架构。然后我们又聊了聊如何把单体架构改造为微服务架构,推荐采用绞杀模式,一步一步的实现系统微服务化。在这个过程中,我们会碰到微服务架构的一个大坑:分布式错觉,即将分布式当成了微服务的全部(充要条件)。原因出现分布式单体的主要原因在于,只是用进程间的远程调用替换进程内的方法调用。从上图可以看出,.

2021-12-15 08:08:17 8092 3

原创 除了微服务,我们还有其他选择吗?

从单体架构、SOA架构,到微服务架构,再到容器化、无服务架构,我们的选择很多,没有必要非在一棵树上吊死。

2021-12-07 07:57:17 8359 23

原创 JDK 每半年就会更新一次新特性,再不掌握就要落伍了:JDK8 的新特性

该图片由Alexandr Podvalny在Pixabay上发布你好,我是看山。本文收录在 《Java 进阶》 系列专栏中。从 2017 年开始,JDK 版本更新策略从原来的每两年一个新版本,改为每六个月一个新版本,以快速验证新特性,推动 Java 的发展。从 《JVM Ecosystem Report 2021》 中可以看出,目前开发环境中仍有近半的环境使用 JDK8,有近半的人转移到了 JDK11,随着 JDK17 的发布,相信比例会有所变化。因此,准备出一个系列,配合示例讲解,阐述从..

2021-11-25 08:11:49 4210 19

原创 从零实现“百度网盘批量重命名”工具

该图片由Roshan Bhatia在Pixabay上发布你好,我是看山。工具的发明能够节省体力,同时也可以减少重复劳动,软件也是工具的一种。今天要说的是,引用 IT 技术,减少大量文件重命名这种重复的劳动。一直在用的存储云盘是百度网盘,里面收集了大量文件。各种资料、电子书,使用空间达到了 2500G。之前还清理过一些低质的书籍,结果使用工具导出发现,在待整理目录中,居然有 1942 条电子书的记录。如果有小伙伴想要什么书,可以从公号留言,只要不是商用,无私共享。提出需求书归正传,这么多的文..

2021-11-18 07:59:37 5473 34

原创 人人都会设计模式:策略模式

该图片由daschorsch在Pixabay上发布你好,我是看山。本文收录在《一个架构师的职业素养》专栏,日拱一卒,功不唐捐。定义策略模式,英文全称是 Strategy Design Pattern。在 GoF 的《设计模式》一书中,它是这样定义的:Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary in..

2021-11-16 08:18:49 6146 64

原创 Java 进阶:使用 Lambda 表达式实现超强的排序功能

该图片由Michael Kleinsasser在Pixabay上发布你好,我是看山。本文被《Java 进阶》专栏收录,在公众号「看山的小屋」,回复“java”可获取源码。我们在系统开发过程中,对数据排序是很常见的场景。一般来说,我们可以采用两种方式:借助存储系统(SQL、NoSQL、NewSQL 都支持)的排序功能,查询的结果即是排好序的结果查询结果为无序数据,在内存中排序。今天要说的是第二种排序方式,在内存中实现数据排序。首先,我们定义一个基础类,后面我们将根据这个基础类演示..

2021-11-08 23:13:31 6660 52

原创 SpringBoot 实战:加载和读取资源文件

该图片由Marna Buys在Pixabay上发布你好,我是看山。本文聊一聊在 SpringBoot 应用中,访问加载类路径(classpath)中的文件内容的多种方法。通过Resource接口Resource接口抽象出一种更底层的方式管理资源,可以实现通过统一的方式处理各类文件资源。下面是几种获取资源实例的方法。手动加载访问类路径中的文件,我们可以直接使用ClassPathResource加载内容,比如:new ClassPathResource("data/resource-dat..

2021-10-24 10:47:43 9659 34

原创 我们如何拿到自己满意的薪资呢?这些套路还是需要掌握的

我不是教你诈,而是有些技巧需要了解。

2021-10-22 08:30:00 1597 20

原创 阿里开源的这个库,让Excel导出不再复杂(填充模板的使用指南)

该图片由宅-KEN在Pixabay上发布你好,我是看山。前文 说了写操作,可以实现简单的列表导出,还能 定义样式。有时候,我们还需要导出的一个大表单,或者是表单+列表的形式,这个时候,我们就需要填充功能。内容比较多,文内只会列出关键代码,想要完整源码,可以关注公号「看山的小屋」回复“easyexcel”获取。在 EasyExcel 中,写操作可以完成大部分工作,填充的优势在于,可以实现自定义样式的,只要在模板中设置好样式,填充的数据就能够带着样式。先写个表单既然是使用模板,写来定义一个模..

2021-10-10 16:04:56 7735 17

原创 阿里开源的这个库,让 Excel 导出不再复杂(既要能写,还要写的好看)

既要能写,还要写的好看。毕竟,有时候还是要看脸。

2021-10-07 16:11:44 8381 22

原创 阿里开源的这个库,让 Excel 导出不再复杂(简简单单的写)

该图片由dae jeung kim在Pixabay上发布你好,我是看山。导出是中后台常见的功能,Excel文件是常见的导出格式。在Java栈中,常用的是JXL(目前改名为JExcel)和Apache POI。其中jxl最后的更新时间是2012,除了老系统中能看到影子,几乎见不到踪迹了。目前基本上是POI一统天下。今天要说的EasyExcel阿里巴巴开源的Excel导出类库,是对POI的封装,实现了很多高级功能,并且留出扩展口,支持扩展定制化功能。打个比喻,POI相当于乐高积木,一个个的小积木可..

2021-10-04 07:09:58 8398 9

原创 微服务系统中的数据一致性,你都会了吗

你好,我是看山。从单体架构到分布式架构,从巨石架构到微服务架构。系统之间的交互越来越复杂,系统间的数据交互量级也是指数级增长。作为一个系统,我们要保证逻辑的自洽和数据的自洽。数据自洽有两方面要求:抛开代码,数据能够自己验证自己的准确性,也就是数据彼此之间不矛盾所有数据准确且符合期望为了实现这两点,需要实现数据的一致性,为了实现一致性,就需要用到事务。需要注意一下,本文所设计的数据一致性,不是多数据副本之间保持数据一致性,而是系统之间的业务数据保持一致性。本地事务在早期的系统中,我们可.

2021-09-17 23:14:01 12656 42

原创 SpringBoot 实战:JUnit5+MockMvc+Mockito 做好单元测试

该图片由NickyPe在Pixabay上发布你好,我是看山。今天聊聊如何在 SpringBoot 中集成 Junit5、MockMvc、Mocktio。Junit5 是在 Java 栈中应用最广的测试框架,Junit4 一度霸榜。升级到 Junit5 之后,除了增加 Java8 的很多特性,做了很多功能增强,在结构上做了优化调整,拆分了很多不同的模块,可以按需引入,比如:JUnit Platform - 在 JVM 上启动测试框架JUnit Jupiter - 在 JUnit5 中编写测..

2021-09-11 23:04:08 5892 38

job脚本创建程序

定时执行脚本

2016-07-08

hadoop 2.4.1 64位native库

用于替换32位的Hadoop2.4.1中的native库,是Hadoop可以运行在64位操作系统上。

2014-10-14

汇编语言-教程

汇编语言教程,内容还算是比较浅显易懂,适合于初学者。

2013-08-10

JSch - Java实现的SFTP(文件下载详解篇)

浏览博客时看到的关于JSCH工具实现文件下载的功能,讲解很详细,文档中也包含了原文章的路径。

2013-08-10

JSch - Java实现的SFTP(文件上传详解篇)

浏览博客时看到的关于JSCH工具实现文件上传的功能,讲解很详细,文档中也包含了原文章的路径。

2013-08-10

Linux常用命令合集

Linux常用命令合集 内含例子 文件管理 文件传输 文档编辑 系统管理 系统设置 网络通讯 磁盘管理 磁盘维护 备份压缩 设备管理

2011-04-09

GTK+2.0(中文教程)

GTK+ 2.0 教程 译者: huzheng,konghui,ferry,carton,yang_yi,ddd,tingle 版本号: V_0.1.0 2002年 6 月25 日 本文是有关通过 C 语言接口使用 GTK (the GIMP Toolkit) 的教程。

2011-04-09

Java反射动态加载实例类

Java反射动态加载实例类,动态加载实例类,帮助理解反射

2010-06-28

Java反射简单小实例

Java反射实例,可以给初学反射的同志们一定帮助。一个简单实例,可以更好的理解反射的规矩。

2010-06-28

设计模式(Java版)

Java版设计模式,提供经典实例,可为初学者提供一定帮助。

2010-06-28

Think in C++

英文版Think in C++,是对C语言的一些介绍和帮助提高。英文版,不但可以学习C语言,而且同时可以学一些专业英语。

2010-05-31

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除