自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(144)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java基石--注解让你也能写框架

理解一个概念,需要从:为什么是它?它怎么用?它用在哪些场景?从这三个方面去阐述一个概念、术语从而更好的理解它。网上不少关于注解的文章写的挺好的,不过大多集中在注解的使用上,本次我们围绕以上三个角度去阐述注解的概念。

2025-08-07 08:30:00 649

原创 当上组长一年里,我保住了俩下属

人类的悲喜并不相通,有人欢喜有人愁,更多的是看热闹。就在上周,"苟住"群里的一个小伙伴也苟不住了。在苟友们的"墙裂"要求下,他分享了他的经验,以他的视角看看他是怎么操作的。

2025-07-30 08:45:00 718

原创 Java基石--反射让你直捣黄龙

Java反射机制详解 摘要:本文深入讲解Java反射机制的核心概念与应用场景。反射是Java提供的运行时动态操作类和对象的能力,主要包含以下内容: 基础概念:通过Class对象(类的元数据)实现反射功能,一个Class对象对应多个实例对象 反射能力:可以访问私有属性/方法、动态创建对象、调用方法等,突破编译期限制 效率分析:反射比直接new对象效率低,主要慢在安全检查和方法调用优化上 典型应用:框架解耦(如Spring)、动态代理、单元测试、注解处理等场景 实现原理:基于ClassLoader加载的.cla

2025-07-28 00:27:59 623

原创 Java基石--Java发动机ClassLoader

继承自ClassLoader重写findClass@Overridethrow new ClassNotFoundException("无法找到类: " + name);if (!findClass()里先将.class文件读取到byte[]字节数组里,再调用系统的defineClass转换为Class结构。// 加载类Class<?如此一来,通过自定义加载器,我们就可以加载位于其它位置的.class文件,甚至是网络文件等。再来看自定义ClassLoader加载过程。

2025-07-24 08:29:11 1024

原创 Java基石--无处不在的Java Class

作为主流的Java开发框架,Spring核心点如:IoC 容器(控制反转)、AOP(面向切面编程),它们涉及的知识点有:反射、代理、注解等。了解了这些知识,我们就更容易理解Spring的运行机制,从而更好地使用它。本系列文章从:Class、ClassLoader、反射、代理、注解等5个方面逐一分析并了解它们的应用场景。本篇文章主要分析Class相关知识。

2025-07-14 08:30:00 661

原创 不负责任观察:你可知程序员哪个年龄段最卷?

最近有看到两个报告,调查、总结、2024年程序员的生存情况以及一些工作情况,国内国外都有。接下来摘抄部分数据看看是否与我们的实际相符。

2025-06-27 08:11:35 662

原创 现代大前端是如何编码的?

近几年,大前端越来越流行声明式UI+响应式编程的模式,如React、Vue、Flutter、Compose等,通过分析主流的语言框架的写法,提炼声明式UI+响应式编程的核心。

2025-06-11 08:31:46 1001

原创 进入外包,我犯了所有程序员都会犯的错!

前些天有位小伙伴和我吐槽他在外包工作的经历,语气颇为激动又带着深深的无奈。本篇以他的视角,进入他的世界,看看这一段短暂而平凡的经历。

2025-06-04 08:30:00 678

原创 看了Flutter get状态库源码,我调整了编码姿势

本文分析了Flutter状态管理框架get的实现原理。主要内容包括:1) 状态管理的概念,通过StatefulWidget和setState实现基础UI状态管理;2) 观察者模式的设计,UI作为观察者监听数据变化;3) get框架的GetBuilder实现原理,利用Controller作为被观察者,自动触发setState更新UI;4) Obx与obs的响应式配合方式。文章指出get通过封装观察者模式简化了状态管理流程,使开发者只需关注数据变化。

2025-05-28 08:45:00 696

原创 Hibernate,大部分开发者的第一个ORM框架?

