- 博客(83)
- 收藏
- 关注
原创 1 hour docker
1 hour docker是什么Docker 是一个应用打包、分发、部署的工具。你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。打包、分发、部署打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 W
2022-05-01 15:14:08
416
原创 8 hours golang
目录8 hours golanggo优势1.极简部署2.静态类型语言3.语言层面的并发4.强大的标准库5.简单易学6.大厂领军go指令变量声明方式业务场景打出变量的数据类型const与iota使用const定义枚举类型函数返回值init函数与import导包匿名与别名导入指针defer数组slicemap使用struct面向对象中类的表示与封装面向对象中的继承面向对象中的多态interface空接口万能类型与类型断言机制变量的内置pair结构反射结构体标签taggoroutinechannelclose与r
2022-04-24 15:39:02
1060
原创 Mybatis拿到插入后的主键值
public interface CuisineMapper { int insert(Cuisine record); int insertSelective(Cuisine record);}注意:返回的是操作的成功条数<insert id="insertSelective" parameterType="com.freshidentification.backstage.pojo.Cuisine" useGeneratedKeys="true" keyProperty="
2022-03-14 11:33:08
1033
原创 Gorm学习笔记
目录连接MySQL基本示例模型定义更多连接MySQL基本示例golang import包前的字母与符号package mainimport ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql")type UserInfo struct { ID uint Name string Gender string Hobby string}func main() { /
2022-01-16 17:55:12
545
原创 微信小程序学习笔记
目录项目结构WXML 和 HTML 的区别WXSS 和 CSS 的区别小程序启动的过程页面渲染的过程小程序中组件的分类常用的视图容器类组件项目结构pages 存放所有小程序的页面utils 存放工具性质的模块(例如:格式化时间的自定义模块)app.js 小程序项目的入口文件app.json 小程序项目的全局配置文件app.wxss 小程序项目的全局样式文件project.config.json 项目的配置文件sitemap.json 用来配置小程序及其页面是否允许被微信索引WXML
2022-01-10 23:12:07
646
1
原创 Gin学习笔记
目录返回json参考返回jsonpackage mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() r.GET("/json", func(c *gin.Context) { // 方法1:使用map //data := map[string]interface{}{ // "name": "小王子", // "message": "hello w
2022-01-07 23:23:39
532
原创 Golang学习笔记
目录特点天然并发函数可以返回多个值开发目录结构Golang 执行流程分析参考特点Go 语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率动态语言开发维护的高效率使用一个表达式来形容 Go 语言:Go = C + Python说明 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发天然并发从语言层面支持并发,实现简单goroutine,轻量级线程,可实现大并发处理,高效利用多核基于 CSP 并发模型(Communicating S
2022-01-05 12:03:59
2354
原创 MySQL实战45讲
目录一一大体来说,MySQL可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、 Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为了默认存储引擎。也就是
2021-09-13 15:00:16
5771
原创 对线面试官
目录注解注解代码中的特殊标记可在编译、类加载或运行时被读取,并执行相应操作例如:Spring的@Controller、@Param、@SelectLombok的@Slf4j、@DataJava的@Override、@Deprecated、@FunctionalInterfaceJava原生注解大多用于标记和检查Java原生还有元注解,用于修饰注解,例如@Retention和@Target@Retention用于设置注解的生命周期(SOURCE、CLASS、RUNTIME)@Target
2021-09-06 14:58:29
595
原创 面试速记之操作系统
目录进程调度算法先来先服务短进程优先高响应比优先时间片轮转法优先级调度多级反馈队列进程调度算法先来先服务根据到达先后顺序,考虑等待时间非抢占式优点:公平、简单、不会饥饿缺点:对短进程不利短进程优先短进程优先得到服务,考虑运行时间包括非抢占式和抢占式(最短剩余时间优先)缺点:不公平,对长进程不利,可能产生饥饿高响应比优先根据响应比从高到低进行调度,兼顾了等待和运行时间响应比 = (等待时间 + 要求服务时间) / 要求服务时间非抢占式不会饥饿时间片轮转法公平、轮流地为各个进程
2021-07-22 10:22:30
326
原创 面试速记之网络
目录TCP三次握手第一次握手第二次握手第三次握手Q:握手为什么不是两次、四次?四次挥手第一次挥手第二次挥手第三次挥手第四次挥手补充MSLQ:挥手为什么要四次?Q:TIME-WAIT状态为什么需要保持2MSL?TCP三次握手起初客户端和服务端都处于CLOSED状态服务端监听某个端口,进入LISTEN状态第一次握手客户端发给服务端SYN = 1,seq = x发送完毕后,客户端进入SYN_SEND状态第二次握手服务端发给客户端SYN = 1,ACK = 1,seq = y,ACKnum =
2021-07-13 23:41:24
167
原创 面试速记之JVM
目录JVM执行引擎执行过程从.java到机器码类加载1.加载2.连接a.验证b.准备c.解析3.初始化类加载器(ClassLoader)类型双亲委派优点破坏双亲委派解决运行时数据区1.程序计数器2.虚拟机栈生命周期栈帧Ⅰ.局部变量表reference类型定位对象方式a.句柄b.直接引用Ⅱ.操作数栈Ⅲ.动态连接Ⅳ.返回地址3.本地方法栈4.堆TLAB补充:对象空间的分配JVM参数分代思想5.方法区变迁组成(JDK6)1.类型信息2.域信息3.jit代码缓存4.方法信息5.静态变量6.运行时常量池字符串常量池(
2021-07-13 18:13:11
2358
原创 面试速记之Java并发
目录并行并发线程实现的方法设置线程名获取线程名获取当前工作线程引用线程休眠守护线程加入线程(插队)join()join(long millis)礼让线程yield()线程优先级线程是否活跃当前线程的线程组中活跃线程数目线程状态同步同步代码块同步方法非静态方法静态方法死锁线程通信notify()notifyAll()sleep与wait方法的区别线程池并行多核cpu,多个任务同时跑并发多任务申请资源,只能处理一个任务时间间隔短导致看起来像同时执行,实则是多任务交替执行线程实现的方法1.继承thr
2021-07-10 13:47:54
1617
1
原创 面试速记之Java SE
目录集合ListArrayListVectorLinkedListCopyOnWriteArrayListConcurrentLinkedQueueSetHashSet补充:说说 == 与 equalsTreeSetCopyOnWriteArraySetMapHashMapjdk版本对比1.8-1.8+时间复杂度存储过程散列表解决hash冲突1.开放地址法2.拉链法HashTableTreeMapConcurrentHashMap1.71.8QueuePriorityQueueIterator迭代器Stri
2021-07-09 22:20:27
1221
6
原创 面试速记之MySQL
目录数据类型1.整数2.小数3.日期4.文本、二进制5.字符sql优化1.sql语句优化2.用索引3.表优化如何优化慢sqlsql语句sql四种连接1.内连接2.左(外)连接3.右(外)连接4.全连接筛选的方法limitsql分类删除相关其他三大范式mysql逻辑架构查数据过程存储引擎默认对比适用场景索引简介优点缺点分类主键索引唯一索引单列索引复合索引全文索引按 是否数据 + 索引?a.聚簇索引b.非聚簇索引按 是否回表?a.覆盖索引b.回表操作mysql索引底层优点哈希索引其他索引优化索引失效索引的原理
2021-07-06 21:30:47
2127
1
原创 面试速记之SpringMVC
目录简介工作流程主要组件简介Spring 对 web 框架的一个解决方案一个总的前端控制器 servlet,负责接收请求定义了一套路由策略,url -> handler的映射使用视图解析技术展现给前端工作流程1.dispatcherservlet 接收 request2.dispatcherservlet 调 handlermapping 找 handler,拿到一串handler执行链3.dispatcherservlet 调 handleradapter 执行 handler
2021-07-06 19:53:28
248
原创 面试速记之Spring
目录前言IOC容器实现方式对比bean管理配置文件方式DI注解方式对象创建属性注入完全注解开发Spring中bean类型bean的作用域bean的生命周期AOP动态代理jdk——需要接口cglib——无需接口术语切入点其他事务Spring中有两种事务Spring事务传播行为隔离级别脏读不可重复读幻读/虚读前言本篇内容较繁杂,笔者会根据经验逐步浓缩,力求留下的都是精华。IOC降低耦合把对象创建和对象调用交给Spring关键点:xml解析、工厂模式、反射演变过程:获取bean对象示例b
2021-07-05 22:33:08
850
7
原创 面试速记之Redis
目录简介为什么拿它做缓存高性能高并发为什么不用map或guava?redis与memcached区别redis线程模型file event handler组成原理redis常见数据结构StringHashListSetSorted Set(ZSet)redis过期时间失效原理定期删除惰性删除内存淘汰策略六种淘汰策略4.0新增redis持久化机制RDB(快照)AOF(只追加文件)三种aof策略redis事务缓存雪崩解决缓存穿透解决缓存无效key(治标不治本)布隆过滤器组成优点缺点其他如何保证双写一致性Cach
2021-07-05 14:55:33
832
原创 面试速记之springboot
是什么spring提供的一个快速开发工具包快速开发 spring + springmvc通过spring-boot-starter-web依赖快速开发web应用简化配置,约定优于配置整合其他组件简单(starter机制),开箱即用自动装配原理启动类(ProjectNameApplication.java)上有@SpringBootApplication其内使用@EnableAutoConfiguration其内部使用@Import导入AutoConfigurationImportSele
2021-06-24 22:32:53
245
1
原创 面试速记之Mybatis
目录JDBC优点缺点不是完整的ORM框架与hibernate对比sql与orm之争学习成本选取sql优化对象管理缓存机制一级缓存二级缓存执行过程拿数据源执行sql执行数据库总结#{}和${}的区别#{}${}mybatis插件如何写一个插件?JDBCJava提供的操作数据库的APImybatis封装了jdbc优点sql写在xml中,解耦支持编写动态sql便于重用消除冗余代码,不必关心连接集成spring方便支持表与实体间的关系映射缺点对开发者的sql编写有一定要求,尤其是业务复杂场景
2021-06-24 17:40:51
371
2
原创 BTree与B+Tree
目录前言B-TreeB+Tree区别扩展聚簇索引好处局限性前言本文内容大部分出自尚硅谷的MySQL教程。B-TreeB-树的非叶子节点中有关键字、指向关键字具体信息的指针和指向下一个节点的指针,叶子节点没有指向下一个节点的指针,仅有关键字和指向关键字具体信息的指针。在B-树中,越靠近根节点的记录查找时间越快,只要找到关键字即可确定记录的存在。B+TreeB+树的非叶子节点中只有关键字和指向下一个节点的指针,记录只放在叶子节点中。在B+树中每个记录的查找时间基本是一样的,都需要从根节点走到
2021-05-10 20:27:43
249
原创 滑动窗口题集
最小覆盖子串https://leetcode-cn.com/problems/minimum-window-substring/class Solution { //原则:左开右闭 public String minWindow(String s, String t) { //t的字典 Map<Character,Integer> need = new HashMap<>(); //窗口字典 Map&
2021-04-17 22:27:17
100
原创 各种知识点杂谈
复习时候不做笔记回过头来感觉脑袋空空~最近又变懒了,还是勉勉强强写点东西吧~MySQLlimit和offset用法mysql里分页一般用limit来实现select* from article LIMIT 1,3select * from article LIMIT 3 OFFSET 1上面两种写法都表示取2、3、4三条数据limit 要跳过的数量 , 取的数据的条数limit 取的数据的条数limit 取的数据的条数 offset 要跳过的数量...
2021-04-14 21:37:13
100
原创 RabbitMQ杂记
使用用户名:guest密码:guest登录出现如下情况(dashboard端口15672)这里采用添加一个超管的方式解决#账号:admin 密码:adminrabbitmqctl add_user admin adminrabbitmqctl set_permissions -p / admin ".*" ".*" ".*"rabbitmqctl set_user_tags admin administrator开MQTT插件rabbitmq-plugins enable rab
2021-04-13 21:46:19
234
原创 牛客错题集
开新坑~不积硅步无以至千里,不积小流无以成江海。祝君笔面成功!下列代码的输出结果?public class HelloB extends HelloA { public HelloB() { } { System.out.println("I’m B class"); } static { System.out.println("static B"); } public static void main(String[] args) { new H
2021-04-11 17:11:00
164
1
原创 EMQ X Broker
启动emqx start查看状态emqx_ctl status停止emqx stop重启emqx restart卸载rpm -e emqx查找安装包rpm -qa | grep emqx
2021-04-07 10:23:14
524
1
原创 HTTP中的Query与Body
Query代表请求的参数,URL以?key=value的形式呈现,例如:user?id=1Body代表请求体中的数据。Get请求只能传Query参数,POST可以传Query和Body(常用)两种形式的参数。Query的值只能是一个字符串,不能传递对象类型的参数,如果参数中涉及到了传递对象,就要选择Body传参,一般json等都是Body传参。参考:[1]https://blog.csdn.net/yinge0508/article/details/110700350[2]https://w
2021-03-15 12:09:05
5392
原创 RESTful
目录简介ResourceRepresentationState Transfer简介运用了REST理论的开发称为RESTful,它是一种架构风格。Resource在网络上,一切皆资源,每一种资源都有一个特定的URI指向。Representation资源呈现出的具体方式,称为“表现层”(representation)。例如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现;图片可以用JPG格式表现,也可以用PNG格式表现。URI只代表资源实体,不代表它的形式。它的具体
2021-03-13 22:04:53
208
原创 MyBatis逆向工程
MyBatis Generator简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器。它可以快速地根据表生成对应的映射文件、接口以及bean类/支持基本的增删改查,以及QBC风格的条件查询。但是表连接、存储过程等这些复杂sql的定义需要我们手工编写。QBCQBC(Query By Criteria) API提供了检索对象的另一种方式,它主要由Criteria接口、Criterion接口和Expresson类组成,它支持在运行时动态生成查询语句。...
2021-03-13 20:54:47
139
原创 Linux系统配置网络
通过ip a命令查看默认网卡(ens33)是否存在ip地址。若无,则设置网络服务在每次启动时自动获取ip地址,具体操作如下:将VMware的当前虚拟机软件网络配置为NAT模式开启Centos自动ip获取vi /etc/sysconfig/network-scripts/ifcfg-ens33将配置文件中的ONBOOT=no改为ONBOOT=yes重启当前Linux或重启网络服务network systemctl restart network测试Linux是否能正常访
2021-03-10 17:09:11
99
原创 设计模式之UML类图
目录基本介绍基本介绍UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如右图:...
2021-03-09 13:03:05
170
原创 ArrayList扩容机制探究
版本:JDK1.8 //当执行add方法时会先判断ArrayList是否需要扩容,然后再保存数据。 public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; }private int size; //数组实际长度private static fina
2021-03-07 17:19:04
283
2
原创 ArrayList与LinkedList区别
目录线程安全底层数据结构插入和删除线程安全ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全。底层数据结构(源码版本:JDK1.8)查看 ArrayList 源码,定位到其某个构造器看它初始化过程: public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[initialCapac
2021-02-25 20:29:41
379
2
原创 LinkedList类源码学习
源码版本:Java8/* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */package source;import java
2021-02-25 18:19:50
103
原创 设计模式中之七大原则
目录前言七大原则单一职责原则注意事项和细节接口隔离原则依赖倒转原则依赖关系传递的三种方式注意事项和细节前言本文为尚硅谷韩顺平老师的 Java 设计模式课程的笔记。七大原则单一职责原则接口隔离原则依赖倒转(倒置)原则里氏替换原则开闭原则迪米特法则合成复用原则设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础,即设计模式为什么这样设计的依据。单一职责原则一个类应该只负责一项职责。例如,类 A 负责两个不同职责:职责 1,职责 2。当职责 1 需求变更而改
2021-02-21 19:51:42
154
1
原创 Linux基础
目录特点分支文件指令文件相关lsls -lclearcdpwdmkdirtouchcpmvrmcatmorelessheadtailechotar网络相关ip addrping特点开放性(开源)多用户:root用户为超级管理员,具有Linux系统的最高权限(终端:管理员为#,普通用户为$)多任务良好的用户界面优异的性能与稳定性单用户:一个用户,在登录计算机(操作系统),只能允许同时登录一个用户多用户:多个用户,在登录计算机(操作系统),允许同时登录多个用户进行操作单任务:一个任务
2021-02-19 19:36:24
168
原创 Java表达式类型的自动提升
所有的 byte 类型、short 类型和 char 类型将被提升到 int 类型。整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。例题:代码片段byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6; b6=b4+b5; b3=(b1+b2); System.out.println(b3+b6);关于上面代码片段叙述正确的是A. 输出结果:13B. 语句:b6=b4+b5编译出错C. 语句:b3=b1+b2编译出错D
2021-02-17 17:35:25
300
1
转载 Java的super关键字
目录super可以用来引用直接父类的实例变量super可以用来调用直接父类方法super()可以用于调用直接父类构造函数super实际使用示例super可以用来引用直接父类的实例变量可以使用super关键字来访问父类的数据成员或字段。如果父类和子类具有相同的字段,则使用super来指定为父类数据成员或字段。Animal和Dog都有一个共同的属性:color。 如果我们打印color属性,它将默认打印当前类的颜色。要访问父属性,需要使用super关键字指定。class Animal { St
2021-02-17 17:12:02
112
1
原创 Java访问权限修饰词
目录前言包访问权限public:接口访问权限private:你无法访问protected:继承访问权限前言本文内容参考《Java编程思想(第4版)》包访问权限如果不提供任何访问权限修饰词,则意味着它是“包访问权限”。默认访问权限没有任何关键字,但通常是指包访问权限(有时也表示成为friendly)。这就意味着当前的包中的所有其他类对那个成员都有访问权限,但对于这个包之外的所有类,这个成员却是 private。public:接口访问权限使用关键字 public,就意味着 public 之后紧跟
2021-02-15 17:15:10
384
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人