- 博客(111)
- 资源 (2)
- 收藏
- 关注
原创 Zookeeper
Zookeeper介绍zookeeper是一个分布式协调框架,用于解决分布式应用中常遇到的一些数据管理问题,如:统一命名服务, 状态同步服务, 集群管理, 分布式应用配置项的管理等.zookeeper = 文件系统 + 监听通知机制客户端注册监听它所关注的目录节点,当该目录节点发生变化(数据改变, 被删除, 子目录节点增加删除)时,zookeeper会通知客户端.Zookeeper节点类型PERSISTENT : 持久化目录节点.客户端与zookeeper断开连接后,该节点依旧存在.PERSIS
2020-07-23 22:59:33
269
转载 golang HTTP Response Body需注意的问题
https://blog.youkuaiyun.com/hello_ufo/article/details/92994573欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的...
2019-11-29 00:37:20
4367
原创 二叉树的递归及非递归遍历
前序遍历 // 递归前序 private static void pre(TreeNode root){ if(root == null){ return; } System.out.println(root.val); pre(root.left); pre(root.righ...
2019-10-05 20:36:09
382
原创 算法题目 搜索
目录BFSDFS动态规划排列问题组合问题BFSDFS动态规划Backtracking(回溯)属于 DFS。普通 DFS 主要用在 可达性问题 ,这种问题只需要执行到特点的位置然后返回即可。Backtracking 主要用于求解 排列组合 问题,例如有 { ‘a’,‘b’,‘c’ } 三个字符,求解所有由这三个字符排列得到的字符串,这种问题在执行到特定的位置返回之后还会继续执行求...
2019-09-24 00:19:05
669
原创 算法题目总结
动态规划剑指offer7. 斐波那契数列public class Solution { public int Fibonacci(int n) { if(n == 0){ return 0; } if(n==1){ return 1; } ...
2019-09-23 00:15:51
320
原创 算法题目 字符串操作
目录循环移位两个字符串包含的字符是否相同计算一组字符集合可以组成的回文字符串的最大长度同构字符串一个字符串中连续回文子字符串的个数判断一个整数是否是回文数统计二进制字符串中连续 1 和连续 0 数量相同的连续子字符串个数循环移位循环移位可以通过部分翻转然后整体翻转来完成字符串循环移位包含给定两个字符串 s1 和 s2,要求判定 s2 是否能够被 s1 做循环移位得到的字符串包含。s1...
2019-09-04 16:49:06
1038
原创 算法题目 二分查找
目录寻找正确插入的位置正常实现Input : [1,2,3,4,5];key : 3return the index : 2public int binarySearch(int[] nums, int key) { int l = 0, h = nums.length - 1; while (l <= h) { int m = l + (h -...
2019-09-04 10:07:47
3175
原创 算法题目 动态规划
目录子序列问题和最大的连续子序列最长递增子序列一组整数对能构成的最长链最长摆动子序列等差递增连续子序列的个数最长公共子序列子序列问题和最大的连续子序列53 最大子序和(简单)给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,...
2019-09-02 18:22:56
699
原创 算法题目 股票交易系列
目录只能进行一次的股票交易可以进行无限次的股票交易只能进行两次的股票交易可以进行K次的股票交易需要冷冻期的股票交易需要交易费用的股票交易只能进行一次的股票交易leetcode 121 买卖股票的最佳时机(简单)给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票...
2019-08-31 19:54:26
3022
原创 leetcode_动态规划相关
动态规划递归:是自上而下的解决问题,假设最基本的问题已经解决了,在递归过程中可能会出现许多重复的子问题的求解过程,可以采用记忆化搜索的方式来优化重复子问题的不足动态规划:是自底向上的解决一个问题,将原问题拆解成若干子问题,同时保证子问题的答案,使得每个子问题只求解一次,最终获得原问题的答案动态规划 ==> 出现重叠子问题、最优子结构 ==> 采用记忆化搜索(自顶向下) 或...
2019-04-12 10:53:24
303
原创 leetcode_链表相关问题
链表与数组一样也是一种顺序的数据结构,但链表与数组最大的区别是链表不能像数组那样进行随机的访问,而必须通过头结点开始依次向后寻找下一个元素,通常在链表中的操作都是操作链表中的Next指针。206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->N...
2019-04-07 14:44:02
290
原创 leetcode_二叉树与递归
104. 二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。/** * Definition for a...
2019-04-04 12:05:37
223
原创 leetcode_查找相关问题
查找问题的思路查找问题一般分为两类:查找有无,这样的查找问题多用set解决 查找对应关系(键值对应),这样的问题多用map解决在查找问题中,难点往往是分析出需要查找的是什么,然后将待查找的内容放入查找表中(set / map)注意:在java中, set / map 的底层实现有两类,一类是基于红黑树实现的 TreeSet / TreeMap ,另一类是基于哈希表实现的 HashS...
2019-03-23 17:27:32
413
原创 leetcode_数组相关问题
283.零移动给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。思路一:保证非零元素的相对顺序,冒泡排序法,时间复杂度为O(n^2),空间复杂度为O(1)class Solu...
2019-03-18 23:08:16
538
转载 Java中String.intern()的理解
运行时常量池概述Java运行时常量池中主要存放两大类常量:字面量和符号引用。字面量比较接近于Java语言层面的常量概念,如文本字符串、声明为final的常量值等。而符号引用则属于编译原理方面的概念,包括了下面三类常量:- 类和接口的全限定名(包名+类名)- 字段的名称和描述符- 方法的名称和描述符运行时常量池位置运行时常量池在JDK1.6及之前版本的JVM中是方法区的一部...
2019-03-18 22:42:30
204
原创 Java中的引用类型
Java中的引用有点像C++中的指针,通过引用可以对堆中的对象进行操作。Java程序中最常见的引用类型是强引用,也是默认的引用类型。当在Java语言中使用 New 操作符创建一个新的对象,并将其赋给一个变量的时候,这个变量就成为指向该对象的一个强引用。判断一个对象是否存活的标准为是否存在指向这个对象的指针。Java中提供了四个级别的引用,即强引用(Strong Reference),软引用...
2019-03-18 15:18:40
2948
原创 算法练习
把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述: 对于每组数据,输出移位后的字符串。输入例子1: AkleBiCeilD输出例子1: kleieilABCD思路:冒泡排序法import java.uti...
2019-03-07 22:29:20
128
原创 MySQL学习_存储引擎
存储引擎MySQL 可以将数据以不同的技术存储在文件 (内存) 中,这种技术就称作从存储引擎。不同的存储引擎使用不同的存储机制,索引技巧,锁定水平,最终提供广泛且不同的功能。MySQL支持的存储引擎:MyISAM InnoDB Memory CSV Archive数据库的并发控制当多个连接对记录进行修改时需要保证数据的一致性与完整性,并发控制可以通过锁机制实现。锁...
2019-02-21 22:38:01
1469
原创 MySQL学习_存储过程
MySQL命令的执行流程 存储过程存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理优点:增强SQL语句的功能和灵活性 实现较快的执行速度 减少网络流量创建存储过程CREATE [DEFINER = {user | CURRENT_USER}]PROCEDURE sp_name ([proc_parameter[,...]])[...
2019-02-21 17:15:40
164
原创 MySQL学习_运算符和函数
系统内置函数字符函数函数名称 描述 CONCAT() 字符连接 CONCAT_WS() 使用指定的分隔符进行字符连接 FORMAT() 数字格式化 LOWER() 转换成小写字母 UPPER() 转换成大写字母 LEFT() 获取左侧字符 RIGHT() 获取右侧字符 LENGTH() 获取字符串长度 ...
2019-02-21 14:19:36
523
原创 MySQL学习_子查询和连接
子查询子查询(Subquery)是指出现在其它SQL语句内的SELECT语句.SELECT * FROM t1 WHERE col1=(SELECT col2 FROM t2); 其中,SELECT * FROM t1 称为Outer Query / Outer Statement, SELECT col2 FROM t2 称为SubQuery.子查询必须始终出现在圆括号内...
2019-02-04 19:48:12
402
1
原创 Docker MySQL容器内无法输入中文问题
从dockerhub拉取MySQL镜像,启动并进入进入容器,发现在MySQL命令行内无法输入中文 ,退出到容器终端同样无法输入中文.在容器终端查看语言环境# localeLANG=LANGUAGE=LC_CTYPE="POSIX"LC_NUMERIC="POSIX"LC_TIME="POSIX"LC_COLLATE="POSIX"LC_MONETARY="POSIX"LC...
2019-02-03 16:42:44
3800
原创 MySQL学习_数据表操作
数据表操作创建数据表CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,...);//CREATE SELECT语句,将select的结果添加到新表的后面CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,...)SELECT...
2019-01-31 17:53:54
276
原创 MySQL学习_数据类型
整型数据类型 存储范围 字节 TINYINT 有符号值:-128~127(-2^7~2^7-1) 无符号值:0~255(0~2^8-1) 1 SMALLINT 有符号值:-32768~32767(-2^15~2^15-1) 无符号值:0~65535(0~2^16-1) 2 MEDIUMINT ...
2019-01-29 17:21:59
128
原创 MySQL学习_数据库基本操作
MySQL服务的启动与停止//启动mysql服务net start mysql//停止mysql服务net stop mysql MySQL语句规范关键字与函数名全部大写; 数据库名称,数据表名称,字段名全部小写; SQL语句必须以分号结尾; MySQL常用操作MySQL的登录与退出启动mysql服务后,使用 "mysql 参数"登录mysql参数...
2019-01-29 16:18:09
228
原创 MySQL学习_权限管理
MySQL 账户MySQL 的账号信息保存在 mysql 数据库中的user表中登陆数据库后,可以进行查看show databases;use mysql;show tables;select user from user;mysql> show databases;+--------------------+| Database |+--...
2019-01-27 21:30:42
422
原创 MySQL学习_版本问题
MySQL主要的发行版MySQL官方版本,分为社区版和企业版,是由Oracle公司维护的 Percona MySQL,是有一个专门的社区来维护的,与官方版本是完全兼容的,同时提供了许多官方企业版才有的功能,功能上由于官方的社区版,但它是官方版本上的二次开发,其最新版本落后与官方版本 MariaDB,是MySQL的初始创建者在MySQL被Oracle公司收购后又独自成立公司开发维护的,并不能...
2019-01-26 22:49:25
931
原创 http协议_HTTPs的实现
HTTP 的安全性问题使用明文进行通信,内容可能会被窃听; 不验证通信方的身份,通信方的身份有可能遭遇伪装; 无法证明报文的完整性,报文有可能遭篡改。 HTTPsHTTPs 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,也就是说 HTTPs 使用了隧道进行通信。通过使用 SSL,HTTPs 具有了...
2019-01-26 20:37:25
224
转载 http协议_代理服务(proxy)
一.代理服务器代理服务器接受客户端的请求,并且转发给其它服务器。使用代理的主要目的是:缓存 负载均衡 网络访问控制 访问日志记录代理服务器分为 正向代理(forward proxy) 和 反向代理两种(Reverse Proxy):用户察觉得到正向代理的存在。 而反向代理一般位于内部网络中,用户察觉不到。 正向代理和反向代理的区别位置不同 正向代...
2019-01-25 21:45:39
5431
转载 http协议_CSP(Content-Security-Policy 内容安全策略)
http协议中的内容安全策略是为了让网站更加安全.内容安全策略(Content Security Policy)是一种声明的安全机制,可以让网站运营者能够控制遵循CSP的用户代理(通常是浏览器)的行为。通过控制要启用哪些功能,以及从哪里下载内容,可以减少网站的攻击面。CSP的主要目的是防御跨站点脚本(cross-ste scripting,XSS)攻击。例如,CSP可以完全禁止内联的Jav...
2019-01-25 21:10:00
4849
原创 http协议_redirect
Redirect的实现将response的状态码设为302 通过头部的"Location"指定重定向的路径 注:302是临时跳转 301是永久跳转,即每次访问都会跳转302每次访问时都会先到达原路径,然后经过一次跳转后达到新的路径301只有第一次访问时,会有一个有原路径跳转新路径的过程,之后在访问原路径是,就会直接到达新路径,而不再经过原路径跳转的过程但301的使用要...
2019-01-25 20:55:13
1163
转载 http协议_长连接和短连接
TCP连接通过http协议进行数据传输的前提是建立TCP连接,一个TCP连接的建立需要三次握手过程,在一个TCP连接上可以进行客户端与服务器之间的http通信.在http/1.x的版本中,一个TCP连接中的http通信是有顺序的,只有前一个http通信完成后,后面的http通信才可以接着进行,故在一个服务中要实现多个http通信的并行过程,则需要多个TCP连接http/2.0版本中,在...
2019-01-25 20:52:15
1105
转载 http协议_Cookie和Session
CookieHTTP 协议是无状态的,为了让 HTTP 协议尽可能简单,使得它能够处理大量事务,HTTP/1.1 引入 Cookie 来保存状态信息。Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器之后向同一服务器再次发起请求时被携带上,用于告知服务端两个请求是否来自同一浏览器。由于之后每次请求都会需要携带 Cookie 数据,因此会带来额外的性能开销(尤其是在...
2019-01-25 20:45:18
245
转载 http协议_传输控制
内容编码内容编码将实体主体进行压缩,从而减少传输的数据量。常用的内容编码有:gzip、compress、deflate、identity。浏览器发送 Accept-Encoding 首部,其中包含有它所支持的压缩算法,以及各自的优先级。服务器则从中选择一种,使用该算法对响应的消息主体进行压缩,并且发送 Content-Encoding 首部来告知浏览器它选择了哪一种算法。由于该内容协商...
2019-01-25 20:15:23
541
原创 http协议_数据协商
http协议中,可以通过内容协商返回最合适的内容,例如根据浏览器的默认语言选择返回中文界面还是英文界面。在客户端发送给服务端一个请求的时候,客户端可以声明该请求所期望获得的数据格式和数据相关的一些属性,服务端会根据客户端声明的请求做出判断并给出相应的结果实现方式一:客户端设置特定的 HTTP 首部字段,例如 Accept、Accept-Charset、Accept-Encoding、A...
2019-01-25 19:53:25
262
转载 http协议_方法
HTTP方法http协议中,客户端发送的请求报文的第一行为请求行,包含了方法字段。GET获取资源当前网络请求中,绝大部分使用的是 GET 方法。HEAD获取报文首部和 GET 方法类似,但是不返回报文实体主体部分。主要用于确认 URL 的有效性以及资源更新的日期时间等。POST传输实体主体POST 主要用来传输数据,而 GET 主要用来获取资...
2019-01-25 17:10:36
342
转载 http协议_状态码
在http协议中,服务器返回的响应报文的中第一行为状态行,其中包含htttp协议的版本号,状态码以及原因短语,以用来告知客户端请求的结果。HTTP状态码被分成了五大类状态码 类别 含义 1XX Informational(信息性状态码) 接收的请求正在处理 2XX Success(成功状态码) 请求正常处理完毕 3XX Redirect...
2019-01-25 16:45:37
186
原创 http协议_报文格式
请求报文请求报文主要分为三部分,请求首行(request line), 请求头部(request header), 请求体(request body). 请求行与请求头部通过一个换行隔开,请求头部和请求体之间通过一个空行隔开.请求首行请求行由"请求方法"、"URL"和"HTTP协议版本"3个字段组成,之字段间用空格分隔. 响应报文响应报文同样主要分为三部分,响应首行(r...
2019-01-25 15:35:55
1008
原创 http协议_缓存cache机制
使用缓存的原因缓解服务器压力; 降低客户端获取资源的延迟:缓存通常位于内存中,读取缓存的速度更快。并且缓存在地理位置上也有可能比源服务器来得近,例如浏览器缓存。缓存实现方法让代理服务器进行缓存; 让客户端浏览器进行缓存。缓存设置http协议中,可以通过响应报文的"Cache-Control" 首部字段来控制缓存,如:Cache-Control : public, max-...
2019-01-23 20:36:38
526
原创 http协议_跨域问题
浏览器的同源策略及跨域请求具有相同协议,域名和端口的页面,则具有相同的源,即它们是来自同一个服务的资源.如,对"http://store.company.com/dir/page.html" 进行同源检测: URL 结果 原因 http://store.company.com/dir2/other.html 成功 http:/...
2019-01-23 10:39:59
2110
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人