自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JohnnyLin

在校大学生 个人博客网址:www.johnnylin.club 一个不止于技术的博客

  • 博客(382)
  • 收藏
  • 关注

原创 蓝桥杯算法全家桶(终极完结版)

蓝桥杯考察范围:蓝桥杯算法合集这个系列包括: 蓝桥杯常用算法系列 蓝桥杯五年真题两次模拟系列 算法竞赛Java常用API总结 以及 常用数据结构 这四个模块,里面的算法题目大多是蓝桥杯历届真题。文章都是是自己备战学习过程中总结出来的,这里一并贴出,方便大家学习和交流。个人水平有限,文章中有错误的地方还请大佬们在评论区指出或私信,方便改正,以免以谬传谬,在此先谢过了。蓝桥杯算法合集蓝桥杯常用算法系列蓝桥杯五年真题两次模拟系列五年真题两次模拟算法竞赛Java常用API总结常用数据结构算法书籍分享蓝桥

2020-06-11 23:34:52 12287 13

原创 基于Hexo Github搭建个人博客(一):将博客推到Github Page

前言原先我是在CSDN边学习算法准备蓝桥杯,然后边写博客记录自己的学习心得的。后来偶然机会在B站看到有个大三的Up主搭建了自己的个人的博客写文章,我觉得挺好的也挺酷的,所以也就有了后来这个博客和这篇文章。文章目录前言1.什么是hexo2.安装hexo前期准备预处理方法一、通过npm下载cnpm方法二、修改npm的默认镜像源正式安装hexoHexo初始配置安装deployer本地查看效果部署博客...

2020-04-04 21:03:55 429 4

原创 SpringBoot学习(一)

@Configuration注解配置类 里面使用@Bean标注在方法上,通过该方式给容器注册组件,以方法名作为组件的id(也可以通过@Bean(“组件名”) 显示指定),返回类型就是组件类型,返回值就是组件在容器中的实例。默认也是单实例的。配置类本身也是组件,可以在主启动类中通过以下代码获得run.getBean(Myconfiguration.class),其中run为springboot容器@Configuration 注解,自SpringBoot2.x之后增加 了proxyBeanM

2022-04-14 12:32:39 506

原创 【MySQL】Mysql必会语句

--使用mysql root -p 提示权限不够: Access denied for user 'ODBC'@'localhost' (using password: YES)msyql -u root -puse goodsadmin; -- 使用数据库alter table person add column card_id int(12); --增加列card_idcreate table IDCard(card_id int(12) primary key, card_code

2022-04-14 12:32:13 1058

原创 SpringBoot(一)—— SpringBoot中SpringMVC配置

SpringBoot 已经内置了很多SpringMVC配置。如果还想增加配置,可以通过两种形式:第一,通过实现SpringMVCConfiguration接口。第二,在application.yml配置文件中,配置SpringMVC的相关属性。属性可参考spring-boot-autoconfigure.jar中的WebMvcProperties...

2022-04-14 12:31:43 2085

原创 小林的debug日志

Java项目,Spring 配置文件applicationContex.xml文件任意,需要时在主程序使用如下调用即可获得Ioc容器ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

2022-04-14 12:30:54 274

原创 【BUG】—— Mybatis

### Error building SqlSession.### The error may exist in com/johnny/entity/personMapper.xml### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Map

2022-04-14 12:29:51 272

原创 9/10字节技术中台一面凉经

1、 你说你的项目用到的公司的分布式锁组件,这个组件什么实现原理,你能讲一讲吗?分布式锁要保证互斥性。 对同一个key进行操作。使用redis的setnx指令,该key不存在时才能设置成功,如果存在则不操作。避免死锁的发生。 设置key时同时为该key设置过期时间。避免误解锁。 将该key的值设置成对应的ip值。当然也有可能被该机器实例的不同redis实例误解锁。因此可以使用UUID作为值。使用redis分布式锁存在问题设置key和过期时间不是原子操作: setNx保证防止误解锁: 设置

2022-04-14 12:28:52 1047 1

原创 Mysql学习 (一)——SQL优化

Mysql 架构介绍数据库引擎性能下降的原因性能下降主要有两个表现: 执行时间长、 等待时间长可能原因有以下四种:查询语句写的烂发生索引失效关联查询太多join服务器调优及各个参数设置常见通用的Join查询SQL执行顺序机读顺序Join图inner join内连接left joinright join索引什么是索引Mysql官方对索引的定义是,帮助Mysql高效获取数据的数据结构。通俗来讲,索引就相当于字典的目录。数据本身之外,数据库还维

2022-04-14 12:27:19 170

原创 Dubbo学习(四) —— Dubbo 原理

RPC 原理一次完整的RPC调用流程(同步调用,异步另说)如下:1)服务消费方(client)调用以本地调用方式调用服务;2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;3)client stub找到服务地址,并将消息发送到服务端;4)server stub收到消息后进行解码;5)server stub根据解码结果调用本地的服务;6)本地服务执行并将结果返回给server stub;7)server stub将返回结果打包成消息并发送至消费方;8)

