自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱敲代码的零元

希望与大家分享关于后端开发的经验、最佳实践、技术深入解析以及一些有趣的项目。

  • 博客(27)
  • 问答 (5)
  • 收藏
  • 关注

原创 JVM详解

难易程度:☆☆☆出现频率:☆☆☆☆程序计数器:线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。javap -verbose xx.class 打印堆栈大小,局部变量的数量和方法的参数。​ java虚拟机对于多线程是通过线程轮流切换并且分配线程执行时间。在任何的一个时间点上,一个处理器只会处理执行一个线程,如果当前被执行的这个线程它所分配的执行时间用完了【挂起】。处理器会切换到另外的一个线程上来进行执行。

2024-03-04 23:28:50 996 3

原创 JUC相关面试题

CAS的全称是: Compare And Swap(比较再交换);它体现的一种乐观锁的思想,在无锁状态下保证线程操作数据的原子性。CAS使用到的地方很多:AQS框架、AtomicXXX类在操作共享变量的时候使用的自旋锁,效率上更高一些CAS的底层是调用的Unsafe类中的方法,都是操作系统提供的,其他语言实现AQS的话,其实就一个jdk提供的类AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架。

2023-09-14 18:04:41 1110 15

原创 细谈left join和join

相信大家都知道在MySQL中的join、left join和right join,在业务中,需要两表联查总会用到联合查询语句。但大家却有可能并不太了解他们底层是如何进行处理的,也就无法在业务量大的情况下,去优化这些sql语句。本节我就为大家通过执行流程层面进行一些讲解,相信大家看完本篇文章对以后的优化处理也就不会毫无头绪了。

2023-09-09 16:32:31 4996 20

原创 JUC详解

CAS的全称是: Compare And Swap(比较再交换),它体现的一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性。在JUC( java.util.concurrent )包下实现的很多类都用到了CAS操作AbstractQueuedSynchronizer(AQS框架)AtomicXXX类例子:我们还是基于刚才学习过的JMM内存模型进行说明线程1与线程2都从主内存中获取变量int a = 100,同时放到各个线程的工作内存中。

2023-08-30 13:48:11 2500 24

原创 缓存穿透、缓存击穿和缓存雪崩

一聊到redis,必不可少的就是缓存三兄弟的问题,即缓存穿透、缓存击穿和缓存雪崩,这三个问题在业务场景中相对来说比较常见的,也是比较基础的三种问题。那么这三种问题是如何引起的,并且应该如何解决,就是本章探讨的话题。缓存穿透、缓存击穿和缓存雪崩是三种与缓存相关的常见问题,它们的概念和影响有所不同。缓存穿透指的是对于一个不存在于缓存和数据库中的数据的请求,每次请求都会穿过缓存层直接访问数据库。恶意的攻击者可以通过构造不存在的数据请求,导致大量请求直接访问数据库,增加数据库负载压力。

2023-08-24 18:13:11 2419 32

原创 消息中间件相关面试题

微服务相关的经典面试题,从微服务组件、分布式理论基础、负载均衡等多个方面以第一人称的角度来进行面试分析

2023-08-19 21:11:25 1140 15

原创 Java集合相关面试题

Java集合相关的经典面试题,从List、Set、Map等多个方面从源码角度进行剖析

2023-08-15 16:39:24 559 19

原创 Java集合详解

这次课程主要涉及到的是List和Map相关的面试题,比较高频就是ArrayListLinkedListHashMapArrayList底层实现是数组LinkedList底层实现是双向链表HashMap的底层实现使用了众多数据结构,包含了数组、链表、散列表、红黑树等在讲解这些集合之后,我们会讲解数据结构,知道了数据结构的特点之后,熟悉集合就更加简单了。在讲解数据结构之前,我们也会简单普及一下算法复杂度分析,让大家能够评判代码的好坏,也能更加深入去理解数据结构和集合。

2023-08-15 16:37:23 1212 16

原创 微服务相关面试题

微服务相关的经典面试题,从微服务组件、分布式理论基础、负载均衡等多个方面以第一人称的角度来进行面试分析

2023-08-14 15:08:31 753 23

原创 redis相关面试题

Redis相关的经典面试题,从缓存、分布式锁、消息队列等多个方面以第一人称的角度来进行面试分析

2023-08-12 20:26:07 1252 19

原创 图解 Paxos 算法

Paxos 算法由 Leslie Lamport 在 1989 年提出的一个分布式共识算法,Paxos 算法较难理解,本文尝试以图形化方案解释 Paxos 算法。本文在很大篇幅参考了韩健极客时间的课程《分布式协议与算法》,有兴趣了解韩老师其他课程的同学可以购买来学习下。Basic Paxos 算法:多节点如何就某个值达成共识Multi Paxos 思想:执行多个 Basic Paxos ,就一系列的值达成共识每个人都有自己独特的才华和潜能,在这个广袤的世界上,你的存在是有意义的。

