自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pdf超级菜

怕什么真理无穷,进一步有一步的欢喜。

  • 博客(81)
  • 资源 (7)
  • 收藏
  • 关注

原创 RocketMQ源码解析——NameServer

官方介绍NameServer(名字服务)充当消息的提供者。生产者或消费者能够通过NameServer查找各主题对应的Broker IP列表。多个NameServer实例组成集群,但是相互独立,没有信息交换。具体来说就是:NameServer 是一个非常简单的 Topic 路由注册中心 ,其角色类似 Dubbo 中的 zookeeper,支持 Broker 的动态注册与发现。主要包括两个功能:Broker 管理:NameServer 接受 Broker 集群的注册信息并且保存下来作为路由信息的基本数据

2021-12-05 13:49:16 384

原创 「高性能MySQL」读书笔记

第一章 MySQL架构与历史1.1 MySQL逻辑架构第一层负责连接处理、授权认证、安全等等第二层是MySQL核心服务,包括查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。第三层包含存储引擎,存储引擎负责MySQL中数据的存储和提取。服务器通过API与存储引擎进行通信。存储引擎API包含几十个底层函数,用于执行诸如“开始一个事物”或者“根据主键提取一行记录”等操作。但存储引擎不会去解析SQL,不同存储

2021-10-02 11:29:16 525

转载 Go Slice学习