2022-04-14 12:26:59 99

原创 Java面试 —— Redis相关

缓存雪崩和解决方案重复排队、并发超卖、数据不一致redis分布式锁单机多线程下存在并发问题。 – 在JVM层面加锁,如synchronized或ReentrantLock分布式部署下存在超卖问题。 --使用Redis分布式锁,加解锁。String value = UUID.random().toString();Boolean flag = stringRedisTemplate.opsForValue().setIfAbsent(REDIS_LOCK, value); //加锁s

2022-04-14 12:25:51 234

原创 使用WebSocket实现聊天室

WebSocketnew WebSocket("服务器地址") //创建WebSocket//open: 当webSocket服务连接成功时触发socket.addEventListener('open',funtion(){})Websocket事件open 连接建立时触发message 客户端接收服务端数据时触发error 通讯发生错误时触发close 连接关闭时触发Websocket 方法Socket.send() 使用连接发送数据Socket.close(

2022-04-14 12:22:13 3157

原创 百度笔试复盘

按照短作业优先执行顺序,4个作业的执行顺序为J1、J4、J2、J3,执+行时间分别是3、(3+5)、(3+5+8)、(3+5+8+10),则平均周转时间为(3 +(3+5)+ (3+5+8)+ (3+5+8+10))/4=13.25函数式接口JVM作业调度先来先服务选的是:J1高响应比优先算法: 响应比 = (等待时间 + 要求服务时间) / 要求服务时间静态方法D在C之前: 成员方法调用前先使用Linux# 查找当前目录中文件属主具有读、写权限,并且文件...

2021-09-18 15:07:39 134

原创 Shein笔试

小概率事件不等于不可能事件B、如果本类属性是成员属性,静态方法不能访问。C、类方法可以调用外部其他类的方法。只要实力化对象,也是可以调用实例方法的。解决哈希冲突的方法有三种,分别是: 开放地址法:寻找下一个为空的数组下标,而后将冲突元素存储再散列法(二次哈希法):再次使用一个不同的哈希算法再计算一次 (第一次%16换另一个数进行%运算)链地址法(拉链法):将所有冲突元素按照链表存储,冲突后时间复杂度变为O(1+n)n为冲突元素个数)[hashMap就是用这种方法]哈希函数冲突处理的方式.

2021-09-18 15:06:52 1429

原创 美团笔试复盘