本文介绍了ORM(对象关系映射)技术及其在Java中的实现框架Hibernate。ORM通过将数据库表映射为类、行映射为对象、字段映射为属性,简化了数据库操作。Hibernate作为Java中常见的ORM框架,封装了JDBC,使开发者无需直接编写SQL语句,而是通过操作Java对象间接操作数据库。文章详细讲解了如何在IDEA中使用Hibernate进行数据库的增删改查(CRUD)操作,并比较了Hibernate与JDBC的关系,指出Hibernate在JDBC上层封装,提供了更高级的数据库操作方式。最后,文

2025-05-15 08:45:00 629

原创 老王,你可敢对oncall说No否?

这个五一好不容易有五天假期,之前约了几个朋友(老王、老李、不具名家属)假期去爬爬山顺便整点烧烤,选的是小众的山,烧烤器具、材料自个带。主打一个:偷得浮生半日闲。天时地利,就只差人和了。

2025-05-09 08:28:34 134

原创 知难行易:CRUD原来如此轻松

上篇分析了Java Web注册/登录过程,数据存储仅仅存在于内存。而实际的场景肯定是缺不了数据库,因此本篇通过注册/登录过程演示MySQL数据库CRUD过程。

2025-05-07 08:13:16 987

原创 AI助我!三分钟实现丐版前后端注册登录需求

上篇进入了Java Web的世界,本篇将使用Servlet/JSP来实现简单的注册登录功能,当然我们需要与AI结对编程,AI输出框架代码,我们修缮细节即可。Servlet 注解请求路径Servlet 过滤请求Servlet/JSP 转发和重定向Servlet Session保持登录态小结。

2025-04-22 09:01:36 775

原创 离职当晚,我删除了所有同事的微信

这周末约学弟出来撸串,大热天和啤酒最配。学弟化身为话痨,说着他离职后怒删同事微信的事儿,虽然我觉得他有点冲动,但是又隐隐感觉有点爽😂。代入他的视角,走入他的那几年。

2025-04-21 08:33:33 536

原创 糟糕,又得重新认识上古技术--Servlet/JSP

上一篇讲解了,本篇分析如何通过Servlet、JSP快速渲染网页。有些小伙伴可能疑惑了:Servlet、JPS是多古老的技术了,我SpringBoot一梭哈,还在这卷啥呢?其实不然,SpringBoot也是基于Servlet封装的,通过编写简单的Servlet,认识基本原理,后续可以更好地理解SpringBoot,同时也了解Java Web发展历程。

2025-04-15 08:41:53 661

原创 Flutter 打包APK的几种方式

Flutter打包不同于RN,Flutter可以在Android Studio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式。

2025-03-31 08:32:17 2795

原创 当上小组长的第3天,我裁掉了2年老员工

这周末和上上公司的小伙伴小酌一杯,获悉了两则消息,一则好消息,一则坏消息。好消息是他晋升了,当了个小组长,管了4个人。坏消息是他需要优化掉组内一个人。征得本人同意,本文以他的视角来回顾这个魔幻的一周。

2025-03-31 08:31:34 932

原创 Look My Eyes 最新IDEA快速搭建Java Web工程的两种方式

用三张图说明:我们手机上的App各式各样,他们的共同点之一是随时能够刷新内容,靠的就是每个App都接上了互联网,可以从网上获取最新内容。对应到代码术语里的是:前端<—>服务端交互。当前最常用的交互协议是TCP/IP,使用的应用层协议是HTTP协议,如下:前端作为Http Client,服务端作为Http Server,共同为用户提供服务。继续演变如下图:客户端引入Http SDK,服务端引用Http SDK,通信交由该SDK负责。

2025-03-31 08:30:42 652

原创 有点尬[特殊字符],产品、测试、开发在群里互喷、甩锅了,最后DeepSeek来裁决

有朋友分享了他们公司的瓜,有点搞笑,又有点心酸。

2025-02-20 08:07:43 694

