自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 n × n 的二维矩阵顺时针旋转 90 度

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],

2021-06-25 20:49:04 1010

原创 常见面试题----数据库设计需要注意什么?

一、基础规范:尽量使用InnoDB存储引擎解读:支持事务、行锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高新库的话默认使用utf8mb4字符集解读:utf8mb4是utf8的超集,emoji表情以及部分不常见汉字在utf8下会表现为乱码,故需要升级至utf8mb4。​ 默认使用这个字符集的原因是:“标准,万国码,无需转码,无乱码风险”,并不“节省空间”。数据表、数据字段必须加入中文注释解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的禁止使用存储过程、

2021-05-14 17:28:12 706 3

原创 JDK8 新特性 Stream API使用 马士兵教育整理的笔记

JDK8新特性 Stream API使用 马士兵教育整理的笔记Stream是一组用来处理数组、集合的APIJava 8之所以费这么大功夫引入函数式编程,原因有二:代码简洁,函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环多核友好,java函数式编程使得编程并行程序从未如此简单,你需要的全部就是调用一下paralle()方法。Stream特性不是数据结构,没有内存存储不支持索引访问延迟计算支持并行很容易生成数组或集合(List,Set)支持过滤,查找

2021-05-08 22:47:22 188

原创 反转链表

反转链表package kong;public class LinkNode { int value; LinkNode next; public LinkNode(int value){ this.value = value; }}class Solution{ public static void main(String[] args) { LinkNode linkNode1 = new LinkNode(1);

2021-05-07 22:42:16 71

原创 装饰者模式

装饰者模式装饰者模式——动态地将责任附加到对象上。想要扩展功能,装饰者提供了比继承更有弹性的替代方案。以买手抓饼为例子抽象原料类------Materialpackage decorator5;public abstract class Material { String desc; Double price; public String getDesc() { return desc; } public void setDesc

2021-05-06 21:41:54 81 1

原创 快速排序

快速排序–javapackage algorithm;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { //定义数组 int[] arr = {6, 3, 7, 9, 5, 1, 4, 8}; //调用方法,进行快速排序 quickSort(arr, 0, arr.length - 1);//

2021-05-05 11:05:14 52

原创 端点面试总结的面试题

自旋锁和排他锁和可重入锁有什么区别可重入锁外层函数获取锁之后,内层代码仍然可以获取该锁,在同一线程在外层方法获取锁的时候,在进入内层方法会自动获取锁自旋就是获取锁的时候,如果锁已经被其它线程获取,那么使用循环的方式不断尝试去获取锁,这样可以减少线程上下文之间的切换AQS,即AbstractQueuedSynchronizer, 队列同步器,是一个抽象类,它是Java并发用来构建锁和其他同步组件的基础框架。CAS:乐观锁思想比较当前工作内存中的值和主内存中的值,如果这个值是期望的,那么则执行操作

2021-04-27 23:08:25 528

原创 总结GC三种算法

总结GC三种算法内存效率复制算法>标记清除算法>标记压缩算法(时间复杂度)内存整齐度复制算法=标记压缩算法>标记清除算法内存利用率标记清除算法=标记压缩算法>复制算法思考一个问题:难道没有最优算法吗?答:没有,没有最好的算法,只有最合适的算法 ---->GC:分代收集算法年轻代:存活率低复制算法老年代:区域大;存活率高标记清除算法(内存碎片不是太多)+标记压缩混合实现...

2021-04-13 21:22:28 116

原创 Redis工具类

Redis工具类的使用import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Component;import org.springframework.util.CollectionUtils;import java.util.List;.

2021-03-23 10:02:11 134

原创 JVM常见面试题(1)

JVM常见面试题(1)1、什么是双亲委派机制?①如果一个类加器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行;②如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归;③如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式。优势:避免类的重复加载;保护程序安全,防止核心API被随意篡改2、在JVM中表示两个class对象是否为同一个类存在两个必要条件:①类的完整类名必须一

2021-02-10 21:38:20 133

原创 ~{...} 代码块表达式的用法

~{…} 代码块表达式支持两种语法结构推荐: ~{templatename::fragmentname}支持: ~{templatename::#id}templatename:模版名,Thymeleaf会根据模版名解析完整路径:/resources/templates/templatename.html,要注意文件的路径。fragmentname:片段名,Thymeleaf通过th:fragment声明定义代码块,即: th:fragment=“fragmentname”id:HTML的id选

2021-02-08 01:11:44 989

原创 spring mvc中乱码问题

乱码问题1、我们首先页编写一个简单的提交的表单<form action="test" method="get"> <input type="text" name="name"> <input type="submit"></form>2、在后台编写对应的处理类@RequestMapping("/test") public String test3(@RequestParam("name") String name,

2021-01-29 18:16:23 111 1

原创 三大范式

1、join连接join对比操作符名称介绍[inner] join只有两个表相匹配的行才会出现在结果集中left join即使右表中没有匹配,左表始终返回所有的行信息right join即使左表中没有匹配,左表始终返回所有的行信息代码测试2、建表CREATE TABLE student( sno INT AUTO_INCREMENT COMMENT '学号', sname VARCHAR(10) COMMENT '姓名', sage INT

2021-01-15 00:27:33 320

原创 关于join操作

1、join连接join对比操作符名称介绍[inner] join只有两个表相匹配的行才会出现在结果集中left join即使右表中没有匹配,左表始终返回所有的行信息right join即使左表中没有匹配,左表始终返回所有的行信息代码测试2、建表CREATE TABLE student( sno INT AUTO_INCREMENT COMMENT '学号', sname VARCHAR(10) COMMENT '姓名', sage INT

2021-01-13 23:52:06 375

原创 数据库安装与一些操作

1、Mysql安装方法第一步:去官网下载mysql的压缩包(重点)第二步:解压,然后在mysql安装目录下创建一个my.ini配置文件,更改my.ini文件里面的内容,如下:[mysqld]port=3306 //设置端口basedir=D:\mysoftware\mysql-8.0.19-winx64 //设置mysql的安装目录datadir=D:\mysoftware\mysql-8.0.19-winx64\data //设置mysql数据库的数据的存

2021-01-12 22:35:57 121

原创 第一篇博客(个人)练习

MarkDown学习1标题:#+空格+标题名字回车(一级标题)Markdown学习2##+空格+标题名字回车(二级标题)MarkDown学习3###+空格+标题名字回车(三级标题)粗体:** +内容+ ** :粗体*+内容 + * :斜体~~ + 内容+ ~~ :废弃Hello wordhello wordhello wordhello word引用(>+空格即可)引用别人的文章时,需要用到分割线(— 或 三个 ***)图片(![名字]+(路径)

2021-01-11 19:27:21 123

空空如也

空空如也

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

TA关注的人

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