整除AC 26%听说把long换成BigInteger可以AC82%package meituan;import java.math.BigInteger;import java.util.Scanner;/** * @author Johnny Lin * @date 2021/9/15 12:59 */public class Divide { public static void main(String[] args) { Scanner reade

2021-09-18 15:05:34 200 1

原创 Java面试 —— MySQL相关

MySQL 相关数据库基础什么是事务?事务的特性:(ACID)ACID实现原理事务隔离级别并发事务分类四种隔离级别X锁和S锁MVCCUNDO_LOG版本链ReadViewRRMVCC优缺点常用SQL 语句Truncate1、 数据库的三大范式数据库基础什么是事务?事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功。即使一个操作失败,事务也不会成功。如果所有操作成功则事务提交,其修改将作用于其他数据库进程。如果操作失败,则事务将回滚,该事务所有操

2021-09-08 23:12:15 203

原创 剑指offer打卡day25 —— Acwing 59. 把数字翻译成字符串

【题目描述】Acwing 59. 把数字翻译成字符串【思路】class Solution { public int getTranslationCount(String s) { char c[] = s.toCharArray(); int n = c.length; int f[] = new int[n + 1]; f[0] = 1; // 0个字符的翻译方案数为1 for (int i = 1; i

2021-09-06 23:46:22 128

原创 Redis(四) ——Jedis操作Redis

2021-07-15 19:52:58 94

原创 腾讯2019 暑期实习提前批笔试 —— AcWing 570. 气球游戏

【题目描述】AcWing 570. 气球游戏【思路】双指针,i在右,j在左。i从左至右依次扫描,每扫描一个相应更新s[ c[i] ]和颜色数colors,当颜色数达到要求m时,尝试移动j指针使得在满足colors==m的情况下,j离i越近越好。因此j的移动是有条件的,即:s[ c[j] ] > 1 || c[j] == 0import java.util.Scanner;public class Main{ static int N = 1000010, M = 201

2021-07-14 20:31:28 136

原创 Week2 腾讯2019 暑期实习提前批笔试 —— ACWing 569. 猜拳游戏

【题目描述】569. 猜拳游戏 x/y (mod p) 等于x乘以 y的模逆元,而y的模逆元等于 y^(p - 1),可以使用快速幂计算【思路】目标: 计算 C(n, s) * 2 ^( n - s) % p上式C(n, s) * 2 ^( n - s) % p = A(n,s) /s! * 2 ^( n - s) % p在计算阶乘的过程中可能出现数据范围溢出 根据费马小定理可以转化为 模逆元计算 求 1/s!(mod p) 实际上就是 求 s^(p -2) ( 要求 s %

2021-07-13 17:53:43 113

原创 Dubbo学习(三) —— Dubbo常用配置

Dubbo配置配置原则首先,从Dubbo支持的配置来源说起,默认有四种配置来源:JVM System Properties,-D 参数Externalized Configuration,外部化配置(如dubbo.xml)ServiceConfig、ReferenceConfig 等编程接口采集的配置(通过编码形式,如写个配置类标注为@Component)本地配置文件 dubbo.properties覆盖关系优先级顺序:JVM 启动-D参数优先,这样可以使用户在部署和启动时进行参数的

2021-07-11 23:50:44 1064

原创 Dubbo学习(二) —— SpringBoot 整合Dubbo

小项目启动zookeeper注册中心# 进入zookeeper安装目录的bin目录#启动服务端sudo zkServer.sh start#启动客户端sudo ./zkCli.sh监控中心dubbo-admin是Dubbo服务管理中心,dubbo-admin 是图形化管理页面。可以从注册中心中获取到所有的提供者/消费者进行配置管理。Dubbo admin is a spring boot application, you can start it with fat jar or in

2021-07-09 15:36:53 619

原创 Dubbo学习笔记(一) 分布式理论及Dubbo

分布式理论什么是分布式系统分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统。分布系统(distributed system)是建立在网络之上的软件系统应用架构的发展演变单一应用架构当网站流量 很小时,只需一个 应用,将所有功能都部署在一起 ,以减少部署节点和成本。此时用于简化增删改查工作量的数据访问框架是关键。 缺点:不易于扩展,每次扩展新功能都需要将项目重新打包 成war包再重新部署到各个服务器上随着功能的不断增,系统越显臃肿。垂直应用架构按功能将系统

2021-07-09 11:59:36 101 2

原创 SpringCloud学习(十一) —— SpringCloud Alibaba Nacos服务注册和配置中心

NacosNaming Configuration Service一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台Nacos就是注册中心 + 配置中心 等价于 Nacos = Eureka + Config + Bus在docker中安装和配置nacos详细步骤 服务注册nacos自带负载均衡原因: nacos整合了ribbonNacos支持AP和CP模式的切换服务配置组[johnny@localhost ~]$ hostname -i::1 127.0.0.

2021-07-06 16:18:27 115

原创 SpringCloud学习(九)—— SpringCloud Stream 消息驱动

为什么要引进Cloud Stream屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。什么是 Spring Cloud StreamSpring Cloud Stream是一个构建消息驱动微服务的框架。应用程序通过inputs或者outputs来与Spring Cloud Stream中的binder对象交互。通过 配置来binding(绑定),而Spring Cloud Stream的binder对象负责消息 中间件交互。目前仅支持RabbitMQ和Kafaka通过 定义绑定器Bin

2021-07-04 10:28:39 73 1

原创 恋上数据结构与算法第一季笔记(三)——二叉搜索树

二叉搜索树二叉搜索树的接口实现BinarySearchTreeBinarySearchTree 属性与构造方法 //元素数量 private int size; //二叉搜索树根节点 private Node root; //比较器:由外部定义比较规则,并将比较器传进来使用 private Comparator comparator; //带比较器的构造方法 public BinarySearchTree(Comparator comp

2021-07-04 10:27:37 101

原创 面试算法题 专题(一) —— 字符串

面试题 01.09. 字符串轮转【题目描述】面试题 01.09. 字符串轮转解法一【思路】指向s1的指针从前往后遍历逐一与s2的头一个字符比较 ,相等位置即为可能的旋转位置。旋转词极可能为: c[i + 1: n -1] + c[0:i]class Solution { public boolean isFlipedString(String s1, String s2) { if( s1 == null || s2 == null) return false;

2021-07-03 13:43:19 426

原创 恋上数据结构与算法第一季笔记(四)——红黑树

B树m阶树 性质B树 和 二叉搜索树搜索上溢的解决方案删除删除叶子节点删除非叶子节点下溢下溢的解决红黑树

2021-07-03 13:41:41 104

原创 Redis 学习笔记(三) 内存淘汰策略

Redis中对于过期键并不是马上从内存中删除。它有三种策略: 定时删除、。定时删除: 定时删除就是为key设置生存时间,它保证过期键值会在过期后立马被删除,其所占用的内存也会随之释放。缺点:立即删除对CPU是会造成负担,会抢占CPU的时间。这会产生大量的性能消耗,同时也会影响数据的读取操作。 这是一种拿时间换空间的策略。惰性删除: 数据到达过期时间,不做处理。等下次访问数据时,如果未过期,返回数据。发现已经过期 了,删除返回不存在。缺点:对内存不友好。如果一个键已经过期,而这个键又仍然保存在数据

2021-07-03 13:40:17 110 1

原创 Redis 学习笔记(二)—— 基本数据类型

redis数据类型通用命令keys: 返回数据库中键的个数,会扫描所有的数据, 阻塞其他操作, 不建议使用。dbsize: 同上,也是查看key的数量。但是是O(1)操作exists key:判断是否存在对应的key。如果存在则返回1,不存在则返回0。expire key seconds:设置键的过期时间(seconds,单位是秒)ttl key: 获取key的有效实际。其中 -1 表示永久有效, -2 表示无效的键。persist key: 把一个过期的时间的key变为一个永久的keyde

2021-07-03 13:39:26 157 1

原创 数据结构刷题集合(二)—— 树

【题目描述】226. 翻转二叉树【思路】在遍历过程中,对左右节点进行两两交换。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(i

2021-07-03 13:37:53 58

原创 数据结构刷题集合(一)—— 链表

【题目描述】LeetCode 141. 环形链表【思路】快慢双指针,起始p和q同指向头结点。之后p走一步,q走两步,p追赶q,若为环则p、q指针循环一周必定相遇,可以得出环长为p走过的步数。如不为环,则q或q.next最后一定为尾结点/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { *

2021-07-03 13:36:30 87 1

原创 JavaWeb学习(二)—— 文件上传、下载

文件上传1、需要引入jarapache:commons-fileupload.jar组件,该jar依赖于commons-io.jar,所以需要到maven仓库下这两个jar包。不知道版本依赖的就直接选最多人下载的即可。2、前端代码上传文件要求:form表单的提交方式必须是post。因为get的地址栏请求数据不能超过4KB加入enctype= “mutipart/form-data”input 的 type =“file” <form action ="/uplo

2021-07-03 13:36:00 72

原创 剑指Offer打卡目录(Java实现)

剑指Offer打卡day1—— AcWing 13. 找出数组中重复的数字剑指Offer打卡day2—— AcWing 14. 不修改数组找出重复的数字剑指offer打卡day3—— AcWing 15. 二维数组中的查找剑指Offer打卡day3—— AcWing 16. 替换空格剑指Offer打卡day4——AcWing 17. 从尾到头打印链表剑指Offer打卡day5—— AcWing 18. 重建二叉树剑指Offer打卡day5——AcWing 19. 二叉树的下一个节点剑指Offe

2021-07-03 13:30:36 272

原创 Linux命令学习(七)—— vim编辑器

vim具有6种基本模式1、 普通模式(Normal Mode)使用vim命令打开文件默认进入的模式。在该模式下,可以进行删除文本和移动光标。In Normal mode the characters you type are commands.2、插入模式()在普通模式下键入 i((insert)或a(append)即可由普通模式进入插入模式。i表示在当前光标位置插入,a表示文本末尾位置追加。在插入模式下,大多按键都会向文本缓存区插入文本。在插入模式下,按ESC键回到普通模式。In I

2021-07-03 13:29:02 160 2

原创 前后端分离——CORS

同源策略浏览器有个同源策略(Same - Origin Policy)规定了:默认情况下,AJAX请求只能发送给同源的URL。同源指的是3个相同: 协议、域名(IP)、端口img、script、link、iframe、video、audio等标签不受同源策略限制解决跨域资源共享结局Ajax跨域请求的常用方法: CORS(Cross-Origin Resource Sharing) 跨资源共享CORS的实现需要客户端 和服务器同时支持客户端:几乎所有浏览器都支持(IE至少是IE10版本)服

2021-07-03 13:11:19 265

原创 CVTE 2022届实习生 Web后台开发笔试

双亲委派机制是指子类加载器会优先委派父类加载器去加载该类,如果父类加载失败,自己才会去加载。JVM垃圾回收的复制算法是指: 把空间分成两块,每次只对其中一块进行GC。当这块内存使用完时,就将还存活的对象复制到另一块上面。由于大多数新生代对象都不会熬过第一次GC,所以没必要1:1划分空间,可以分一块比较打的Eden空间和两块比较小的Survivor空间,比例是8:1:1 。当回收时,将Eden和Survivor中还存活的对象一次性复制到另一块Survivor空间中。如果存活对象大于10%,则采用一种分配担.

2021-07-03 10:31:35 2769 8

原创 SpringCloud学习(八)——消息总线Bus

Spring Cloud Bus能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、时间推送等。也可以当作微服务间的通信通道。什么是总线在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于该主题产生的消息会被所有实例监听和消费,所以称他为消息总线。基本原理ConfigClient实例都监听MQ中同一个topic(默认是springCloudBus),当一个服务刷新数据时,它会把这个消息放入topic中,这样监听同一.

2021-07-02 14:37:47 102

原创 SpringCloud学习(二) —— 服务注册、Zookeeper

Zookeepercentos 8ifconfig 看ipinet 192.168.59.131 netmask 255.255.255.0 broadcast 192.168.59.255win10 IPv4 地址 . . . . . . . . . . . . : 192.168.56.1 IPv4 地址 . . . . . . . . . . . . : 192.168.59.1桥接前:解决虚拟机不能ping通宿主机仅主机模式是通过连接器桥接模式是通过路由器[joh

2021-07-02 13:31:00 82

原创 Zookeeper学习(一)

概述Zookeeper是一个开源的、分布式的,为分布式应用提供协调服务的Apache项目Zookeeper工作机制Zookeeper特点数据结构应用场景同一命名服务统一配置文件统一集群管理

2021-07-02 13:30:02 70

空空如也

空空如也

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

TA关注的人

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