自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 draw.io使用心得

例如,在绘制复杂的图形时,可能需要花费一些时间来熟悉和掌握各种功能和操作。此外,虽然draw.io提供了大量的模板和符号库,但有时仍然难以满足一些特殊需求,这时就需要用户具备一定的绘图和设计能力。总的来说,draw.io是一款非常优秀的在线绘图工具,无论是对于专业人士还是普通用户来说,都是值得尝试和使用的。通过不断的学习和实践,我相信我会更好地利用draw.io来绘制出更加专业和美观的图形。draw.io是一款功能强大的在线绘图工具,无论是对于专业人士还是普通用户,都能提供优秀的绘图体验。

2024-04-22 18:25:02 498

原创 DDD:领域驱动设计的深度解析

DDD作为一种以领域为核心的软件开发方法,为现代企业的软件开发提供了有力的支持。通过深入理解DDD的核心思想和实践方法,并在实际项目中加以应用,我们可以设计出更符合业务需求的软件系统,提高软件的质量和可维护性。同时,DDD也强调了与领域专家的紧密合作,有助于促进业务与技术之间的融合,推动企业的数字化转型。

2024-04-22 18:23:22 650

原创 深入解析Spring与Spring Boot的核心区别

它集成了大量的Spring生态系统组件,包括Spring MVC、Spring Data、Spring Security等,使得开发人员可以更加便捷地使用这些组件来构建Web应用、数据访问层和安全控制等功能。它基于Spring 4.0设计,不仅继承了Spring框架原有的优秀特性,还通过引入自动配置、约定优于配置等理念,进一步简化了Spring应用的开发流程。Spring Boot提供了大量的默认配置和起步依赖,使得开发人员可以快速构建和启动Spring应用,无需再手动配置繁琐的细节。

2024-04-11 17:44:41 372

原创 Web3:下一代互联网的崛起与革命性展望

随着科技的飞速发展,互联网正在经历一场前所未有的变革。Web3,作为互联网的下一代,正以其独特的魅力和潜力,引领着这场革命性的浪潮。本文旨在深入探讨Web3的概念、特点以及对未来的展望,为读者呈现一个全面而深入的Web3世界。

2024-04-11 17:43:39 1171

原创 系统设计之订单系统中如何防止商品超卖

在实际压测中,你可能需要使用专门的压测工具(如Apache JMeter、Gatling等),这些工具可以提供更精细的控制、更详细的统计和报告功能。综上所述,防止商品超卖需要综合运用多种策略和技术手段,从数据同步、锁机制、预警机制、限购策略等多个方面入手,确保订单系统的稳定性和准确性。当然,这个示例非常基础,并且在生产环境中你可能需要更复杂的策略,比如使用分布式锁、消息队列、缓存等来提高性能和可靠性。当然这只是简答的一套流程,具体到我们的应用系统中,还是要借助框架来写这些代码,不然就太丑了。

2024-04-08 18:15:37 914

原创 为什么说基于贫血模型的MVC架构违背OOP

我们大部分的业务开发都是MVC架构的,但是我们平时使用的基于贫血模型的MVC架构它对吗?为了搞清楚这个问题,我们先来理清楚几个概念。

2024-04-08 18:13:41 790

原创 计算机视觉入门

计算机视觉,作为人工智能的一个重要分支,旨在通过计算机模拟人类的视觉系统,使机器能够识别、理解并处理图像和视频中的信息。随着深度学习技术的迅猛发展,计算机视觉在各个领域的应用也越来越广泛。本文将带领读者初步了解计算机视觉的基本概念、主要技术和应用领域,为入门者提供一个清晰的起点。

2024-04-03 13:02:56 653

原创 WebKit结构简介

WebKit是一个开源的浏览器引擎,它负责在网页浏览器中渲染网页内容。作为现代浏览器的核心组件之一,WebKit以其高效、稳定和灵活的特性,在浏览器市场中占据了重要地位。本文将简要介绍WebKit的结构和工作原理。

2024-04-03 13:02:44 501

原创 机器学习:概念、步骤、分类与实践