原创 做了违背祖训的决定,开启全栈修炼之路

拧螺丝是门技术活,怎么把多个螺丝组装成产品更是个考验。。平时的学习、工作过程中你可能会关注、接触、实践一些领域。如果说每个领域是个螺丝,那么我们这个系列文章的目的就一起将螺丝装配成产品。

2025-02-17 08:20:23 349

原创 同学聚会,是我不配?

初八就回城搬砖了,有位老哥跟我吐槽了他过年期间参与同学会的事,整理如下,看读者们是否也有相似的境遇。

2025-02-07 22:20:16 558

原创 30岁的程序媛,升值加薪与我无缘

上篇讲述了一位老哥的10年搬砖历程,有位小姐姐看了之后比较有感触,希望我能将她的故事也讲讲,看看能否有共鸣的朋友。

2025-01-20 08:08:36 801

原创 不容易,35岁的我还在小公司苟且偷生

前几天和前同事闲时聚餐,约了两个月的小聚终于达成了,程序员行业聚少离多,所幸大家的发量还坚挺着。期间不可避免地聊到了自己的公司、行业状况以及对未来的看法,几杯老酒之后,大家畅所欲言,其中一位老哥侃起了他的职业生涯,既坎坷又无奈,饭后想起来挺有代表性的,征得他同意故记录在此。以下是老哥的历程。

2025-01-09 08:07:17 650

原创 2025年,给想要入行程序员的同学一些科普

如上俩图,一个是iphone的桌面,另一个是windows的桌面,他们上面有很多图标(常见的QQ、微信等),我们点击去就是打开了一个软件。通俗的叫法是软件,潮流点的称呼是应用,专业点的名称是可执行程序在说跨端之前先说说当今最常使用的操作系统有哪些。桌面端就是我们平时使用的PC(台式机、笔记本电脑):Windows:由微软公司开发,是全球使用最广泛的操作系统之一,适用于个人电脑和企业环境,拥有大量的软件支持。

2024-12-30 08:25:18 883

原创 HarmonyOS Next(纯血鸿蒙)它到底像谁

后续再也没有写关于鸿蒙的文章。没错,我确实入坑了鸿蒙,并且成功上架了几款App和元服务,虽然当前的用户量还比较少,但鸿蒙开发的整体流程已然蹚了一遍,是时候来做一些总结了。本篇从应用开发的角度聊聊鸿蒙它像谁?它有哪些不一样的特征?开发者怎么快速入门?

2024-09-25 08:19:24 8309 4

原创 少年,且听我细说 EventLoop/宏任务/微任务是咋玩的?

上篇文章分析了Promise的重要性以及使用上容易犯错的点,本篇将重点分析EventLoop/宏任务/微任务在浏览器和Node.js里的表现。

2024-06-04 08:20:29 726

原创 论Promise在前端江湖的地位及作用

上篇文章阐述了并发/并行、单线程/多线程、同步/异步等概念,这篇将会分析Promise的江湖地位。

2024-05-17 07:44:33 962

原创 先撸清楚:并发/并行、单线程/多线程、同步/异步

在编码的过程中经常会遇到并发/并行、同步/异步、单线程/多线程等术语,在分析JS setTimeout/Promise之前先把这些概念厘清。

2024-04-18 08:27:53 2212 1

原创 Android Studio Gradle Windows下隐藏的编译的坑

最近重拾了一个之前的Android项目,发现Gradle死活都无法编译成功。明明前阵子都是好的,代码都没变,Android Studio配置都没变,咋就不行了呢,百思不得其解。

2024-04-10 22:55:51 960

原创 不吹不黑,辩证看待开发者是否需要入坑鸿蒙

自打华为2019年发布鸿蒙操作系统以来,网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android,更激烈的讨论随之而来。本文没有宏大的叙事,只有基于现实的考量。

2024-01-01 22:12:45 2628

原创 Android使用Hilt依赖注入,让人看不懂你代码