切片,即动态数组,其长度并不固定,我们可以向切片追加元素,它会在容量不足时自动扩容。切片的长度是动态的,声明时只需要指定切片中的元素类型。var nums []intvar T []interface切片在编译期间生成的类型只会包含切片中的元素类型。切片内元素的类型都是在编译期间确定的,编译器确定了类型以后,会将类型存储在Extra字段中帮助程序在运行时动态获取。数据结构运行时切片由如下的reflect.SliceHeader 结构体表示:type SliceHeader struct{ D

2021-07-06 16:38:06 157

原创 「Redis开发与运维」读书笔记

第一章 初识RedisRedis的8个重要特性速度快内存存储数据C语言实现单线程架构,避免多线程竞争问题Redis源码优化好基于键值对的数据结构服务器Redis 值可支持多种数据结构,如字符串、哈希、列表、集合、有序集合丰富的功能键过期功能,可用来实现缓存发布订阅功能,可用来实现消息系统支持Lua脚本,可以利用Lua创造出新的Redis命令提供流水线功能,客户单能将一批命令一次性传到Redis,减少网络开销简单稳定Redis代码量少,能够较容易掌握

2021-05-29 15:49:03 707 2

转载 21 Redis缓冲区

缓冲区主要是用一块内存空间来暂时存放命令数据,以免出现因为数据和命令的处理速度慢于发送速度而导致的数据丢失和性能问题。但因为缓冲区的内存空间有限,如果往里面写入数据的速度持续地大于从里面读取数据的速度,就会导致缓冲区需要越来越多的内存来暂存数据。当缓冲区占用的内存超出了设定的上限阈值时,就会出现缓冲区溢出。Redis是典型的client-server架构,所有的操作命令都需要通过客户端发送给服务器端。所以缓冲区在Redis中的一个主要应用场景就是在客户端和服务器端之间进行通信时,用来暂存客户端发送的命令数

2021-05-24 18:34:09 242 1

原创 20 删除数据后的Redis内存占用率为什么还是很高?

有时候Redis明明做了数据删除,数据量已经不大了,但是使用top命令的时候,还会发现Redis占用了很多内存?这是因为,当数据删除之后,Redis释放的内存空间会由内存分配器管理,并不会立即返还给操作系统。所以,操作系统仍然记录着给Redis分配了大量的内存。同时还存在一个潜在风险点:Redis释放的内存空间可能并不是连续的,那么这些不连续的内存空间很有可能处于一种闲置的状态。这就会导致一个问题:虽然有空闲空间,Redis却无法用来保存数据,不仅会减少Redis能够实际保存的数据量,还会降低Red

2021-05-23 20:50:39 321

原创 18~19 Redis响应延迟

判断Redis变慢第一种方法:查看Redis的响应延迟redis-cli --latency -h host -p port当发现Redis命令的执行时间突然就增长到了几秒,基本可以认定Redis变慢。第二种方法:基于当前环境下的Redis基线性能做判断。基线性能:一个系统在低压力、无干扰的下的基本性能,这个性能只由当前的软硬件配置决定。redis-cli --intrinsic-latency {time}打印{time}秒内检测到的最大延迟。一般来说,你要把运行时延迟和基线性

2021-05-19 21:00:10 560 2

原创 24 Redis缓存替换策略

数据的淘汰的机制包括两步:第一,根据一定的策略,筛选出对应用访问来说”不重要“的数据;第二,将这些数据从缓存中删除,为新来的数据腾出空间。设置多大的缓存容量合适在实践过程中,Redis容量规划不能一概而论,是需要结合应用数据实际访问特征和成本开销来综合考虑的。建议把缓存容量设置为总数据量的15%到30%,兼顾访问性能和内存空间开销。Redis缓存淘汰策略默认情况下,Redis使用的内存空间超过maxmemory之后不会淘汰数据,即noeviction策略。当缓存满了之后,再有写请求过来,

2021-05-17 21:30:49 1031 1

原创 27 缓存污染(缓存数据的淘汰策略)

缓存污染定义:有些数据访问次数非常少,甚至只会被访问一次。当这些数据服务完访问请求之后,继续会留在内存中,占用缓存空间。八种数据淘汰策略:noeviction、volatile-random、volatile-ttl、volatile-lru、volatile-lfu、allkeys-lru、allkeys-random 和 allkeys-lfu 策略volatile-random 和 allkeys-random采用随机挑选数据的方式来筛选即将被淘汰的数据。Redis不会根据数据的访问情况来

2021-05-14 18:47:45 209

原创 FTP、FTPS、SFTP浅析

FTPFTP即文件传输协议(File Transfer Protocol),是一个用于计算机网络上客户端与服务器之间进行文件传输的应用层协议。FTP由FTP服务器和FTP客户端组成,客户端可以将本地的文件通过哦FTP协议上传到服务器,也可以将服务器的文件下载到本地。TODO 扩充FTP相关知识FTP工作原理FTP连接需要FTP服务器和客户端两方在网络上建立通信。建立FTP连接时会有两个不同的通信通道。一个被称为命令通道,它的作用是发出和响应指令。另一个为数据通道,用于客户端和服务器端进行数据交互。

2021-04-10 15:27:31 444

原创 Word解析之Word内部结构

我们常用的Office Word格式分为doc和docx两种格式,doc是Word 97-2003版本使用的格式,Word2007及其之后的版本,默认格式是docx。doc使用的是office 97-03的存储规范:OLE。它是一种对象链接和嵌入的技术,该技术可以包含文本,图形,电子表格甚至其他二进制数据。docx使用OpenXML(OOXML)协议,它是微软在Office 2007中提出的一种新的文档格式,Office 2007及其以后的Word、Excel、PowerPoint默认均采用OpenXM

2021-01-27 18:05:33 6985

原创 策略模式

策略模式角色Context(环境类):环境类是使用算法的角色,它在解决某个问题(即实现某个方法)时可以采用多种策略。在环境类中维持一个对抽象策略类的引用实例,用于定义所采用的策略。Strategy(抽象策略类):它为所支持的算法声明了抽象方法,是所有策略类的父类,它可以是抽象类或具体类,也可以是接口。环境类通过抽象策略类中声明的方法在运行时调用具体策略类中实现的算法。ConcreteStrategy(具体策略类):它实现了在抽象策略类中声明的算法。在运行时,具体策略类将覆盖在环境类中定义的抽象策略类

2021-01-07 11:39:29 112

原创 GO语言包的基本概念

包的习惯用法:包名一般是小写的,使用一个简短且有意义的名称。包名一般要和所在的目录同名,也可以不同,包名中不能包含-等特殊符号。包一般使用域名作为目录名称,这样能保证包名的唯一性,比如 GitHub 项目的包一般会放到GOPATH/src/github.com/userName/projectName目录下。包名为 main 的包为应用程序的入口包,编译不包含 main 包的源码文件时不...

2020-03-21 10:02:18 262

原创 LeetCode 334. 递增的三元子序列

题目:给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。数学表达式如下:如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。示例 1:输入...

2019-08-05 13:34:46 112

原创 LeetCode 76. 最小覆盖子串

题目:给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例:输入: S = “ADOBECODEBANC”, T = “ABC”输出: “BANC”说明:如果 S 中不存这样的子串,则返回空字符串 “”。如果 S 中存在这样的子串,我们保证它是唯一的答案。题解:import java.util.HashMap;import j...

2019-08-05 10:37:02 106

转载 3道题彻底搞定:套路解决递归问题

转自3道题彻底搞定:套路解决递归问题前言相信不少同学和我一样,在刚学完数据结构后开始刷算法题时,遇到递归的问题总是很头疼,而一看解答,却发现大佬们几行递归代码就优雅的解决了问题。从我自己的学习经历来看,刚开始理解递归思路都很困难,更别说自己写了。我一直觉得刷算法题和应试一样,既然是应试就一定有套路存在。在刷题中,我总结出了一套解决递归问题的模版思路与解法,用这个思路可以秒解很多递归问题。递...

2019-08-04 18:43:53 1231

原创 LeetCode 29. 两数相除

题目:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除数均...

2019-08-04 00:04:12 165

原创 LeetCode 25. K 个一组翻转链表

思路不难,但是感觉里面绕过来绕过去的,一会儿就绕晕了,日后一定要好好看一下这个代码题目:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1...

2019-08-03 23:12:03 133

原创 LeetCode 17. 电话号码的字母组合

题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。题解:import ja...

2019-08-03 22:09:43 94

原创 生产者消费者模型

import java.util.PriorityQueue;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @Author dfpeng * @Date 20...

2019-08-02 15:08:21 83

原创 LeetCode 146. LRU缓存机制

题目:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少...

2019-08-02 14:41:41 73

原创 LeetCode 84. 柱状图中最大的矩形

题目:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10题解:import java....

2019-07-31 17:03:28 106

原创 LeetCode 189. 旋转数组

题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,...

2019-07-31 14:28:16 89

原创 LeetCode 134. 加油站

题目:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的...

2019-07-31 10:20:10 224

原创 LeetCode 166. 分数到小数

题目:给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。示例 1:输入: numerator = 1, denominator = 2输出: “0.5”示例 2:输入: numerator = 2, denominator = 1输出: “2”示例 3:输入: ...

2019-07-30 11:58:14 306

原创 LeetCode 59. 螺旋矩阵 II

题目:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]这一题和LeetCode 54. 螺旋矩阵思路很像,我就是逆着这个思路来做的,具体的可以看我之前的题解LeetCode 54. 螺旋矩阵题解:/** * @Autho...

2019-07-30 11:15:28 244

原创 LeetCode 54. 螺旋矩阵

题目:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,...

2019-07-30 11:02:41 112

原创 LeetCode 328. 奇偶链表

题目:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5-&gt...

2019-07-29 23:35:16 71

原创 LeetCode 560. 和为K的子数组

题目:给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。题解:import...

2019-07-28 13:34:39 221

原创 LeetCode 42. 接雨水

题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6题解:class Soluti...

2019-07-27 15:24:19 123

原创 LeetCode 287. 寻找重复数

题目:给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 ...

2019-07-25 19:05:32 149

原创 LeetCode 347. 前 K 个高频元素

题目:给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数...

2019-07-25 16:44:24 69

原创 LeetCode 179. 最大数

题目:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。题解:import java.util.*;/** * @Author dfpeng * @Date 2019/7/24 ...

2019-07-24 16:28:52 62

原创 LeetCode 102. 二叉树的层次遍历

题目:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]import java.util.ArrayList;import java.util.LinkedList;i...

2019-07-24 14:31:17 68

原创 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置

题目:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10...

2019-07-24 13:50:24 71

原创 LeetCode 33. 搜索旋转排序数组

题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2...

2019-07-24 11:18:09 59

原创 LeetCode 8. 字符串转换整数 (atoi)

题目描述:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些...

2019-07-23 15:57:10 99

原创 MySQL秋招复习

数据库理论1、参照完整性被破坏时:1)拒绝执行(No action)2) 级联操作(Cascade): 当删除或修改被参照表时的一个元组导致与参照表不同时,删除或修改参照表中的所有导致不一致的元组。3)设置为空值: 当删除或修改被参照表时的一个元组导致与参照表不同时, 则将参照表中的所有造成不一致的元组的对应属性设置为空值。2、查询处理步骤:查询分析(语法)、 查询检查(语义)、查询优...

2019-07-15 22:10:42 502

原创 生产者消费者Condition实现

生产者消费者Condition实现:import java.util.PriorityQueue;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @Author...

2019-07-08 16:20:26 280

转载 Redis持久化RDB和AOF

Redis 持久化:提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可...

2019-06-21 10:05:39 99

RedisDesktopManager.dmg.zip

Mac版本的redis desktop manager。redis desktop manager主要针对redis开发设计,拥有直观强大的可视化界面,具有完善全面的数据操作功能,可以针对目标key执行rename,delete,addrow,reload value操作,支持通过SSH Tunnel连接,用户可以通过它对Redis进行操作管理,简化原有的命令语言,充分发挥Redis的特性。 Redis Desktop Manager 简单的来讲就是Redis可视化工具,可以让我们看到Redis中存储的内容。

2020-03-17

JavaEE开发的颠覆者 Spring Boot实战 完整版.pdf

这本书不止介绍了spring boot,从spring基础,到spring mvc, spring boot,再到spring cloud,涵盖了spring生态圈的大部分技术点。书中对知识点讲解比较概括,主要是实例多,需要多动手实践和思考。另外,spring从最初的一个ioc容器,发展到现在的云生态系统,优秀的软件设计,开源以及生态圈的形成,确实值得好好学习、使用。

2019-05-18

JavaEE开发的颠覆者 Spring Boot实战 完整版.pdf

这本书不止介绍了spring boot,从spring基础,到spring mvc, spring boot,再到spring cloud,涵盖了spring生态圈的大部分技术点。书中对知识点讲解比较概括,主要是实例多,需要多动手实践和思考。另外,spring从最初的一个ioc容器,发展到现在的云生态系统,优秀的软件设计,开源以及生态圈的形成,确实值得好好学习、使用。

2019-05-18

MYSQL从入门到精通

《MySQL从入门到精通》以零基础讲解为宗旨,用实例引导读者学习,深入浅出地介绍了MySQL的相关知识和实战技能。第1篇(基础知识)主要讲解MySQL的安装与配置、MySQL数据库的基础知识、MySQL管理工具的使用以及数据库的基本操作等;第2篇(核心技术)主要讲解数据表的基本操作、MySQL的数据类型和运算符、MySQL函数、查询语句、存储过程与函数、触发程序以及视图等;第3篇(高级应用)主要讲解MySQL的备份和恢复、MySQL的复制、MySQL的日志管理、MySQL分布式应用、MySQL缓存的配置和使用以及MySQL错误代码和消息的使用等;第4篇(项目实战)通过试卷管理系统、电动汽车分时租用平台和电动汽车GPS定位系统三个实战案例,介绍了完整的MySQL数据系统开发流程。

2019-03-10

数据库系统概念

本书是数据库系统方面的经典教材之一,其内容由浅入深,既包含数据库系统基本概念,又反映数据库技术新进展。它被国际上许多著名大学所采用,包括斯坦福大学、耶鲁大学、得克萨斯大学、康奈尔大学、伊利诺伊大学等。我国也有多所大学采用本书作为本科生和研究生数据库课程的教材和主要教学参考书,收到了良好的效果。

2019-03-10

深入浅出MySQL

深入浅出mysql数据库开发 优化与管理维护从数据库的基础、开发、优化、管理维护和架构5个方面对MySQL进行了详细的介绍,每一部分都独立成篇。深入浅出mysql第二版主要包括MySQL的安装与配置、SQL基础、MySQL支持的数据类型、MySQL中的运算符、常用函数、图形化工具的使用等内容。开发篇主要适合于MySQL的设计和开发人员,主要包括表类型(存储引擎)的选择、选择合适的数据类型、字符集、索引的设计和使用、视图、存储过程和函数、触发器、事务控制和锁定语句、SQL中的安全问题、SQL Mode及相关问题等内容。

2019-03-10

Spring源码深度解析

《Spring源码深度解析》从核心实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring的设计理念和整体架构、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息服务等内容。 《Spring源码深度解析》不仅介绍了使用Spring框架开发项目必须掌握的核心概念,还指导读者如何使用Spring框架编写企业级应用,并针对在编写代码的过程中如何优化代码、如何使得代码高效给出切实可行的建议,从而帮助读者全面提升实战能力。 《Spring源码深度解析》语言简洁,示例丰富,可帮助读者迅速掌握使用Spring进行开发所需的各种技能。《Spring源码深度解析》适合于已具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员、测试人员等。

2019-03-09

空空如也

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

TA关注的人

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