在机器学习中,我们通常将数据集分为训练集和测试集,训练集用于训练模型,测试集用于评估模型的性能。本文将介绍机器学习的基本概念、步骤、分类以及实践应用,帮助读者更好地理解和应用机器学习技术。通过掌握机器学习的基本概念、步骤、分类和实践应用,我们可以更好地利用机器学习技术解决实际问题,推动人工智能技术的发展和应用。机器学习的实践应用广泛,包括图像识别、语音识别、自然语言处理、推荐系统等领域。机器学习的基本步骤包括数据收集、数据预处理、特征提取、模型选择、模型训练、模型评估以及模型应用等。

2024-04-01 12:05:01 758

原创 设计原则之多用组合少用继承

在面向对象的设计中,通常推荐使用组合和接口来实现代码的复用和扩展性,而不是过度依赖继承。(继承):如果子类确实是父类的一种特殊类型,即子类与父类之间存在一种“是一个”的关系,那么使用继承是合适的。:如果你想要复用某个对象的功能,而不是整个类的行为,或者这些功能在不同的上下文中可以有不同的实现,那么组合更合适。(组合):如果一个类包含另一个类的对象作为它的成员,即存在一种“有一个”的关系,那么使用组合是更合适的。:组合是动态的,你可以在运行时更改对象的组合方式,从而改变系统的行为。

2024-04-01 12:04:45 1013 1

原创 设计模式之基于接口而非实现的设计原则

首先,基于接口的设计原则有助于实现软件的可扩展性。当软件需要与外部系统或组件进行交互时,通过定义明确的接口,可以使得软件能够更容易地集成新的系统或组件,而无需修改原有的代码。通过定义统一的接口标准,可以使得不同的系统或组件能够以一种一致的方式进行交互,从而实现跨平台、跨语言的互操作性。总之,基于接口而非实现的设计原则是一种重要的软件设计思想,它有助于提高软件的可扩展性、可维护性和灵活性。基于接口而非实现的设计原则是一种重要的软件设计原则,它强调在设计和开发软件时,应该更多地关注接口而非具体的实现细节。

2024-03-28 20:45:54 1061

原创 node.js常用命令

Node.js 提供了许多常用的命令行工具,这些工具对于开发、测试、部署和管理 Node.js 应用程序非常有用。这些只是 Node.js 生态系统中常用命令和工具的一部分。(Node Package Manager):Node.js 的包管理工具,用于安装、更新、删除和管理项目的依赖。(Node Version Manager):用于在同一台机器上安装和管理多个版本的 Node.js。:一个用于监视应用中的任何文件更改并自动重启服务器的实用程序。或全局安装的包中的命令。它不需要全局安装任何包即可使用。

2024-03-28 20:44:14 878

原创 接口VS抽象类,我该用哪个?

如果你需要定义一组方法的规范,并希望类可以实现多个这样的规范,那么使用接口。抽象类通常用于表示具有一些共同特性的类的层次结构,它的主要目的是为了方便子类的继承和实现。通过继承抽象类,子类可以继承抽象类中的属性和方法,同时也可以实现抽象类中的抽象方法。接口可以被看作是一种契约,它规定了实现该接口的类必须提供这些方法的实现。在Java中,接口(Interface)和抽象类(Abstract Class)都是实现多态性的重要工具,但它们的使用场景和目的有所不同。

2024-03-19 15:50:15 480 1

原创 机器学习是什么

与传统的自然语言处理方式不同,ChatGPT并不依赖数据库或逻辑推理,而是采用机器学习的方式,通过大量的数据进行训练,使其具备从数据中学习并自动改进的能力。因此,ChatGPT可以处理更广泛的场景,不仅限于文本对答,还可以与搜索、办公软件等结合,甚至在某些领域如编程和学术教育领域,其功能几乎是通用的。此外,机器学习模型的可解释性也是一个重要的问题,有时我们难以理解模型是如何做出决策的。机器学习,这一词汇在当今的科技领域中可谓炙手可热,其影响深远,不仅改变了科学研究的方式,也推动了社会的快速发展。

2024-03-19 10:55:05 772 1

原创 前端框架的演进之路:从静态网页到现代交互体验的探索

