Fork me on GitHub
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 35 下一页
摘要: Spring Boot 中读取配置文件有以下 5 种方法: 使用 @Value 读取配置文件。 使用 @ConfigurationProperties 读取配置文件。 使用 Environment 读取配置文件。 使用 @PropertySource 读取配置文件。 使用原生方式读取配置文件。 它们 阅读全文
posted @ 2022-08-17 08:51 磊哥|www.javacn.site 阅读(1201) 评论(0) 推荐(5)
摘要: properties 和 yml 都是 Spring Boot 支持的两种配置文件,它们可以看作是 Spring Boot 在不同时期的两款“产品”。在 Spring Boot 时代已经不需要使用 XML 文件格式来配置项目了,取而代之的是 properties 或 yml 文件。 properti 阅读全文
posted @ 2022-08-15 08:43 磊哥|www.javacn.site 阅读(1310) 评论(0) 推荐(3)
摘要: IoC 和 DI 都是 Spring 框架中的重要概念,就像玫瑰花与爱情一样,IoC 和 DI 通常情况下也是成对出现的。那 IoC 和 DI 什么关系和区别呢?接下来,我们一起来看。 1.IoC 介绍 IoC 是 Inversion of Control 的缩写,翻译成中文是“控制反转”的意思,它 阅读全文
posted @ 2022-08-10 08:40 磊哥|www.javacn.site 阅读(1127) 评论(3) 推荐(1)
摘要: 在浏览器中输入 URL 之后,它会执行以下几个流程: 执行 DNS 域名解析; 封装 HTTP 请求数据包; 封装 TCP 请求数据包; 建立 TCP 连接(3 次握手); 参数从客户端传递到服务器端; 服务器端得到客户端参数之后,进行相应的业务处理,再将结果封装成 HTTP 包,返回给客户端; 服 阅读全文
posted @ 2022-08-08 09:18 磊哥|www.javacn.site 阅读(782) 评论(1) 推荐(2)
摘要: GET 和 POST 是 HTTP 请求中最常用的两种请求方法,在日常开发的 RESTful 接口中,都能看到它们的身影。而它们之间的区别,也是一道常见且经典的面试题,所以我们本文就来详细的聊聊。 HTTP 协议定义的方法类型总共有以下 10 种: PS:目前大部分的网站使用的都是 HTTP 1.1 阅读全文
posted @ 2022-08-03 08:43 磊哥|www.javacn.site 阅读(3571) 评论(3) 推荐(4)
摘要: 粘包和半包问题是数据传输中比较常见的问题,所谓的粘包问题是指数据在传输时,在一条消息中读取到了另一条消息的部分数据,这种现象就叫做粘包。 比如发送了两条消息,分别为“ABC”和“DEF”,那么正常情况下接收端也应该收到两条消息“ABC”和“DEF”,但接收端却收到的是“ABCD”,像这种情况就叫做粘 阅读全文
posted @ 2022-08-01 19:36 磊哥|www.javacn.site 阅读(2336) 评论(5) 推荐(3)
摘要: 相比于 UDP 来说,TCP 的主要特性是三个:有连接、可靠、面向数据流。所谓的“有连接”指的是 TCP 中的连接管理机制,也就是著名的三次握手和四次挥手,就像打电话一样,想要正常的交流,必须先和对方建立起连接,这就是所谓的“有连接”,而面向数据流的机制咱们以后再讲,我们今天要讨论的主题是:TCP 阅读全文
posted @ 2022-07-31 22:00 磊哥|www.javacn.site 阅读(905) 评论(0) 推荐(3)
摘要: TCP 三次握手是一道经典的面试题,它是指 TCP 在传递数据之前,需要进行 3 次交互才能正式建立起连接,并进行数据传递。 TCP 之所以需要 3 次握手是因为 TCP 双方都是全双工的。所谓全双工指的是,TCP 任何一端既是发送数据方,又是接收数据方,因此这就要求 TCP 通讯双方既要保证自己的 阅读全文
posted @ 2022-07-26 09:13 磊哥|www.javacn.site 阅读(1091) 评论(4) 推荐(4)
摘要: TCP/IP 包含四层模型,从上层往下层分别是:应用层、传输层、网络层、数据链路层。有些资料也会说 TCP/IP 是五层模型,所谓的五层模型指的是在数据链路层下面还有一个物理层,而作为软件工程师一般不需要关注物理层,所以通常我们说 TCP/IP 四层模型更多一些。 1.应用层 应用层的作用是负责应用 阅读全文
posted @ 2022-07-22 10:41 磊哥|www.javacn.site 阅读(694) 评论(0) 推荐(0)
摘要: 在 Java 中,跳转的实现方式有两种:请求转发和请求重定向,但二者是完全不同的,所以我们今天就来盘它。 请求转发和请求重定向主要区别,包含以下 5 点: 定义不同 跳转方不同 数据共享不同 最终 URL 地址不同 代码实现不同 接下来,我们一个一个来看。 1.定义不同 **请求转发(Forward 阅读全文
posted @ 2022-07-18 09:12 磊哥|www.javacn.site 阅读(769) 评论(1) 推荐(2)
摘要: 说到 HTTPS 相信大部分人都是不陌生,因为目前我们使用的绝大数网站都是基于 HTTPS 的,比如以下这些: 那么问题来了,他们为什么要使用 HTTPS 呢?HTTPS 有哪些过人之处呢? 1.HTTP 在说 HTTPS 之前,我们先要了解 HTTP,因为 HTTP 是 HTTPS 通讯的基础。 阅读全文
posted @ 2022-07-13 08:49 磊哥|www.javacn.site 阅读(639) 评论(0) 推荐(3)
摘要: HTTP(Hyper Text Transfer Protocol)超文本传输协议,下文简称 HTTP,它的作用是用于实现服务器端和客户端的数据传输的。它可以传输任意的数据类型,如文本、HTML、图片、文件、声音等类型。 简单来说,HTTP 的作用就像一个“快递”一样,用来承载客户端(浏览器)和服务 阅读全文
posted @ 2022-07-11 08:44 磊哥|www.javacn.site 阅读(225) 评论(0) 推荐(0)
摘要: 在 MySQL 中,最常见的去重方法有两个:使用 distinct 或使用 group by,那它们有什么区别呢?接下来我们一起来看。 1.创建测试数据 -- 创建测试表 drop table if exists pageview; create table pageview( id bigint 阅读全文
posted @ 2022-07-06 09:16 磊哥|www.javacn.site 阅读(307) 评论(0) 推荐(0)
摘要: 注意:本文以下内容基于 MySQL 5.7 InnoDB 数据库引擎。 1.group by 后面不能加 where 在 MySQL 中,所有的 SQL 查询语法要遵循以下语法顺序: select from where group by having order by limit 以上语法顺序是不能 阅读全文
posted @ 2022-07-06 08:43 磊哥|www.javacn.site 阅读(804) 评论(0) 推荐(0)
摘要: MySQL 事务隔离级别是为了解决并发事务互相干扰的问题的,MySQL 事务隔离级别总共有以下 4 种: READ UNCOMMITTED:读未提交。 READ COMMITTED:读已提交。 REPEATABLE READ:可重复读。 SERIALIZABLE:序列化。 1.四种事务隔离级别 1. 阅读全文
posted @ 2022-06-29 11:11 磊哥|www.javacn.site 阅读(11985) 评论(1) 推荐(6)
摘要: 为了验证 MySQL 中哪些情况下会导致索引失效,我们可以借助 explain 执行计划来分析索引失效的具体场景。 explain 使用如下,只需要在查询的 SQL 前面添加上 explain 关键字即可,如下图所示: 而以上查询结果的列中,我们最主要观察 key 这一列,key 这一列表示实际使用 阅读全文
posted @ 2022-06-27 10:51 磊哥|www.javacn.site 阅读(2839) 评论(4) 推荐(5)
摘要: 自增列可使用 auto_increment 来实现,当一个列被标识为 auto_increment 之后,在添加时如果不给此列设置任何值,或给此列设置 NULL 值时,那么它会使用自增的规则来填充此列。 PS:本文以下内容基于 MySQL InnoDB 数据库引擎。 默认情况下自增列的值为 1,每次 阅读全文
posted @ 2022-06-22 07:30 磊哥|www.javacn.site 阅读(1084) 评论(1) 推荐(1)
摘要: 在 MySQL 中,使用 truncate、delete 和 drop 都可以实现表删除,但它们 3 个的使用场景和执行效果完全不同,接下来我们来盘点一下。 truncate、delete、drop区别概述 它们 3 个的区别如下表所示: 区别点 drop truncate delete 执行速度 阅读全文
posted @ 2022-06-20 08:57 磊哥|www.javacn.site 阅读(972) 评论(1) 推荐(1)
摘要: 在 InnoDB 引擎中,每张表都会有一个特殊的索引“聚簇索引”,也被称之为聚集索引,它是用来存储行数据的。一般情况下,聚簇索引等同于主键索引,但这里有一个前提条件,那就是这张表需要有主键,只有有了主键,它才能有主键索引,有主键索引才能等于聚簇索引。 所以看到这里,我们应该明白一个道理:聚簇索引并不 阅读全文
posted @ 2022-06-16 08:39 磊哥|www.javacn.site 阅读(248) 评论(0) 推荐(0)
摘要: 在 MySQL 默认引擎 InnoDB 中,索引大致可分为两类:聚簇索引和非聚簇索引,它们的区别也是常见的面试题,所以我们今天就来盘它们。 聚簇索引 聚簇索引(Clustered Index)一般指的是主键索引(如果存在主键索引的话),聚簇索引也被称之为聚集索引。 聚簇索引在 InnoDB 中是使用 阅读全文
posted @ 2022-06-13 11:39 磊哥|www.javacn.site 阅读(1433) 评论(0) 推荐(2)
摘要: 在 MySQL 中,删除的方法总共有 3 种:delete、truncate、drop,而三者的用法和使用场景又完全不同,接下来我们具体来看。 1.delete detele 可用于删除表的部分或所有数据,它的使用语法如下: delete from table_name [where...] [or 阅读全文
posted @ 2022-06-08 09:34 磊哥|www.javacn.site 阅读(768) 评论(0) 推荐(1)
摘要: MySQL 有很多存储引擎(也叫数据引擎),所谓的存储引擎是指用于存储、处理和保护数据的核心服务。也就是存储引擎是数据库的底层软件组织。在 MySQL 中可以使用“show engines”来查询数据库的所有存储引擎,如下图所示: 在上述列表中,我们最常用的存储引擎有以下 3 种: InnoDB M 阅读全文
posted @ 2022-06-06 09:21 磊哥|www.javacn.site 阅读(928) 评论(0) 推荐(0)
摘要: HTTP 状态码是服务器端返回给客户端的响应状态码,根据(HTTP)状态码我们就能知道服务器端想要给客户端表达的具体含义,比如 200 就表示请求访问成功,500 就表示服务器端程序出错等。 HTTP 状态码可分为 5 大类: 1XX:消息状态码。 2XX:成功状态码。 3XX:重定向状态码。 4X 阅读全文
posted @ 2022-06-01 12:05 磊哥|www.javacn.site 阅读(419) 评论(0) 推荐(0)
摘要: 1.第一范式 第一范式规定表中的每个列都应该是不可分割的最小单元。比如以下表中的 address 字段就不是不可分割的最小单元,如下图所示: 其中 address 还可以拆分为国家和城市,如下图所示: 这样改造之后,上面的表就满足第一范式了。 2.第二范式 第二范式是在满足第一范式的基础上,规定表中 阅读全文
posted @ 2022-05-30 10:25 磊哥|www.javacn.site 阅读(668) 评论(0) 推荐(0)
摘要: 单例模式的实现方法有很多种,如饿汉模式、懒汉模式、静态内部类和枚举等,当面试官问到“为什么单例模式一定要加 volatile?”时,那么他指的是为什么懒汉模式中的私有变量要加 volatile? 懒汉模式指的是对象的创建是懒加载的方式,并不是在程序启动时就创建对象,而是第一次被真正使用时才创建对象。 阅读全文
posted @ 2022-05-26 09:44 磊哥|www.javacn.site 阅读(840) 评论(0) 推荐(3)
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 35 下一页