自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (1)
  • 收藏
  • 关注

原创 (四) BAT面试的20道高频数据库面试题

1.事务四大特性(ACID)原子性、一致性、隔离性、持久性?原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency)事务开始前和结束后,数据库的完整性约束没有被破坏。比如 A 向 B 转账,不可能 A 扣了钱,B 却没收到。隔离性(Isolation)隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事

2020-11-03 12:26:08 1053

原创 (三) SpringMVC之面试题22问

1、什么是 SpringMVC?答:SpringMVC 是 Spring 的一个模块,基于 MVC 的一个框架,无需中间整合层来整合。2、Spring MVC 的优点:答:它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是 java组件。并且和 Spring 提供的其他基础结构紧密集成。不依赖于 Servlet API(目标虽是如此,但是在实现的时候确实是依赖于 Servlet 的)可以任意使用各种视图技术,而不仅仅局限于 JSP支持各种请求资源的映射策略它应是易

2020-10-17 13:29:28 291

原创 (二) Spring之面试题29问

1、什么是Spring 框架?Spring 框架有哪些主要模块?Spring 框架是一个为Java 应用程序的开发提供了综合、广泛的基础性支持的Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成 Spring 框架,不必担心 Spring 是如何在后台进行工作的。Spring 框架至今已集成了20 多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、

2020-10-16 17:32:05 291

原创 (一) MyBatis之面试题36问

1、什么是MyBatis?答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。2、讲下MyBatis 的缓存答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在session 里面,默认就有,二级缓存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现Serializable 序列化接口(可用来保存对象的状态),可在它的映射文件中配置3、Mybatis 是如何进行分页的?分页插件的原理是什么?答:1)Mybatis 使用 RowBounds 对象进行

2020-10-15 12:18:11 284

原创 突击Redis数据库(七) 主从复制

一. 主从简介配置多台 Redis 服务器,以主机和备机的身份分开。主机数据更新后,根据配置和策略,自动同步到备机的master/salver 机制,Master 以写为主,Slave 以读为主,二者之间自动同步数据。目的:读写分离提高 Redis 性能;避免单点故障,容灾快速恢复原理:每次从机联通后,都会给主机发送 sync 指令,主机立刻进行存盘操作,发送 RDB 文件,给从机从机收到 RDB 文件后,进行全盘加载。之后每次主机的写操作,都会立刻发送给从机,从机执行相同的命令

2020-07-24 15:39:16 196

原创 突击Redis数据库(六) 事务与锁

一. 事务1. 事务简介:Redis 中事务,不同于传统的关系型数据库中的事务。Redis 中的事务指的是一个单独的隔离操作。Redis 的事务中的所有命令都会序列化、按顺序地执行且不会被其他客户端发送来的命令请求所打断。Redis 事务的主要作用是串联多个命令防止别的命令插队2. 事务常用命令:二. 事务的常见演示1. 简单组队:MULTI 开启组队,EXEC 依次执行队列中的命令。DISCARD 中途取消组队2. 组队失败:此种情况,语法符合规范,Redis 只有在执行

2020-07-24 15:11:39 147

原创 突击Redis数据库(五) Redis的持久化之RDB与AOF

