自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

可乐的博客

我曾经热爱Java(来自Go开发者

  • 博客(134)
  • 资源 (2)
  • 收藏
  • 关注

原创 Go Web开发入门指南<前半>

Go Web开发入门指南关注博主不迷路:可乐可乐可内容:Go Web开发套装,Gin,Gorm,viper,validator,zap,go-redis,grpc本文难度:适合入门一般开发web项目,需要处理这些路由匹配,参数获取,ORM持久化操作,日志更高级一些,将使用redis,Elasticsearch,以及rpc远程调用如果你是Java转行而来,你需要首先意识到一个问题:Go语言没有Spring那种包办的生态,需要各种框架拼装起来(祈求????有Spring这种角色吧)好在

2021-05-12 17:24:28 1166 15

原创 轻松理解AQS框架 |不会有人看了不懂吧

本文作者:可乐可乐可,博主个人主页:可乐可乐可的个人主页轻松理解AQS框架本文需要以下知识铺垫:Java、临界区、信号量、锁AQS(AbstractQueuedSynchronizer,抽象队列同步器)是Java中重入锁ReentrantLock、读写锁、信号量的实现基石。学会、了解AQS框架对了解Java锁有很大的帮助说的比唱的好听,AQS源码下来2k+行,这是人干的活吗?为了解决大家AQS不了解以及看了忘,忘了看的恶性循环,下面将带领大家从简到繁,一步步的学会AQS框架。本文.

2021-02-22 23:32:06 2499 10

原创 MySQL事务浅析|由浅入深

MySQL事务浅析|由浅入深很多人都在讲事务,事务是个啥,我感觉我没开事物也没什么事情啊,学事务有必要吗?今天照旧,本文在一开始将讲解一些入门适合理解的知识,在后面逐层加深,如果对事务有了解,希望知道细节,可以在下面的目录跳一下文章目录MySQL事务浅析|由浅入深事务是个啥?For Example1例子2 脏写例子3 脏读例子4 不可重复读例子5 幻读并发编程带来的数据库隐患通过对事务的分析,得到了四个特点 ACIDMySQL如何保证事务完好持久性的保证原子性的保证隔离性的保证|MVCCMVCC没错

2021-02-10 21:33:33 4036 21

原创 浅析JWT| JWT是啥子,Java构建JWT

小声bbb说到系统的安全识别,记得自己第一个项目,用的就是session,用户登录进来以后,给他session标记登录,记录id进去,轻轻松松,设计的操作也很简单,类似操作HashMap。这大概也有1年多快两年了,现在回头看真的是可怕,几乎在裸奔众所周知,平常使用的Session是存储在服务器的一种技术,可以理解为一个会话id,每次使用HTTP请求,都会携带一个sessionId,服务器根据这个SessionId去找对应的sessionしかし,我预判了你的预判第三方完全可以随便输入一个sess

2021-01-26 11:09:43 4125 64

原创 println导致的线程缓冲区刷新|一个volatile引起的思考

问题引出:今天在看volatile的时候,自己写了个例子,发现即使没有volatile,我程序也照常跑了描述首先看看这个情况的描述第一个代码是有关何时以及如何使用volatile的示例,熟悉volatile的一定知道,为了使程序成功运行,我们需要添加volatile。第二个代码表示,即使没有volatile,该程序情景仍然可以成功运行。第一段代码, 经典的volatile使用案例public static int num=1;public static class MyThre

2020-12-26 19:06:40 3066 15

原创 Spring Boot 完整讲解

SpringBoot学习笔记文章写得比较详细,所以很长(105336 字数),可以参考目录文章目录SpringBoot学习笔记@[toc]一、 Spring Boot 入门预:必须掌握的技术:1. Spring Boot 简介背景解决的问题优点缺点2.微服务What are Microservices?单体应用微服务3.环境准备Maven设置:Idea设置4.Spring Boot Hel...

2020-02-28 23:35:16 24903 38

原创 字节,I‘m back | 22届秋招 感悟|面经整理

关注博主不迷路:可乐可乐可博主还只是个双非的22小萌新,轻喷,谢谢啦2021年的求职确实迷幻,在学校选修+必修政策的加持下,大三上就肝完了所有的选修学分,留下潇洒的背影就上路春招。看了无数公司,最喜欢的还是两个地方:阿里巴巴星环|字节跳动春招字节提前批一波过了,人已经第二天报道了,阿里姗姗来迟,问要不要面试(笑死入职字节,但是却不是正统的研发部门,说走就走,3天拿了Momenta的offer,踏上半年自动驾驶的小车。小半年、算法、业务全都做了,虽然是自动驾驶里的并夕夕,但是收获还是颇丰,道.

2021-08-29 15:23:57 610 1

原创 Go Web开发扩展项-GROM框架

Go Web开发扩展项-其他配套框架作者:可乐可乐可:https://blog.csdn.net/weixin_44494373上一篇:Go Web开发入门指南<前半>内容:Go Web开发套装,Gin,Gorm,viper,validator,zap,go-redis,grpc本文难度:适合入门上半部分,我们讲了讲Gin,想做到web开发,我们现在已经有了基础的MVC,我们只需要ORM框架(操作数据库)日志框架就能满足基本80%的需求了,初次之外,就是配置文件的支持,rpc微服务体系支持我

2021-05-17 21:13:07 1092

原创 简单聊聊联合索引

你真的了解联合索引吗?但凡准备过面试,都一定了解这样两个词,”联合索引,最左匹配”从一个问题开始这里先用前两天美团面试官的一个问题抛砖引玉一下吧面试官:联合索引了解吗,假设有表A,字段a,b,c,我建立一个索引abc,什么情况下可以使用这个索引?或者说,select * from A where 后跟什么条件可以使用这个索引?了解联合索引的你,马上就会脱口而出,a开头的条件,但是考虑到MySQL可以做优化,你随机补充道,包含a就可以使用!面试官:还有吗?空气凝滞,小丑竟是我自己。事实上,

2021-04-18 10:08:05 412 3

原创 无奈的春招,Momenta你好|春招面经整理

字节两面,Java后端实习字节跳动面试,两面+HR面,面试官很棒!面试体验还不错,饭特别香(自助,房补,工资,确实是福利这边最棒的公司)尤其是我的leader(同时是mentor)对我很不错(还是双胞胎闺女的爹,成功人士233)可惜后面一些原因,最后选择了换岗位,有缘再见吧美团两面,Java后端研发实习生美团这里特别可惜,进了字节跳槽,再去面试美团,但是春招的时间已经过了,HC没多少了,面试过程中的知识也有遗忘,总之状态不佳遇到时机不秒,有缘再见吧美团初试介绍一下你自己我:布拉布拉(他

2021-04-17 10:56:36 3075 9

原创 B树和B+树,到底有啥不一样

更多精彩,访问可乐可乐可:可乐可乐可的主页在几天前,我天真的以为,知道了B+树,也就是Mysql的树,就能顺利通关,没想到啊没想到,这两天连续问了我两次我的漏洞(另一个是消息队列)那么回到主题,B树是啥,B+树为啥是plus,这俩有啥区别嘞小学三年级就学过各种数据结构的我们,肯定会了解一个规律在大量数据的情况下,树的插入、删除、搜索效率相对其他数据结构更稳定。这也是数据库,Java中的HashMap使用树作为自己存储数据的数据结构的原因。如果你了解2-3树等数据结构,你会很轻松,当然没.

2021-03-31 17:02:25 216

原创 因为经费问题不得不使用JUC大法 | 限流降级队列

本文作者:可乐可乐可,作者个人主页:可乐可乐可的个人主页因为经费问题不得不使用限流降级队列亲儿子(学校自研的新系统)在进行细致的需求分析时,竟然有经费问题,导致我们使用的邮箱可能挂掉或者被限流,第n次因为经费问题流下泪水233。不过这也是自己的契机,当初用这个小轮子入了面试官的法眼(感谢面试官给机会,蟹蟹蟹蟹,需要字节跳动内推的可以私聊我哦)(想亲自体验被QQ邮箱封号吗,不会很严重,停一会儿就恢复了,下面是Spring Boot 的一个测试类,可以用他体验一下被封的感觉)import o.

2021-03-19 22:44:06 470 3

原创 字节跳动面试,两面+HR面,面试官很棒!

简单记一下,后面补全字节一面介绍一下自己上来就问反射HTTP与HTTPS,Full GC(这里我多扯了一些细节,他问Full GC的原因,这里没见过,直接说了不会)CORS跨域解决(名字我忘了,但是说了怎么操作Get与Post手写了个二分(Springboot,直接服务器能访问那种)反射:Java的类都有一个对象,可以通过Java的Api直接操作这个对象CORS,预请求(这个复习真没看到,是平常项目碰到的)面试官真的很不错,最后的算法题我本来想用get偷懒,被看见了,提示我用po.

2021-02-27 11:12:18 4829 8

原创 计算机网络篇 | 分层的协议架构

计算机网络篇 | 分层的协议架构说到计算机网络,大家肯定也会立马反应到我们小学三年级就学过的TCP/IP协议簇。TCP/IP协议簇为我们构建了计算机直接通信的一种模式。首先复习一下基础知识点我们首先看看计算机网络中的体系结构啊啊啊…好多层,好复杂,怎么记忆啊?作为一名光荣的理科生,就要从逻辑的角度来记忆。这三种体系是从简到繁的关系,每一层都细化了一些东西,我们只要记住这一层是做什么的,为什么在这一层,很轻松就能记住了。我们若访问一个网站,会经历大致这几个流程根据域名获得ip (

2021-02-21 12:31:45 2825 10

原创 十分钟深入理解volatile

个人觉得JUC里面的东西比JVM还要玄,JUC中将引领我们用一种多线程的角度思考整体的程序,可以说是一种挑战吧。volatile,中文语义:不稳定的大家都应该了解这个常识吧!(不知道的一定要记好)Java中,若一个变量会被多个线程所使用,我们需要给这个变量加上volatile关键字。しかし!(但是)作为未来大厂高级电脑的附属品,我们必然不能只了解这个规则,更应该洞悉why,才能在未来的使用中,稳定起飞一、首先,volatile到底是个啥?Java语言规范第3版中对volatile的定义如下.

2021-01-27 16:25:28 1046 43

原创 Java内存模型基础篇

我们在这里简单复习一下操作系统中的缓存操作系统中的缓存情况为上图,操作系统将内存,缓存分为多个大小相等的块。然后根据缓存的数目依次指定内存块所对应的缓存块,在使用时,直接访问缓存,未命中则更新。但是操作系统的缓存有一个很关键的隐含信息:每个内存块只有一个缓存,一个缓存对应了多个内存。但是在Java内存模型中,情况却似乎反了过来,如下图Java内存模型在Java中,实例域、静态域和数组元素都存储在堆内存中,堆内存在线程之间共享(也就是共享变量局部变量,方法定义参数,异常处理参数不会在线

2021-01-27 11:29:46 266

原创 LeetCode974. 和可被 K 整除的子数组

先从简单开始仔细观察本题要求,如果使用暴力的解法,将导致超时(每一个开头,到每一个结尾枚举,再累加)总计是O(n³)当然,必然不可能轻轻松松使用暴力解决改进算法考虑到题目是列表的区间问题,可以尝试使用滑动窗口或前缀和的方法减少计算量若有经验,都能得知这两种方法一般可以把最坏时间降低一级也就是O(n²)先用滑动窗口我们固定左侧,让右侧移动,以此遍历所有的可能两层for,On方的时间复杂度class Solution { public int subarraysDivByK(in.

2021-01-26 23:41:20 265 1

原创 简要JUC常识概念总结

JUC常识概念基础概念1.同步与异步2.并发与并行3.临界区4.阻塞与非阻塞5.死锁、饥饿、活锁死锁饥饿活锁原子性可见性有序性不能指令重排的规则:**Happen-Before规则**并发级别阻塞无饥饿无障碍无锁无等待基础概念Created: Aug 6, 2020 8:45 PMTags: 临界区, 原子性、可见性、有序性, 同步异步, 并发并行, 死锁、饥饿、活锁1.同步与异步用来形容一次方法调用。同步的方法调用一旦开始,调用者必须等到方法调用返回后才能继续。异步调用类似消息传递,执行后

2021-01-26 19:04:51 308

原创 Java环境变量,Linux

vi /etc/profileexport JAVA_HOME=/root/java/jdk-11export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarsource /etc/profile

2021-01-24 16:28:56 149

原创 Spring data elasticsearch简单上手 | ES-7版本,springboot 2.4

本来觉得写这个没什么意义,感觉看看别人就够了,然鹅,,,,被网上的坑的很惨再次强调本文的环境:2021年1月23日01:51:43的最新配置spring boot 2.4版本Elasticsearch的7.10.1版本如果你环境差距不大,恭喜你,这片文章很适用你注:本文讲解基础的操作,复杂的查询等可以参考参考spring文档(开个翻译就行了)如果你是刚刚入门是不是有各种奇怪的情况,你发现你的Spring data elasticsearch好像不能正常用?恭喜你,本人已经找到了Spr.

2021-01-23 00:38:49 1177

原创 Docker版本Elasticsearch安装中文分词插件

关于ik插件开源插件ik地址https://github.com/medcl/elasticsearch-analysis-ikElastic是自带了一个smartcn的插件的,但是该插件对词库支持不好(可以百度搜索两者的对比)关于安装elasticsearch与可视化界面Docker启动Elasticsearch+可视化页面https://blog.csdn.net/weixin_44494373/article/details/111595376正文elasticsearch在日常使.

2021-01-22 21:10:27 697 1

原创 一个简单的Spring容器的初始化流程

首先我们初始化一个最简单的容器,用这个容器研究初始化的流程。下面就是一个再简单不过的IoC容器了,该容器包含了一个名为beanA的bean,我们初始化容器后,取出该Bean,并调用方法。public class BeanA { private String testStr = "Test"; public BeanA(){ System.out.println("Running A"); } public void sayHello(){

2021-01-21 23:43:46 662 4

原创 Spring可太牛啦|如何学Spring的源码

首先在文章的开头,我们需要再次明确一下Spring框架到底是个啥?Spring框架是一个读取、保存、使用Bean的容器Spring框架提供了依赖注入功能Spring框架提供了AOP动态代理功能。。。。。。自顶向下,关注当前的逻辑来学习Spring中包含了大量的模板方法设计模式,我们不妨顺着这个模板方法的思路从上向下进行分析,从大局到细枝末节。我们大可把Spring(这里不包括Web模块)拆分为几块:IoC容器的初始化Bean的实例化Application的支持AOP处理这四

2021-01-21 20:16:51 319

原创 日常记录|apt安装mysql默认的密码账户在哪里

sudo cat /etc/mysql/debian.cnf里面的就是用户和密码,登录进去修改其他用户密码就行

2021-01-21 15:51:57 324

原创 自顶向下了解Spring容器结构

本文出自可怜人 可乐可乐可,更多精彩点击https://blog.csdn.net/weixin_44494373这张图,大致是Spring IoC容器中设计概况可以看到Spring将各个功能都划分成了一个接口,并去实现他,以此能降低耦合度、最大化达到重复利用的目的。用户实际使用的类是ApplicationContext,Spring通过一步步的继承关系,给ApplicationContext了处理IoC需求的功能。Spring正是围绕ApplicationContext和BeanFactory设.

2021-01-16 16:02:11 565

原创 浅谈Spring 架构|求求远古版本的别出来误导别人了

很久之前,Java的系统是使用企业级JavaBean(Enterprise JavaBean, EJB)进行开发的,EJB使用起来很为困难,Spring作为一款轻量级的框架,迅速替代了EJBEJB也是个神器,只见其影,未见其身。前些年,在网上各个面试题还有它的身影,现在估计很难见到了。EJB:Enterprise Java Beans,即:企业Java BeansSun公司发布的文档中对 EJB 的定义是:EJB 是用于开发和部署多层结构的、分布式的、面向对象的 Java 应用系统的跨平台的.

2021-01-16 13:06:01 211

原创 Leetcode3. 无重复字符的最长子串

本题是在字符串中寻找一个子串,这类情形可以利用滑动窗口的方法(双指针),保证在一趟循环找到目标如何利用滑动窗口进行构造?我们可以设置两个指针,一前一后(其实就是双指针)前面的指针一步步试着前进后边的指针根据前面踩到的字符进行调整。为了快速得到当前窗口内有无某个字符,使用hashmap保存当前窗口内信息做个加速查找那么可以得到/** * @author JirathLiu * @date 2021/1/13 * @description: */public class LeetC

2021-01-13 15:27:08 98

原创 设计模式通关手册

为什么需要设计模式?作为一个优秀的程序员,所写出的代码必须具有这些特点:清晰易懂易于维护易于扩展高效简洁这几项在当今大规模的面向对象编程的程序中,必然离不开设计模式本文为设计模式知识点的整理复习,如果希望细细的品味设计模式,这里推荐一本书《Head First设计模式》如果你觉得贵(本人就买了一本,还是纸质书爽),这本书已经上传在鄙人的服务器供下载HeadFirst设计模式.pdf综合起来讲,大致有23种设计模式(其实大部分天天都在身边)将其分类为:创建型、行为型、结构型、复

2021-01-01 21:58:15 203

原创 单例模式为什么需要volatile关键字?

在单例模式中,为了保证效率的同时,保证线程安全,我们会了解这一段代码双重校验锁public class SingletonLazy { private volatile static SingletonLazy data; private SingletonLazy(){ System.out.println("初始化"); } public SingletonLazy getData() { if (data == null) {

2021-01-01 16:58:52 1205 4

原创 始动篇|春招所需要的知识点

春招着重考察应试者的基础能力,Java后端程序员,需要从这几个大块出发计算机网络、操作系统(简单的缓存、内存等)Java、JUC、JVMMySQL、RedisSpring、SpringMVC、SpringBoot自动装配原理下面的内容源自热心学长,有链接的为整理完成的文章感谢男神一、Mysql 相关知识1. 存储引擎InnoDB 和 MyISAM 的特性、区别、使用场景其它存储引擎的基本特性以及使用场景2. 事务事务的 ACID 特性脏读、不可重复读、幻读相关概念以

2020-12-30 22:06:23 666 1

原创 Docker启动Elasticsearch+可视化页面

win10目前(2020年12月23日17:47:22)已经能支持Docker和VMware一起运行了要求:使用wsl2的docker+VMware16+启动dockerwin10直接运行Linux systemctl start docker下载es镜像https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.htmldocker pull docker.elastic.co/elasticsearch.

2020-12-23 18:00:13 727

原创 如何分析慢查询

首先需要明确查询性能低下的基础原因:访问数据过多。还有一种可能性:筛选大量数据,但是并不常见。通常情况下性能低下的查询都可以通过减少访问数据量的方式进行优化。分析慢查询两种分析方法:应用程序是否在检索大量超过需要的数据。确认MySQL服务器是否在分析大量超过需要的数据行。一、是否向数据库请求了不需要的数据描述:一个查询请求了超过实际需要的数据,但是多余的部分并没有什么用处而被丢掉。影响:这会给MySql服务器带来额外的负担,增加网络开销,消耗应用服务器的CPU和内存资源典型案例:

2020-12-10 18:04:27 1426

原创 Linux启动Kafka

1.下载Kafka到本地https://kafka.apache.org/downloads一定要下载Binary downloads: 版本src还要你编译,别了吧2.解压kafkatar -zxvf kafka的压缩包.tar.gz3.修改配置文件(可选)解压完成后cd kafkaxxxx/config修改server.xml想定义日志文件可以修改Log Basics下面的配置项目log.dirs=/home/jirath/kafka/tmp/kafka-logs4.启动Kafk

2020-12-06 14:58:04 2994

原创 Ubuntu开启su|切换管理员身份

sudo xxxx 管理员权限运行sudo password 为su设置密码,设置后才能使用suxxxx 账号密码xxxxx root密码su 切换root账户

2020-12-05 12:04:25 3769

原创 解决The following packages have unmet dependencies: vim : Depends: vim-runtime (= 2:7.4.052-1ubu

仔细看报错说明,把报错的软件删了,再当前的软件,刚刚删了的会自动补上合适的版本sudo apt-get remove vim-runtimesudo apt-get install vimroot@ubuntu:/usr/java# apt-get install vimReading package lists... DoneBuilding dependency tree Reading state information... DoneSome packages could

2020-12-04 16:46:06 802

原创 Ubuntu-apt更换为阿里源

使用Linux的Ubuntu时会很卡,需要更换为阿里源或其他公司的源步骤:编辑/etc/apt/sources.list文件可以使用vi,gedit,小白用gedit会好一点先备份一个文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.back修改内容sudo gedit /etc/apt/sources.list替换为deb http://mirrors.aliyun.com/ubuntu/ focal main restricte

2020-12-04 16:07:39 1916

原创 Linux报错:Could not get lock /var/lib/dpkg/lock-frontend

今日在运行apt-get的时候,报了一个神奇的上锁的错误。E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?原因是出现这个问题可能是有另外一个程序正在运行,导致

2020-12-04 15:46:38 750

原创 LeetCode 493. 翻转对

博主是个菜b,学习了官方的题解才想出来答案尽量用简单的方法解释这个题看到这里时,大脑事实上是茫然的啪的一声,直接暴力,很快啊,超时处置,耗子为汁。class Solution { public int reversePairs(int[] nums) { int sum=0; for (int i=0;i<nums.length;i++){ for (int j=i+1;j<nums.length;j++){ .

2020-11-28 22:43:53 227

原创 遍历Java中的Map

今早遇到了轮询map中的元素,加入到list中的需求相关材料:Java集合类图解(全面,舒适)https://blog.csdn.net/weixin_44494373/article/details/105898218如何遍历Map一、利用Map内部的entrySet,Set集合进行foreachMap中的每个节点都是一个Entry对象,同时map提供了转化为Set(或者说获取内部的Set)的方法entrySet()利用这个方法,我们能获取一个Set集合,该集合是Collection的子类.

2020-11-22 11:44:57 545

原创 ByteBuffer转String与解析为json对应的对象

事情是这样的,今天需要对Feign的响应进行处理,Feign在异常时返回的Body为字节缓冲,需要自己处理。ByteBuffer是个啥原文 https://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html字节缓冲区可以是直接的,也可以是非直接的。给定一个直接字节缓冲区,Java 虚拟机将尽最大努力直接在其上执行本机 I/O 操作。也就是说,在每次调用底层操作系统的本机 I/O 操作之前(或之后) ,它都会试图避免将缓冲区的内容.

2020-11-22 09:57:19 1965

简易的图书馆系统(文件导出,列表显示,增删改查)

简易的图书馆系统(文件导出,列表显示,增删改查)

2021-01-28

StudentsManageSystem.zip

一个简单的不得了的学生信息管理系统,配套 MySQL使用

2019-06-17

空空如也

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

TA关注的人

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