在互联网的初期,网页主要由HTML、CSS和少量的JavaScript组成,这些网页是静态的,没有复杂的交互和动态内容。然而,随着项目规模的扩大和复杂度的增加,原生JavaScript的缺点也逐渐暴露出来,如代码冗余、可维护性差等。此外,随着人工智能和大数据技术的发展,前端框架也将融入更多的智能化和个性化功能,为用户提供更加智能和个性化的体验。随着互联网的快速发展,前端技术也在不断进步,前端框架作为前端开发的重要工具,经历了从简单到复杂、从单一到多元的演变过程。

2024-03-12 14:17:18 617 1

原创 Java基础之继承(对比C++/Python)

我们都知道Java是不支持多继承的,那有没有语言支持多继承呢?他们又是怎么做的呢?

2024-03-12 14:17:02 930 1

原创 设计模式之编程方法论

介绍一些编程方法论,其 中就包含面向对象(我们可以把它看成一种设计思想)、设计原则、设计模式、编程规范、 重构技巧。

2024-03-08 22:14:48 1073 1

原创 设计模式之如何评价代码的好坏:好的代码千篇一律,坏的代码花样百出

这些也都不是独立的评价标准,有些也是相辅相成的,比如可维护性好其实依赖于它的可读性和可扩展性,其实也就会发现,这个评价标准是比较主观的,能力好的工程师读代码的能力也相对水涨船高,能力弱一点的工程师,对有些特性不熟悉,代码可能看起来就会有些费劲;业务复杂的代码,可能写出来的就是难懂一些,以后我们学到具体的设计模式和设计原则的时候,再具体情况具体分析。评价代码的好坏需要从多个维度进行综合考虑。评价代码的好坏是一个复杂且多维度的任务,涉及代码的可读性、可维护性、性能、安全性等多个方面。

2024-03-08 22:13:14 383 1

原创 设计模式学习第一天:从入门到放弃还是到成神

此外,你还可以阅读《Head First 设计模式》等轻松易懂的书籍,它们通过生动的插图和有趣的案例来帮助你理解设计模式。它描述了在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的相互作用,以及它们各自的职责和协作方式。设计模式是在软件开发中常见的问题和解决方案的总结,它们提供了可重用的设计,帮助开发者提高代码的可读性、可维护性和可扩展性。总之,学习设计模式需要付出一定的努力和时间,但只要你坚持不懈地学习和实践,就一定能够掌握它们并提高自己的编程能力。

2024-03-07 07:44:25 359

原创 Java接口:解耦、规范与扩展性的关键

如何用组合+接口替代继承,避免继承导致代码的过度耦合和不必要的父类依赖

2024-02-03 22:33:57 1022 1

原创 Java Stream:让数据处理变得更简单、更高效

Java中的Stream是一种用于处理集合(数组、列表等)和其他数据源的元素序列的抽象。Stream API提供了一种声明性的编程风格,可以方便地对数据进行过滤、映射、聚合等操作。Stream可以理解为一种管道流,它允许你直接指定操作步骤,并在内部隐式地处理数据。与传统的集合操作相比,使用Stream可以更简洁、高效地处理集合。例如,排序、去重、聚合等操作都可以通过Stream方便地完成。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。

2024-02-01 23:10:43 1321 1

原创 Java之继承这把双刃剑

文章还是先介绍继承的基本概念和用法,熟悉的同学可以直接跳到后面看关于继承的思考。Java中的继承:基本概念和用法在面向对象编程(OOP)中,继承是一个非常重要的概念。它允许我们创建一个新的类,继承另一个类的属性和方法,从而避免代码重复,提高代码的复用性。在Java中,继承是通过使用“extends”关键字来实现的。

2024-01-28 22:36:00 971 1

原创 学习String的一些思考和总结

在匹配的时候,首先调用这个字符串的hashCode()方法得到一个哈希值,然后用这个哈希值来匹配所有的case。此外,需要注意的是,switch对String的支持是一种语法糖,在编译后的字节码文件中都会被还原成原生类型,并在相应位置插入了强制转换代码。通过理解基本概念、掌握主要方法、练习和巩固学习成果以及阅读文档和参考资料,你将能够更好地掌握String类的用法,并提高自己的编程技能。以上是从Java对String的设计中学到的几点经验,这些经验对于我们设计自己的类和库具有重要的指导意义。

