- 博客(303)
- 收藏
- 关注
原创 20.常用命令
Linux 是基于 Unix 系统开发的开源操作系统内核,目前常见的发行版本 Ubuntu、RedHat、CentOS 等,互联网服务器一般都部署的是 Linux 系统。因为使用场景不同,Windows 系统更适合个人日常办公,相对于 Windows 系统的复杂图形化界面而言,Linux 一般只在远程服务器上部署纯命令行界面,所以熟悉 Linux 系统的常用命令比较重要。
2024-08-23 10:51:19
15
原创 19. fork
之前的小节中介绍了操作系统的进程,操作系统中有个创建进程的重要方法就是 fork 函数,当需要执行和本进程相关的独立任务时,一般需要创建一个有血缘关系的子进程。
2024-08-23 10:48:20
16
原创 18. 死锁
操作系统中的很多资源都是多个进程或者多个线程之间共享的,例如同一个文件,可能同时会被多个程序读写。或者是一个内存变量,存在同时被多个线程修改的可能。如果资源能够不能以合理的顺序访问就可能产生冲突,这种竞争资源的现象可能造成阻塞,引发死锁。死锁(DeadLock)可以发生在多个进程之间或者是多个线程之间,本文以线程作为观察对象。那么死锁的定义就是多个线程竞争同一个资源造成的僵局,如果没有外力推动,这种僵局会一直持续下去,线程的状态都无法继续推进。
2024-08-16 15:28:31
29
原创 Linux中以单容器部署Nginx+ASP.NET Core
强烈推荐在生产环境中使用反向代理服务器转发请求到Kestrel Http服务器,本文将会实践将Nginx --->ASP.NET Core 部署架构容器化的过程。
2024-08-14 11:09:42
1315
原创 17.进程间通信
上一小结谈到了操作系统中进程和线程的区别,其中进程之间、线程之间的通信方式不同,进程通信(Inter-Process Communication,简称 IPC)是指不同进程之间交换信息。操作系统中时刻都在进行 IPC,例如微信读取本地的文件,就是微信程序和文件系统进程交互的过程。
2024-08-14 10:47:33
26
原创 16. 进程和线程
从宏观的角度来看,操作系统就是我们日常使用的 Windows、MacOS、Linux 这类的系统,但是这种直观的用户交互界面只是操作系统的一小部分功能,操作系统如何决定系统的资源调度、如何处理内存的分配以及如何管理网络和文件系统,这些都是隐藏在用户界面之下的内容。从课程设计的角度来看,操作系统(Operating System)是计算机专业的核心专业课程,所以可以用来衡量候选人的计算机基本功。对于后端程序员,如果是使用 Java 语言,Java 中的多线程会涉及到进程和线程的关系,这是操作系统中的概念。
2024-08-13 14:31:38
28
原创 30. 自定义类 Hibernate 框架的基本过程
不要一味地迷信,要善于质疑,善于打破。这应该是我们在学习框架时应该保持的心态。Hibernate 是所有 JDBC 框架中封装最高的、使用起来最便利的框架之一。对于初学者而言,要么在感叹它的神奇,要么敬畏它的存在。但是,作为一个真正的开发者,应该有破有立的想法。本节课程试图通过一个简易的 JDBC 框架的实现流程描述,让大家更清晰地了解 Hibernate 框架的设计过程。
2024-08-13 14:27:30
676
原创 29. Hibernate 面试官必须出的面试题
本节课先和大家聊聊面试过程中需要注意的事项,再和大家一起讲解 Hibernate 中常见的面试题。
2024-08-13 14:24:21
581
原创 28. Hibernate 中的常见坑
框架方便了开发者的工作,但是运行速度并没有原生的快。原生开发是直接告诉 JVM 要做什么,框架则是曲线救国,JVM 需要绕些圈子才明白开发者的意图。显然,框架是要以更多性能消耗、运行速度作为代价的。本节课,和大家聊一聊使用 Hibernate 中可能遇到的坑。避开这些坑,真正享受 Hibernate 带给开发者的福利。
2024-08-12 17:02:49
680
原创 27. Hibernate 自动进行数据封装
Hibernate 可以构建各种复杂的 SQL 语句,但其本质都是反射机制结合映射关系完成的。框架也仅是一款程序产品,人为编写的产物。要相信,只要你愿意,你完全可以实现自己的 JDBC 框架。本节课和大家继续聊聊 Hibernate 是如何自动封装数据的。
2024-08-12 17:00:39
595
原创 15. 计算机网络综合题目
虽然计算机网络是后端开发过程中必须要接触的模块,但是计算机网络相关的面试题大多都偏向理论,为了更好的理解在开发过程中计算机网络交互的作用,本小节会介绍一道网络相关的高频整合题目。
2024-08-06 11:04:47
226
原创 26. Hibernate 如何自动生成 SQL 语句
本节和大家一起聊聊 Hibernate 是如何自动生成 SQL 语句的。反射在框架中的重要性;元数据描述对 Hibernate 的重要性。
2024-08-06 10:45:01
423
原创 25. Hibernate 性能之隔离机制
事务有 4 大特性,其隔离性尤其重要,没有良好的隔离性就相当于你可以随意出入邻居家。不能保证数据的完整性。每一种隔离机制都有自己使用的真实场景。本节探讨一下 Hibernate 中是如何进行隔离设置的。Hibernate 中如何设置隔离级别;悲观锁和乐观锁的比较。
2024-08-05 14:45:00
826
原创 14. 计算机网络HTTPS协议(二)
上一章节中我们主要就 HTTPS 协议的前置知识进行介绍,下面会继续介绍 HTTPS 的通信过程以及抛出一些常见问题的探讨。因为候选人准备面试的时间和精力是比较有限的,我们在学习的过程要抓住重点,如果感觉对于细节缺乏了解,可以通过维基百科和查阅 StackOverflow 等方式进行自行补充。
2024-08-05 10:29:19
142
原创 13. 计算机网络HTTPS协议(一)
在上一章节中我们介绍了 HTTP 协议相关的面试题目,作为 HTTP 协议的扩展,HTTPS 协议也经常被面试官提起。因为对于大部分的前端、后端开发者,都接触不到 HTTPS 协议的开发场景,因为我们往往只关注请求路径后缀,例如关注 URL:,而非路径全称,所以考察 HTTPS 协议也是对候选人的知识深度的考验。
2024-08-02 10:40:03
97
原创 23. Hibernate 性能之缓存与缓存算法
本节和大家一起聊聊查询缓存和缓存算法。对于缓存的使用要有针对性,不能滥用缓存,因为缓存本身是需要占用系统资源的,缓存的维护也需要消耗系统性能。所以,这个世界是平衡的!如何掌握平衡,多用心感悟!什么是查询缓存,如何使用查询缓存;常用的缓存算法有哪些。
2024-08-02 10:35:36
723
原创 12. 计算机网络TCP四次挥手
上一章节分析了 TCP 建立连接的过程,既然有建立连接,对应的也有断开连接。数据传输完成之后,客户端和服务器端保持通信状态会占用资源开销,所以需要断开连接,TCP 协议中断开连接也被称为 TCP 四次挥手。
2024-08-01 14:48:55
100
原创 22. Hibernate 性能之缓存
本节和大家一起聊聊性能优化方案之:缓存。什么是缓存,缓存的作用;HIbernate 中的缓存级别;如何使用缓存。
2024-08-01 14:47:26
1270
原创 11. 计算机网络TCP三次握手
TCP 和 UDP 协议是计算机网络的重要组成协议,两者经常被拿来比较,其中 TCP 协议往往会被面试官深入考察。本节课程将和大家一起学习传输层的 TCP 和 UDP 协议。通过本节课程,你会了解到 TCP 和 UDP 协议的区别,重点是要掌握 TCP 协议的三次握手过程以及三次握手的必要性。
2024-07-31 10:49:49
78
原创 21. Hibernate 性能之数据库连接池
从本节课程开始,和大家一起聊聊Hibernate中的性能问题,面对开发者,Hibernate表现出卓越的数据库操作能力。使用框架最大的优势就是带来操作的快捷、便利。同时,因为框架的封装性,其性能往往比原生开发要慢。所以了解、掌握Hibernate的性能调优方案是提升性能的不二法则。了解其性能优化方案,编写最好的性能优化策略,对每一个开发者而言,都是一个必选题。什么是数据库连接池;HIbernate 中如何使用数据库连接池。
2024-07-31 10:46:40
1327
原创 10. 计算机网络HTTP协议
无论是作为后端开发、前端开发、测试开发程序员或者是运维人员,在面试过程中,大概率都会被问到 HTTP 协议相关题目。因为伴随着 2010 年之后移动互联网在全世界的高速发展,各种各样的浏览器(Chrome、FireFox、Safari 等)层出不穷,也诞生了诸多服务端开发的语言(例如 Golang 语言),浏览器和服务端之间的交互是不可避免的,我们对于不同的浏览器和不同的服务端,总不能每次都创建一种新的交互协议,所以需要确定统一的协议规范,也就是本文的 HTTP 协议。什么是 HTTP 报文?
2024-07-30 15:00:00
171
原创 20. Hibernate 中的 Criteria 查询
今天给大家介绍一个绝对纯正的OOPCriteria查询。什么是 Criteria 查询Criteria 实现复杂查询;
2024-07-30 10:43:04
1027
原创 09. 计算机网络分层
互联网行业因为广为人知的高薪以及相对于传统工科行业更多的发展机会,最近几年涌入了越来越多的非计算机专业毕业的从业人员,校招 / 社招面试的时候,候选人往往也会被分为两种:科班和非科班,互联网科班一般特指大学就读计算机科学与技术或者软件专业,非科班则包含其他各大传统工科甚至是文科专业。某些大厂在招聘后端开发工程师时会严格要求科班背景,因为对于非科班的同学,一般都能胜任计算机网络应用层以上的工作(例如编写一个低并发的后台管理系统),但是对于计算机底层的知识往往是一片盲区。
2024-07-29 15:00:00
89
原创 19. Hibernate 查询语言(HQL)
本节课程和大家一起学习Hibernate中的HQLHibernate查询语言)。HQL 基础语法;HQL 查询的具体实现。
2024-07-29 10:51:46
1152
原创 08. Java 事务
MySQL 中事务(Transaction)的定义是对于一个或者多个 SQL 语句,要么全部执行成功,要么一个都不执行成功。在实际应用场景中,有很多需要事务的场景,例如在电商网站,顾客下单、付款以及商品扣减库存就应该在一个事务中执行,如果不能保证事务特性,就可能出现用户已经下单并且成功付款,但是在扣减库存逻辑出现异常,发货失败的情况。所以事务中的某个环节出现异常,之前执行的所有 SQL 语句都应该回滚。
2024-07-26 18:06:58
65
原创 17. Hibernate 双向多对多关联映射
通过本节课程的学习,你将发现关联对象之间的微妙关系。相信这种关系对你更深入地认识HIbernate有很大的帮助。多对多双向关联映射中哪一方是关系维系者;级联操作与关系维系者。
2024-07-26 10:17:09
660
原创 07. Java 索引
对于常见的应用系统,读的流量远远高于写的流量,比如电商网站,商家在数据库中写入商品的价格和库存之后,访问页面的顾客会产生大部分的读流量。所以常见的现象是当应用系统的流量逐渐增加时,写操作不会成为数据库的性能瓶颈,但是复杂查询语句消耗的查询时间会越来越长,读操作更容易触碰数据库的查询性能瓶颈。MySQL 自身为了优化查询效率,更快的查询目标集合,定义了索引,也就是常用的 "键"(Key),MySQL 中的索引是单独存储在磁盘上的数据结构,使用索引可以快速查询满足特定条件的记录。
2024-07-25 10:57:46
636
原创 16. Hibernate 双向多对多关联映射
通过本节课程的学习,你将发现关联对象之间的微妙关系。相信这种关系对你更深入地认识HIbernate有很大的帮助。多对多双向关联映射中哪一方是关系维系者;级联操作与关系维系者。
2024-07-25 10:47:32
689
原创 06. Java 左右连接
在之前的章节谈到了数据库设计范式,遵循范式之后,数据会被组织成不同的结构分散存储在不同的表内,例如所有学生会被存储在一张学生表,所有学生的成绩会被存储在一张成绩表,如果我们同时需要两张表的数据,就需要计算两张表间数据的映射关系,MySQL 数据库中最常用的方法就是连接。
2024-07-24 11:06:59
63
原创 14. Hibernate 一对多双向关联映射
本节课程和大家一起聊聊一对多关联映射。通过本节课程,你将了解到:如何实现一对多关联映射;如何实现双向一对多关联映射;关联映射中的级联操作。
2024-07-24 10:59:17
1071
原创 05. Java 三大范式
在面向对象语言中涉及到诸多的设计模式,例如单例模式、适配器模式,设计模式的存在是为了让系统中的代码逻辑更加清晰,帮助开发者建立更加健壮的系统,同时满足易修改特性和易扩展特性。数据库设计时也存在类似设计模式的通用规范,被称为数据库范式。满足范式的数据库是简洁的,表与表之间的关系也清晰且明确,不会存储过多的冗余信息,在增删改查的时候也可以避免冗余的操作。
2024-07-23 10:53:52
242
原创 12. Hibernate 模板设计模式
如何运用模板设计模式重构 Hibernate 操作流程;持久化对象与序列化接口;OOP中有一个编码原则 :写仅写一次。翻译过来就是,不要重复,要重用。答案是:使用模板设计模式进一步封装Hibernate的操作。在真实项目中,Hibernate仅仅只是完成项目中的一部分工作,需要和其它,如Spring等框架联合工作,一起承担整体项目的开发。Spring框架中就提供的有Hibernate模板对象。一个常规的、频繁的操作代码中,大部分代码不需要变动,只有小部分代码需要根据需求变动。
2024-07-22 14:15:06
1297
原创 .NET单元测试使用AutoFixture按需填充的方法总结
是一个.NET库,旨在简化单元测试中的数据设置过程。通过自动生成测试数据,它帮助开发者减少测试代码的编写量,使得单元测试更加简洁、易读和易维护。AutoFixture可以用于任何.NET测试框架,如xUnit、NUnit或MSTest。如果直接使用生成的User对象,他会默认给你填充Id为随机整数,Name和Email为一串Guid,显然这里的邮箱地址生成就不能满足要求,并不是一个有效的邮箱格式那么如何让AutoFixture按需生成有效的测试数据呢?
2024-07-19 15:30:59
781
原创 04. Java 数据类型
MySQL 中支持的数据类型从整体上可以分为数值类型和日期时间类型,其中数值类型可以分为整数类型、浮点数类型、定点数类型和位类型。整数类型包含常见的 SMALLINT、MEDIUMINT、INT、BIGINT,浮点数类型主要是 FLOAT 单精度浮点数类型和 DOUBLE 双精度浮点数类型。日期类型也有 DATE、TIME、YEAR、DATETIME、TIMESTAMP 类型。关于整数类型和浮点数类型存在一些比较常见的误区,经常被面试官考察。
2024-07-19 10:15:33
61
html5 canvas龙卷风动画特效
2024-07-12
前端开发实现纯CSS3制作红色下拉导航菜单代码
2024-04-15
iTour chat translation - 网页视频自动翻译插件
2024-01-08
vue分页插件-vue.js分页插件下载
2024-01-08
Ae/Pr插件Dehancer Pro v2.1.0电影质感胶片效果工具
2024-01-08
Sequelize 插入数据的时候没有自动自增id?
2024-04-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人