一. 持久化Redis 主要是工作在内存中。内存本身就不是一个持久化设备,断电后数据会清空。所以 Redis 在工作过程中,如果发生了意外停电事故,如何尽可能减少数据丢失。二. RDB (Redis DataBase)1. RDB 简介:RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的 Snapshot 快照,它恢复时是将快照文件直接读到内存里。工作机制:每隔一段时间,就把内存中的数据保存到硬盘上的指定文件中。RDB 是默认开启的!Redis 会单独创建(for

2020-07-24 14:34:41 348

原创 突击Redis数据库(四) Redis 配置文件

注意:这是 Redis.conf 配置文件解析文章!一. 关键字解析1. .单位说明:1k 和 1kb 是不同的;单位的大小写不敏感!2. include:可以将公共的配置放入到一个公共的配置文件中,然后通过子配置文件引入父配置文件中的内容!将配置按照模块分开!3. network:4. general:5. 其他:总结:没啥事可以看一下在Linux系统上叫redis.conf 在 window叫redis.window.conf配置文件。...

2020-07-24 14:08:54 143

原创 突击Redis数据库(三) Redis 五种数据类型之基本操作命令

一. 数据库连接操作1. 基本命令:select <dbid>:切换数据库 (Redis一共有16个数据库,序号从0-15。),select 1:切换到 1 号库flushdb:清空当前库dbsize:查看数据库数据个数flushall:通杀全部库 (16个库都干掉)2. key的操作:Redis中的数据以键值对(key-value)为基本存储方式,其中 key 都是字符串。3. 常用五大数据类型:Redis 中的数据以键值对(key-value)为基本存储方式

2020-07-23 18:33:25 200

原创 突击Redis数据库(二) 在Linux下安装Redis数据库

一. 使用的安装环境1. VMware: 15.5.6 虚拟机2. CentOS 6 Linux版本3. Xftp 5 Windows与Linux传输文件的工具4. Redis-3.0.4.tar.gz Redis版本5. SmarTTY 5 在 Windows上操作Linnx二. 安装1. 将Redis压缩包移到Linux下(1)、将Redis的tar包上传到opt目录(2)、解压缩(3)、安装 gcc 环境我们需要将源码编译后再安装,因此需要安装c语言的编译环境

2020-07-23 16:20:53 191

原创 突击Redis数据库(一) 互联网为什么需要Redis?

一. 项目架构的演变与NoSql1. 互联网项目架构演变:2. 单机项目架构:3. Memcache 与 MySql垂直拆分:4. Memcache的出现: 随着访问量上升,大部分使用 MySQL 架构的网站在数据库上都开始出现性能问题,Web 程序不能再仅仅专注在功能上,同时也在追求性能。开始使用缓存技术缓解数据库压力,优化数据库的结构和索引。刚开始时比较流行的是通过文件缓存来缓解数据库压力,但是当访问量继续增大,文件缓存中的数据不能在多台 Web 服务器之间共享,大量的小文件 IO

2020-07-23 15:54:27 263

原创 MySql数据库优化篇(七) 关联查询优化、排序分组优化

一. 左外连接(left join)1. 建表:CREATE TABLE IF NOT EXISTS `class` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `card` INT(10) UNSIGNED NOT NULL,PRIMARY KEY (`id`));CREATE TABLE IF NOT EXISTS `book` (`bookid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `

2020-07-22 15:48:09 547

原创 MySql数据库优化篇(六) 索引优化

一. 索引失效的解决方式如不理解以下内容:请看Explain性能分析归纳总结1.全值匹配我最爱2.最佳左前缀法则 如果索引了多例,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过索引中的列。3.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描。4.存储引擎不能使用索引中范围条件右边的列5.尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select*6.mysql在使用不等于(!=或者<>)的时候无

2020-07-22 15:05:37 349

原创 MySql数据库优化篇(五) 批量插入数据脚本的实现

一. Sql语句1. 建表语句:CREATE TABLE `dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, ceo INT NULL , PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULTCHARSET=utf8;CREATE

2020-07-22 09:57:59 252

原创 MySql数据库优化篇(四) Explain性能分析归纳总结

一. Explain概念1. Explain定义:使用Explain关键字可以模拟优化器执行SQL查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的。分析你的查询语句或是表结构的性能瓶颈。2. 用法:Explain+SQL 语句。Explain 执行后返回如下图的信息:二. Explain执行后的关键字解读1. id列:id 相同,执行顺序由上至下。id 不同,如果是子查询,id 的序号会递增,id 值越大优先级越高,越先被执行。2. select_type

2020-07-22 09:05:49 210

原创 MySql数据库优化篇(三) 索引简介与使用

一. 索引是什么?1. 官方定义:MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构你可以简单理解为"排好序的快速查找数据结构"。2. 索引存储在哪?一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以文件形式存储在硬盘上。3. 常见索引:我们平时所说的索引,如果没有特别指明,都是指B树(多路搜索树,并不一定是二叉树)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都

2020-07-22 08:01:02 152

原创 MySql数据库优化篇(二) 查询流程与存储引擎

一. MySql数据库的查询流程1. mysql 的查询流程大致是:1. mysql 客户端通过协议与 mysql 服务器建连接,发送查询语句,先检查查询缓存,如果命中,直接返回结果, 否则进行语句解析,也就是说,在解析查询之前,服务器会先访问查询缓存(query cache)—— 它存储 SELECT 语句以及相应的查询结果集。如果某个查询结果已经位于缓存中, 服务器就不会再对查询进行解析、优化、以及执行。它仅仅将缓存中的结果返回给用户即可,这将大大提高系统的性能。2. 语法解析器和预处理:

2020-07-20 19:07:11 171

原创 MySql数据库优化篇(一) MySql架构介绍

一. MySql逻辑架构介绍1. 定义:和其它数据库相比,MySQL 有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。2. 四层架构图:二. 详解四层结构1. 连接层:最上层是一些客户端和连接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 tcp/ip 的通信。主要完成一些类似于连接处理、授权

2020-07-20 18:27:43 202

原创 重学MySql数据库(十八) 分支结构与循环结构总结

一. 分支结构1. if 函数:功能:实现简单双分支语法:if(条件,值1,值2)位置:可以作为表达式放在任何位置2. case 结构:功能:实现多分支语法1:case 表达式或字段when 值1 then 语句1;when 值2 then 语句2;..else 语句n;end [case];语法2:case when 条件1 then 语句1;when 条件2 then 语句2;..else 语句n;end [case]; 位置:可以放在任何位置,

2020-07-19 14:23:55 545

原创 重学MySql数据库(十七) 存储过程与函数的使用与总结

一. 存储过程的介绍1. 创建语法:create procedure 存储过程名(参数模式 参数名 参数类型)begin 存储过程体end注意:1.参数模式:in、out、inout,其中in可以省略2.存储过程体的每一条sql语句都需要用分号结尾2. 调用:call 存储过程名(实参列表)举例:调用in模式的参数:call sp1(‘值’);调用out模式的参数:set @name; call sp1(@name);select @name;调用inout模式的参数

2020-07-19 14:11:31 417

原创 重学MySql数据库(十六) 各种变量的介绍与总结

一. 变量的分类1. 系统变量:说明:变量由系统提供的,不用自定义语法:①查看系统变量show 【global|session 】variables like ''; 如果没有显式声明global还是session,则默认是session②查看指定的系统变量的值select @@【global|session】.变量名; 如果没有显式声明global还是session,则默认是session③为系统变量赋值方式一:set 【global|session 】 变量名=值; 如果没有显式

2020-07-19 13:54:40 260

原创 重学MySql数据库(十五) MySql数据库视图总结

一. 视图的定义1. 定义:MySql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成。好处:1、简化sql语句2、提高了sql的重用性3、保护基表的数据,提高了安全性2. 创建:create view 视图名as查询语句;3. 修改:方式一:create or replace view 视图名as查询语句;方式二:alter view 视图名as查询语句;4. 删除:drop view 视图1,视图2,...;5. 查看

2020-07-18 15:27:38 153

原创 重学MySql数据库(十四) MySql数据库之事务

一. 事务的定义1. 定义:事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行2. 特点 (ACID):A 原子性:一个事务是不可再分割的整体,要么都执行要么都不执行C 一致性:一个事务可以使数据从一个一致状态切换到另外一个一致的状态I 隔离性:一个事务不受其他事务的干扰,多个事务互相隔离的D 持久性:一个事务一旦提交了,则永久的持久化到本地3. 事务的使用步骤:隐式(自动)事务:没有明显的开启和结束,本身就是一条事务可以自动提交,比如insert、upd

2020-07-18 11:15:39 140

原创 重学MySql数据库(十三) MySql数据库之常见约束总结

一. 常见的约束1. NOT NULL:非空,该字段的值必填2. UNIQUE:唯一,该字段的值不可重复3. DEFAULT:默认,该字段的值不用手动插入有默认值4. CHECK:检查,mysql不支持5. PRIMARY KEY:主键,该字段的值不可重复并且非空 unique+not null6. FOREIGN KEY:外键,该字段的值引用了另外的表的字段1. 主键约束与唯一约束的区别:1. 不同点①、一个表至多有一个主键,但可以有多个唯一②、主键不允许为空,唯一可以为空2、

2020-07-18 11:03:02 134

原创 重学MySql数据库(十二) MySql数据库常见的数据类型

一. 数值型1. 整型:tinyint、smallint、mediumint、int/integer、bigint特点:① 都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号② 如果超出了范围,会报out or range异常,插入临界值③ 长度可以不指定,默认会有一个长度长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofill,并且默认变为无符号整型2. 浮点型:定点数:decimal(M,D)浮点数:float(M,D) doubl

2020-07-18 10:43:21 2085

原创 重学MySql数据库(十一) MySql数据库之库的增删改操作

一. 库的管理一、创建库create database 【if not exists】 库名【 character set 字符集名】;二、修改库alter database 库名 character set 字符集名;三、删除库drop database 【if exists】 库名;二. 表的管理一、创建表 create table 【if not exists】 表名(字段名 字段类型 【约束】,字段名 字段类型 【约束】,。。。字段名 字段类型 【约束】 )二、

2020-07-17 15:18:58 146

原创 重学MySql数据库(十) MySql数据库之表的增删改操作

一. 增加(插入)1. 语法:1. insert into 表名(字段名,...) values(值,...); // 推荐使用2. insert into 表名 set 字段=值,字段=值,...;2. 特点:1、要求值的类型和字段的类型要一致或兼容2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致但必须保证值和字段一一对应3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值①字段和值都省略②字段写上,值使用null4、字段和值的个数必须一致5、字段名

2020-07-17 14:59:32 164

原创 重学MySql数据库(九) 联合查询与所有查询总结

一. 联合查询1. 定义:union:合并、联合,将多次查询结果合并成一个结果2. 语法:查询语句1union 【all】查询语句2union 【all】...3. 意义:1、将一条比较复杂的查询语句拆分成多条语句2、适用于查询多个表的时候,查询的列基本是一致4. 特点:1、要求多条查询语句的查询列数必须一致2、要求多条查询语句的查询的各列类型、顺序最好一致3、union 去重,union all包含重复项二. 联合查询SQL代码演示#案例1:查询部门编号>9

2020-07-17 14:31:09 209

原创 重学MySql数据库(八) 子查询与分页查询

一. 子查询定义1. 定义:嵌套在其他语句内部的select语句称为子查询或内查询,外面的语句可以是insert、update、delete、select等,一般select作为外面语句较多外面如果为select语句,则此语句称为外查询或主查询2. 分类:1、按出现位置select后面: 仅仅支持标量子查询from后面: 表子查询where或having后面: 标量子查询 列子查询 行子查询exists后面: 标量子查询 列子查询 行子查询 表子查询2、按结果集的

2020-07-16 15:31:21 274

原创 重学MySql数据库(七) 内连接、外连接查询

一. 内外连接查询定义1. 分类:sql92: 等值 非等值 自连接 也支持一部分外连接(用于oracle、sqlserver,mysql不支持) sql99【推荐使用】 内连接 等值 非等值 自连接 外连接 左外 右外 全外(mysql不支持) 交叉连接2. sql92语法:1、等值连接语法:select 查询列表from 表1 别名,表2 别名where 表1.key=表2.key【and 筛选条件】【group by 分组字段】【ha

2020-07-16 15:16:05 295

原创 重学MySql数据库(六) 分组查询的定义与SQL练习

一. 分组查询定义1. 语法select 分组函数,分组后的字段from 表【where 筛选条件】group by 分组的字段【having 分组后的筛选】【order by 排序列表】2. 特点 使用关键字 筛选的表 位置分组前筛选 where 原始表 group by的前面分组后筛选 having 分组后的结果 group by 的后面二. 分组查询SQL练习1. 简单案例#案例1:查询每个工种的员工平均工资SELECT AVG(sal

2020-07-15 15:52:39 309 1

原创 重学MySql数据库(五) 常见函数的SQL代码练习

一. 字符函数SQL代码演示1. length 获取参数值的字节个数SELECT LENGTH('john');SELECT LENGTH('张三丰hahaha');2. concat 拼接字符串SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employees;3.upper、lowerSELECT UPPER('john');SELECT LOWER('joHn');#示例:将姓变大写,名变小写,然后拼接SELECT CONCAT(

2020-07-15 15:27:06 206

原创 重学MySql数据库(四) MySql的常见函数都有哪些?

一. 常见函数的定义与分类1. 定义:功能:类似于java中的方法好处:提高重用性和隐藏实现细节调用:select 函数名(实参列表);二. 单行函数1. 字符函数concat:连接substr:截取子串upper:变大写lower:变小写replace:替换length:获取字节长度trim:去前后空格lpad:左填充rpad:右填充instr:获取子串第一次出现的索引2. 数学函数ceil:向上取整round:四舍五入mod:取模floor:向下取整tru

2020-07-15 15:03:42 182

原创 重学MySql数据库(三) 基本查询、条件查询、排序查询之SQL语句练习

一. 基本查询练习#1.下面的语句是否可以执行成功 SELECT last_name , job_id , salary AS salFROM employees; 答:成功#2.下面的语句是否可以执行成功 SELECT * FROM employees; 答:成功#3.找出下面语句中的错误 SELECT employee_id , last_name,salary * 12 AS ANNUAL SALARYFROM employees;答:在起别名的时候如果别名有空格

2020-07-13 20:26:51 280

原创 重学MySql数据库(二) 数据处理之基本查询、条件查询、排序查询

一. 基本查询1. 语法 select 查询列表 from 表名;2. 特点 查询列表可以是字段、常量、表达式、函数,也可以是全部 查询结果是一个虚拟表1. 基本查询示例1. 查询单个字段select 字段名 from 表名;2. 查询多个字段select 字段名,字段名 from 表名;3. 查询所有字段select * from 表名4. 查询常量select 常量值;注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要5. 查询函数select

2020-07-13 17:20:06 234

原创 重学MySql数据库(一) 数据库与SQL的概述

一. 数据库的好处1. 实现数据持久化2. 使用完整的管理系统统一管理,易于查询二. 数据库的常见概念1. DB数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。2. DBMS数据库管理系统(Database Management System)数据库是通过DBMS创建和操作的容器(你可以把MySql理解成是DBMS)3. SQL结构化查询语言(Structure Query Language):专门用来与数据库通信的语言。4. 常见的数据库管理系统:

2020-07-13 15:56:22 174

原创 Java面试题(三十一) GitHub上的骚操作

一. 全局搜索1. 全局搜索也就是模糊搜索:如:搜索 SpringBoot搜索结果:这样搜索范围太大,且项目质量参差不齐,所以在搜索框中,还可以按 Star 数量、Fork 数量等来查询二. 精准搜索1. in 关键词限制搜索范围公式:搜索词 in:name(/description/readme)搜索结果:2. 关键字搜索>n、>=n、<n、<=n:查询数量范围,可以是 starts、forks、topics......n..*、*..n:等同于 &

2020-07-06 14:20:58 254

原创 Java面试题(三十) 面试官:“生产环境服务器变慢,你说说诊断思路和性能评估?”

一. 基本调试命令一般我们的服务器都是跑在Linux上的1. 整机: 1. top 系统性能 2. uptime 精简版 3. oad average:系统负载均衡 1min 5min 15min 系统的平均负 载值相加除3大于60%就代表压力过大2. CPU:1. vmstat:查看CPU参数vmstat -n 2 3 第二个参数是采样的时间间隔数单位s,第三个参数是采样的次数 procsr:运行和等待CPU时间片的进程数,原则上1核CPU的运行队列不要超过2,多核系统的

2020-07-06 13:35:38 701

原创 Java面试题(二十九) 阿里面试高频问题:四大GC垃圾回收算法与七大垃圾收集器是如何相辅相成的?

一. GC垃圾回收算法1. 引用计数算法2. 复制拷贝算法3. 标记清除算法4. 标记整理算法二. 垃圾收集器1. 四种主要垃圾收集器1. Serial 串行回收为单线程环境所设计且适用于一个线程进行垃圾回收,会暂停所有的用户线程,不适合服务器环境。2. Paralle 并行回收多个垃圾收集线程并行工作,此时用户线程是暂停的,适用于科学计算/大数据处理首台处理等弱交互场景。3. CMS 并发标记清除(并发回收)用户线程和垃圾收集线程同时执行(不一定是并行,可能交替执行),不需要

2020-07-05 15:26:46 279

原创 Java面试题(二十八) Java大陆最神秘的邪教之「OOM错误」圣使的前世今生

一. 常见的OOM1. 简述OOM错误种类:1. java.lang.StackOverflowError //这个虽然不是OOM,但是也是内存溢出错误2. java.lang.OutOfMemoryError: Java heap space3. java.lang.OutOfMemoryError: GC overhead limit exceeded4. java.lang.OutOfMemoryError: Direct buffer memory5. java.lang.OutOfM

2020-07-04 18:11:14 255

阿里巴巴Java开发手册1.4.0.zip

《阿里巴巴Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以Java 开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干二级子目录。根据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。对于规约条目的延伸信息中,“说明”对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例” 说明需要提防的雷区,以及真实的错误案例。

2020-06-27

空空如也

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

TA关注的人

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