mysql连接本地数据库的问题
MySql连接本地数据库时报网络问题今早起床学习大佬面经时,发现自己数据库都登不上去了
不论是命令行还是Navicat登录都是报以上错误,可我这是个本地的数据库,不应该存在网络错误呀。
解决:经过大佬的指点,重启服务中的Mysql,数据库的访问就正常了
思考:尽管问题很快被解决,但是我依然想不通为什么会报这种错误,认识到自己的不足,也就有了下面的学习,鉴于以往没有过这种错误,无从下手,我决定先翻译这段报错:
‘‘读取初始通信数据包时失去与MySQL服务器的连接,系统错误: 0”
Http状态码
HTTP常见状态码HTTP(超文本传输协议)常见状态码有以下几种:
1XX (信息类状态码):请求已经收到,进行后续处理
2XX (成功状态码)
200 成功:请求已经被成功实现
201 Created:请求已经被实现,且现有一个新的资源已经依据请求的需要而建立
204 No Content:服务器成功处理了请求,但是没有返回任何实体内容
3XX (重定向状态码):需要镜像附加操作以完成请求
301 Moced Oermanently:请求的网页已永久移动到新位置
302 Found:请求的网页已经临时移动到新的位置
304 Not Modified:客户端发送了一个带条件的请求,服务器允许请求访问资源,但是请求的条件不满足
4XX (客户端错误状态码):请求包含错误语法或不能被执行
400 Bad Request:请求报文存在错误语法
401 Unauthorized:表示发送的请求需要通过HTTP认证的认证信息
403 Forbidden:表示对请求资源的访问被服务器拒绝
404 Not Found:请求的资源不存在
5XX (服务器错误状态码):服务器处理请求的过程 ...
HashMap常见问题
Hashmap是否线程安全?为什么?不安全,JDK7存在死循环和数据丢失问题。
数据丢失:
并发赋值被覆盖:在createEntry方法中,新添加的元素直接放在头部,使元素之后可以被更快访问,但如果两个线程同时执行到此处,会导致其中一个线程的赋值被覆盖
已遍历区间新增元素丢失:当某个线程在transfer方法迁移时,其他线程新增的元素可能以及落在已经遍历过的哈希槽上。遍历完成后,table数组引用指向了newTable,新增元素丢失
新表被覆盖:如果resize完成,执行了table = newTable,则后续元素就可以在新表上进行插入。但如果多线程同时resize,每个线程都会new一个数组,这是线程内的局部对象,线程之间不可见。迁移后resize的线程会赋值给table线程共享变量,可能会覆盖其他线程操作,在新表中插入的对象都会被丢弃。
死循环:
扩容时resize调用transfer使用头插法迁移元素,虽然newTable是局部变量,但原先的table中Entry链表是共享的,问题根源是Entry的next指针并发修改,某线程还没有将table设为newTable ...
Get使用
原链接:视频同步笔记:狂神聊Git (qq.com)
版本控制在开发过程中用于管理我们的文件,目录或工程等内容的修改历史,方便查看历史记录,备份以便回复以前的版本的软件工程技术
实现跨域多人协同开发
追踪和记载一个或多个文件的历史记录
组织和保护你的源代码和文档
统计工作量‘
并行开发,提高工作效率
跟踪记录整个软件的开发过程
减轻开发人员的负担,节省时间,同时降低人为错误
简单说;一种管理多人协同开发项目的技术
常见版本控制工具:
Git SVN CVS VSS TFS
Git环境配置
安装:
进入官网,下载git(windows 64-bit.exe)/ 使用镜像下载 , 无脑下一步(Git 详细安装教程(详解 Git 安装过程的每一个步骤))
注:环境变量只是为了全局使用而已,不是必需品
卸载:
环境变量中删除Git , 再去卸载中心卸载程序
使用:
安装成功后,右键任意文件夹都会出现Git Bash(Unix与Linux风格命令行)和Git CMD(Windows风格命令行)
Linux简单口令cd 改变目录
cd.. 退回到上一 ...
HashMap底层原理
本篇知识梳理参考了B站up : 黑马程序员上海中心 的视频 : HashMap集合介绍+面试题讲解
HashMap底层原理
hashMap集合介绍
HashMap集合底层数据结构
hashMap继承关系
hashMap集合类成员
如何设计多个非重复的键值对要存储HashMap的初始化
HashMap集合介绍
Http分析
本片笔记适用于 图灵诸葛官方号) 课程 程序员入门必备教程—HTTP协议详解)
HTTP分层请求
HTTP协议
HTTP请求过程
TCP协议
HTTPS协议
Http分层:网络需要完成的任务:防止数据丢包,避免数据重复,数据完整性校验,数字转模拟信号,…,信号衰减
为了完成不同层面的各个任务,简化网络的复杂度,网络通信被分解为多层次结构,每一层都紧挨着上层或下层进行交互,这样在修改甚至替换某一层的软件时,只需要层与层之间的接口保持不变,就不会影响其他层。
OSI七层网络模型
TCP/IP协议簇
HTTP协议:超文本传输协议(HyperText Transfer Protocol , HTTP)
一种无状态,以请求、应答方式运行的协议。它使用可扩展语义和子描述消息格式,与基于网络的草文本消息系统可以灵活互动
HTTP报文格式:HTTP协议的请求报文和响应报文的结构基本相同,由三大部分组成:
起始行(start line):描述请求或响应的基本信息
头部字段集合(header):使用key-value形式更详细的说明报文
空行
消息正文(entity):实际传输的 ...
Redis 6补充
本片笔记适用于 b站尚硅谷 课程 Redis 6 入门到精通 超详细 教程
事物,锁机制
事物冲突问题
redis事物三特性
持久化框架
Redis主从复制
Redis集群
Redis应用问题解决
事物,锁机制:Redis事物:一个单独的隔离操作;事物中所有命令都会序列化,按顺序执行。事物执行过程中不会被其他客户端发送过来的命令请求打断
Redis事物主要作用就是串联多个命令防止别的命令插队
Multi | Exec | discard输入Multi开启事务,此时被成为组队阶段,输入的命令不会马上执行,而是依次进入命令队列,直到输入Exec后,将命令队列中命令依次执行,组队过程中可以通过discard来放弃组队
错误情况:
组队时命令发生错误,事物无法执行Exec后的命令语句,一个都不执行
组队时无误,执行时出现部分错误,错误的不执行,其他的执行
为什么需要做成事物:同一份数据被多处调用时,可能会使得值变得不合理,例如多人登录同一台TB账户购买东西,余额同时读取后再依次修改是不合理的
事务冲突问题:悲观锁:每次拿数据时都认为别人会修改,所以每次拿取数据时就上锁,其他人拿数据 ...
Redis 6基础
本片笔记适用于 b站尚硅谷 课程 Redis 6 入门到精通 超详细 教程
命令 |Redis (英语)
NoSQl概述
行式/列式数据库(大数据时代)
key键操作
5种基本数据类型
配置文件
发布与订阅
3种新数据类型
Redis基础基于K-V的高性能NoSQl数据库,提供了各种数据结构存储,具有高性能的多线功能,支持String(字符串) , list(链表) , set (集合), zset(sorted set:有序集合) 和 hash(哈希类型)
Redis支持各种方式的排序,为了保证效率,数据都是存储在缓存中的,但Redis会周期性把更新的数据写入磁盘,在此基础上实现了master-slave(主从)同步
Redis是 单线程 + 多路复用IO 技术;使用 6379端口
NoSql 数据库NoSQL (Not Only SQL):意为“不仅仅是SQL”,泛指非关系型数据库
NoSQL 不依赖业务逻辑存储方式,而是以简单的key-value模式存储,因此增加了数据库的扩展能力
不遵循SQL标准
不支持ACID
远超于SQL的性能
适用场景:
对数据高 ...
二叉树算法题
1.给定两个树的节点node1和node2,找到他们最低的公共祖先节点:方法一:
遍历整个二叉树,将所有节点的父节点以<Node,Node>形式存入hashmap中
创建HashSet,从node1开始依据HashMap依次将自己的父节点存入HashSet中
从node2开始溯洄父节点,一旦存在HashSet中就停止,此时就是首个公共祖先节点
//主函数
public static Node finFather(Node head, Node node1, Node2) {
HashMap<Node,Node> hashmap = new HashMap<>();
hashmap.put(head,head);
process(head,hashmap);
HashSet<Node> set1 = new HashSet<>();
Node o1 = node1;
//循环至头节点停下
while(o1 != hashmap.get(o1)) ...