2024-01-23 21:06:35 914

原创 聊聊顿感力

对高敏感的人来说,对旁人的过度在乎,对世事的过度紧张,总是会压的人喘不过气来,从而陷入情绪的漩涡中,而顿感力恰恰是缓解这种情况最好的选择。就像《顿感力》一书中所说:顿感力是快速忘却不愉快的能力,是接受失败继续挑战的能力,是坦然面对流言的能力,更是对嫉妒与嘲讽心怀感激的能力。“顿感力”可直译为“迟钝的力量”,即从容面对生活中的挫折和伤痛,坚定地朝着自己的方向前进,也是一种“赢得美好生活的手段和智慧”。总之,提高顿感力需要不断地自我反省、学习和实践,需要持续的努力和耐心。让我们一起成长为一个自由的人。

2024-01-18 20:59:04 500 1

原创 Java编程之乱码

方法遍历所有可能的编码格式,并尝试使用每个编码格式解码给定的数据。如果解码成功,则返回正确的编码格式。乱码是我们编程中,特别是前后端对接时,服务器与数据库之间信息交流时容易遇到的问题,今天我们就来总结一下编码过程中遇到乱码问题的常规解决思路。另一种比较复杂,在错误解析的基础上进行了编码转换。我们可以用下面这个自己写的工具类尝试去还原原始文件的编码格式。再阐述我们的方法之前,我们先对常见的编码进行一个简单的介绍。方法来猜测正确的编码格式,并输出结果。在这个Java版本的程序中,我们使用。

2024-01-14 21:57:50 789 1

原创 Java命名规范规则、手册、工具

Java代码写的好不好,一个很关键的因素就是命名规范,就像我们高考答题一样,先不管答案的正确与否,字迹工整就有个印象分,比如英语作文不会的抄阅读理解,这种小技巧,必须有一个工整的字体作为支撑。而我们在职场,写过的代码千千万,如果没有一个好的命名规范,于自己而言,隔了一个月后,自己都看不懂自己写的代码了,代码的可读性不好。于团队而言,代码评审时,容易被喷。所以我们来看看一些好实践的规范。

2024-01-14 21:32:48 821

原创 设计模式之简单工厂模式

看过《笑傲江湖》的朋友大概会有这样一个感触,令狐冲虽然是大师兄,但是基本武功算不上厉害,开篇就被千里独行田伯光打的几乎还手之力,但是练习了独孤九剑之后,吊打淫贼田伯光。究其原因,还是他学会了不用死招式,每个招式都不是死搬硬套,而是学会了灵活组合。Java基础语法算是基本功,而设计模式堪比独孤九剑。

2023-12-05 18:59:37 886

原创 Java对象

在Java中,类是一种描述对象的模板或蓝图,它定义了对象的属性和方法。通过封装,对象的内部实现细节被隐藏,只有通过对象的公共接口(即方法)才能访问对象的属性和执行对象的操作。每个对象都是互相独立的,在内存中占据独立的内存地址,并且每个对象都具有自己的生命周期,当一个对象的生命周期结束时,对象就变成了垃圾,由Java虚拟机自带的垃圾回收机制处理,不能再被使用。Java对象是Java编程语言中的核心概念,它是通过类实例化得到的具体实体,具有属性和方法,可以看作现实世界中的事物、概念或抽象概念的表示。

2023-11-28 11:50:27 853

原创 Java list的几种遍历方式和优缺点

每种方式都有其适用的场景,你可以根据实际情况选择最适合的遍历方式。例如,如果你需要中断遍历并可能再次开始,那么使用Iterator可能更合适。如果你在Java 8或更高版本的环境中,并希望使用函数式编程风格,那么你可能会更倾向于使用Stream API。总体来说,不同的遍历方式有各自的优缺点,适用于不同的场景。可以根据实际需求选择合适的遍历方式。在Java中,有几种常见的遍历List的方式。

2023-11-20 23:38:21 88

空空如也

空空如也

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

TA关注的人

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