以手机为例,要组装一台手机,我们需要哪些部件呢?从宏观上分类:软件+硬件。由此我们可以说:手机依赖了软件和硬件。//打电话//软件//硬件FishPhone 依赖了两个对象:分别是Software和Hardware。Software和Hardware是FishPhone的依赖(项)。

2023-10-30 00:57:37 3379 2

原创 中秋月圆之夜,我与协程的泄漏做斗争

人有悲欢离合,月有阴晴圆缺,此事古难全——苏东坡人有悲欢离合,月有阴晴圆缺,你的协程是否泄漏了?——小鱼人。

2023-09-26 22:44:49 563

原创 Java切换到Kotlin,Crash率上升了?

最近对一个Java写的老项目进行了部分重构,测试过程中波澜不惊,顺利上线后几天通过APM平台查看发现Crash率上升了,查看堆栈定位到NPE类型的Crash,大部分发生在Java调用Kotlin的函数里,本篇将会分析具体的场景以及规避方式。

2023-09-03 18:26:03 939

原创 匿名内部类/Lambda Java和Kotlin谁会导致内存泄漏?

将函数类型当做形参或返回值的函数称为高阶函数。高阶函数在Kotlin里无处不在,是Kotlin简洁写法的一大利器。长生命周期的对象持有短生命周期的对象,导致短生命周期的对象在生命周期结束后没有被及时回收,导致内存无法复用,最终泄漏合理地释放对短生命周期对象的引用代码基本都在正文里,此处就不贴github链接了,有疑惑请评论/私信后续将会继续输出APT/AGP等全系列流程文章,敬请期待。

2023-07-18 00:19:45 732

原创 关于Jetpack DataStore(Proto)的六点疑问

fun ts() {猜猜是否能编过?答案是否定的。因为Kotlin是强类型语言,声明的str为String类型,那么就只能接收String或是子类的值。引申到SharedPreferences和DataStore存储里。sp?. edit {往SP里写入Int类型数据和String类型数据。这里编译会有问题吗?答案是否定的。运行会有问题吗?答案是肯定的。

2023-06-30 09:51:56 309

原创 关于Jetpack DataStore(Preferences)的八点疑问

DataStore是Android上一种轻量级存储方案,依据官方教程很容易就写出简易的Demo。本篇主要是分析关于DataStore(Preferences)使用过程中的一些问题,通过问题寻找本质,反过来能更好地指导我们合理使用DataStore。

2023-05-22 10:24:55 1023

原创 Fragment 要你何用?2.0版本

在之前的文章里有分析过Activity、Fragment、View之间的关联,也简单分析了Fragment的原理。

2023-05-20 09:24:04 2162

原创 这一次,让Kotlin Flow 操作符真正好用起来

Kotlin Flow 如此受欢迎大部分归功于其丰富、简洁的操作符,巧妙使用Flow操作符可以大大简化我们的程序结构,提升可读性与可维护性。然而,虽然好用,但有些操作符不太好理解,可惜的是网上大部分文章只是简单介绍其使用,并没有梳理各个操作符的关系以及引入的缘由,本篇将通过关键原理与使用场景串联大部分操作符,以期达到举一反三的效果。

2023-04-28 11:55:04 1047 1

原创 当,Kotlin Flow与Channel相逢

之前的文章已经分析了Flow的相关原理与简单使用,Flow之所以用起来香,Flow便捷的操作符功不可没,而想要熟练使用更复杂的操作符,那么需要厘清Flow和Channel的关系。

2023-04-21 07:56:16 737 2

原创 来吧!接受Kotlin 协程--线程池的7个灵魂拷问

当时偏重于整体原理,对于细节之处并没有过多的着墨,后来在实际的使用过程中遇到了些问题,也引发了一些思考,故记录之。

2023-03-06 08:18:24 1245

sdfsdfsdfsdf

sdfsdfsd

2022-09-15

空空如也

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

TA关注的人

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