摘要: 普通登录时,由于编码不统一,查询的数据中文会出现乱码,所以登陆时需要指明gbk编码。 --所以先退出当前登录。 --重新登录 再次查询结果: 阅读全文
posted @ 2021-02-07 11:28 吃个橘子丶 阅读(66) 评论(0) 推荐(0)
摘要: 1、 Explain + sql 语句 (模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的sql语句的,再加以分析优化) 功能:1)表的读取顺序 2)数据读取操作的操作类型 3)哪些索引可以使用 4)哪些索引实际被引用 5)表之间的引用 6)每张表有多少行被优化器查询 计划包含的信息: 阅读全文
posted @ 2021-02-07 11:16 吃个橘子丶 阅读(61) 评论(0) 推荐(0)
摘要: 方式一:继承Thread类,并重写run方法 注意:开启线程要使用start()方法,run()方法只是普通的方法调用。 实际上的创建线程还是通过本地方法,Java本身并不能开启线程。 方式二:实现Runnable接口,并重写run方法 注意:这里要通过Thread对象来开启线程。 方式三:实现Ca 阅读全文
posted @ 2021-02-03 21:26 吃个橘子丶 阅读(881) 评论(0) 推荐(0)
摘要: 1.原理 默认第一个元素已排序,后面每个元素各与前面元素依次进行比较,直到不需要交换位置,根据需求插入位置(升序或降序)。 画图解释如下: 第一轮比较: 第二轮比较: 第三轮比较: 第四轮比较: 结论:n个元素,要进行n-1轮比较,每轮比较次数不定。时间复杂度为O(n^2)。 2.核心代码如下: v 阅读全文
posted @ 2021-01-19 21:14 吃个橘子丶 阅读(115) 评论(0) 推荐(0)
摘要: 1.原理 拿未排序的第一个元素与其它元素依次进行比较,每轮比较获得一个最值(根据需要取最大或最小置于未排序元素首位),比较n-1轮。 画图解释如下(以升序为例): 第一轮比较: 第二轮比较: 第三轮比较: 第四轮比较: 根据上述,可以得出:n个元素要进行n-1轮比较,每轮比较次数-1;时间复杂度为O 阅读全文
posted @ 2021-01-19 20:18 吃个橘子丶 阅读(207) 评论(0) 推荐(0)
摘要: 1.原理 n个元素排序,相邻两个元素进行比较,按照需求,若两者比较大于0交换位置(升序),或者两者比较小于0交换位置(降序),每一轮比较排列好一个元素,排列好的元素下一轮不进行比较,共需要n-1次排序。 下面以升序为例: 第一次排序: 第二次排序: 第三次排序: 第四次排序: 排序完成。 核心代码: 阅读全文
posted @ 2021-01-19 17:32 吃个橘子丶 阅读(109) 评论(0) 推荐(0)
摘要: 1.什么是数据结构 简单来说,就是计算机存储、组织数据的方式。 2.分类 从逻辑上来看分为以下4种: a.集合结构 b.线性结构(一对一) c.树形结构(一对多) d.图形结构(多对多) 从实际存储结构来看分为一下两种: a.顺序存储结构(如:数组) 在内存中是一块连续的存储区域。 它的优势是:增删 阅读全文
posted @ 2021-01-19 16:26 吃个橘子丶 阅读(114) 评论(0) 推荐(0)
摘要: sychronized:JDK早期,synchronized 叫做重量级锁, 因为申请锁资源必须通过kernel, 系统调用。后面对其进行了优化。 较早的版本,OS的资源 互斥量 用户态 -> 内核态的转换 重量级 效率比较低 现代版本,无锁 - 偏向锁 -轻量级锁(自旋锁)-重量级锁 CAS: C 阅读全文
posted @ 2021-01-13 00:21 吃个橘子丶 阅读(76) 评论(0) 推荐(0)
摘要: HashMap: 1.底层由数组,链表组成。jdk1.8以后加入了红黑树。(目的是为了降低深度) 2.以键值对的方式存储,存储是无序的。允许使用多个null值和一个null键。 3.默认长度是16,扩容因子是0.75,每次扩容2倍。 至于为什么扩容两倍,就要从如何存储说起。每当put一个entry时 阅读全文
posted @ 2021-01-12 01:03 吃个橘子丶 阅读(37) 评论(0) 推荐(0)