2023-08-11 18:48:10 672 6

原创 Spring相关面试题

Spring相关的经典面试题,从AOP、IOC、生命周期、循环依赖等多个方面以第一人称角度进行面试分析

2023-08-10 20:12:51 557 3

原创 Mysql相关面试题

Mysql相关的经典面试题,从日志查询、索引、事务等多个方面以第一人称的角度来进行面试分析

2023-08-10 11:21:42 287 4

原创 图解WebSocket

相信大家都对HTTP协议比较熟悉,因为它是我们接触最多的一个协议。但Websocket跟它又有什么关系,有什么作用呢?这篇文章我们通过HTTP来引出Webscoket这个协议。

2023-08-09 17:21:12 1708 7

原创 关于redis的读写一致问题

在项目使用redis过程中,当数据更新时,我们要保证缓存和数据库的一致性,否则会导致很多脏数据出现。此时我们就要思考如何去进行数据更新。

2023-08-08 16:19:26 1150 7

原创 springsecurity加入第三方授权认证

关于springsecurity实现第三方授权登录

2023-02-17 20:52:26 1176 4

原创 Java连接mysql常遇时间问题

在做项目中遇到的mysql关于时间问题的处理

2023-02-02 21:07:16 1515 1

原创 父类和子类方法的调用

由于没有找到想要的解释,于是自己就在idea上自测来寻找答案。关于父类,子类,多态之间方法的调用。

2022-04-18 11:08:44 9259 3

原创 Java的四种遍历方式

package API;import java.util.Iterator;import java.util.List;import java.util.ArrayList;public class 四种遍历方法 { public static void main(String[] args){ List<String> list=new ArrayList<>(); list.add("Java"); list.

2022-04-16 18:08:34 6508 2

原创 Java新手入门——天梯赛L1-030 一帮一 (15 分)

该题有两个思路:1:定义三个数组,一一对应,一个放入名字,一个放入性别,最后一个进行标记,然后进行判断;2:定义一个类,相当于c语言里面的结构体的方式,进行判断;因为刚开始博主接触的是c所以这里习惯用结构体进行判断,相对麻烦一些,但可以熟练面向对象的操作,如果想试一下第一种方式的,可以在下面试一下。import java.util.Scanner;import java.util.ArrayList;public class Main{ public static void..

2022-04-09 17:15:18 766 1

原创 Java新手入门——天梯赛L1-025 正整数A+B (15 分)

import java.util.Scanner;public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); String s=sc.nextLine(); int index=s.indexOf(" ");//调用String类里面的API,返回第一个该符号的下标,找出第...

2022-04-09 14:14:15 463 1

原创 Java新手入门——天梯赛L1-023 输出GPLT (20 分)

这题可以选择用String直接输入,然后全部转化为大写,应为题意上说不区分大小写,所以最好转化一下,然后用桶排序把每个字符出现的次数记录一下,以便下面输出。import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); String s1=sc.next(); Str...

2022-04-06 22:43:26 577

原创 制作一个简易的ATM取款机

ATM取款机主函数package ATM;import java.util.ArrayList;import java.util.Random;import java.util.Scanner;public class ATMSystem { public static void main(String[] args) { ArrayList<Account> accounts = new ArrayList<>(); Sc.

2022-04-05 20:57:36 473

原创 用Java做一个简易购物车

package gouwuche;import gouwuche.Goods;import java.util.Scanner;public class ShopCar { public static void main(String[] args){ Goods[] shopCar=new Goods[100]; while(true){ System.out.println("请您选择如下命令进行操作:"); Syst.

2022-04-04 16:47:05 1572

原创 Java新手入门——天梯赛L1-016 查验身份证 (15 分)

import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int sum1=0; String[] ss=new String[a]; int[] b={7,9,10,5,8,4,2,1,6...

2022-04-04 12:53:45 406

原创 Java新手入门——天梯赛L1-011 A-B

import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); String s=sc.nextLine(); String s0=sc.next(); String s1=""; for(int i=0;i<s.length();i+...

2022-04-02 16:48:15 601

原创 Java新手入门——天梯赛L1-006 连续因子 (20 分)

该题要审清题目,是连续因子,所以说不必要把每个数据的所有因子都求出来,只要找出连续的,不连续便换下一组数据。import java.util.Scanner;public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int maxx...

2022-04-02 11:15:07 678

空空如也

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

TA关注的人

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