- 博客(45)
- 问答 (3)
- 收藏
- 关注
原创 优先队列自定义排序
最近在做到一个业务的时候,对排序有特殊要求,要求a和b相绑定,先对a进行降序排序,如果a相同的情况下,需要也对b进行降序排序,这个明显是要自定义类来实现Comparable接口或Comparator接口并分别重写compareTocompare方法来实现,这部分我有些生疏了,故在此写出来后进行回顾。
2024-03-21 15:33:23
343
原创 JAVA中已有的栈和队列的实现
(双端队列)也是一个可以用来实现栈的接口,特别是当你需要一个线程安全的栈时,接口,因此也可以用作普通的队列,不过,它的元素是按照其自然顺序或者提供的。是一个接口,用于实现队列数据结构,它定义了队列的常用方法,如。类实现了这个接口,因此你可以使用。提供了多种线程安全的队列实现,如。中,以协调不同线程之间的任务执行。主要是一个优先队列,但它也实现了。(查看栈顶元素)等方法。实现的栈类,它提供了。等,这些队列通常用于。
2024-03-13 11:17:27
365
原创 CAP & BASE理论
分布式系统中,多个节点之间的网络本来是连通的,但是因为某些故障(比如部分节点网络出了问题)某些节点之间不连通了,整个网络就分成了几块区域,这就叫网络分区。
2024-02-03 20:04:40
681
原创 日志追踪-Tracing
分布式链路跟踪中有两个重要的概念:**跟踪(trace)和 跨度( span)**。trace 是请求在分布式系统中的整个链路视图,span 则代表整个链路中不同服务内部的视图,span 组合在一起就是整个 trace 的视图
2024-02-03 19:54:24
359
原创 String对象的探究(new String到底创建了多少对象?)
内部结构jdk8及以前,使用的是char[]jdk8以后,使用的是byte[]+字符编码标识不可变性通过字面量的方式给一个字符串赋值,是直接声明在字符串常量池中字符串常量池中是不会存储相同内容的字符串的内存分配jdk6及以前:字符串常量池存放在永久代jdk6之后:调整到了Java堆内intern()方法jdk6及以前:如果字符串常量池中有,则不会放入,而是返回已有的字符串常量池中对象的地址;如果没有,会把此对象复制一份(创建一份新的),放入字符串常量池中,并返回字符串常量池中对象的地址。
2024-01-23 16:46:33
325
原创 域名申请、备案、解析完整流程及其详细描述
对于个人用户而言,拥有一个属于自己的域名不仅可以更好的上线自己一些学习的项目或者开发的项目`(SpringCloud-GateWay服务关于nginx域名的转发)`,还可以方便地管理和发布自己的个人网站或博客。在阿里云上购买、申请和备案个人域名非常简单,本文将为您详细介绍如何在阿里云上完成个人域名的购买、申请及备案整个流程。
2024-01-17 16:02:06
3278
原创 JAVA实现DFS、BFS
深度优先遍历(DFS)和广度优先遍历(BFS),这两种策略在处理复杂数据结构时非常有用,特别是在处理树和图结构的时候。
2024-01-12 09:33:42
874
1
原创 常见加密算法梳理
在当今的信息时代,数据的安全性显得尤为重要,加密算法作为保障数据安全的核心手段,在过去的几十年中经历了巨大的发展。信息加密是前后端开发都经常需要使用到的技术,应用场景包括了数据存储、网络通信、身份认证等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的签名加密算法来达到业务目标。这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用。
2024-01-09 20:10:29
103
原创 【JAVA线程实现】
线程是程序执行流的最小单元,它是程序的执行路径。在多线程编程中,一个进程内可以有多个线程同时执行,共享进程的资源,从而提高程序的执行效率。进程是操作系统进行资源分配的基本单位,线程是独立调度和分派的基本单位。
2024-01-09 13:47:51
932
原创 Java线程池
当阻塞队列填满时,如果线程池中线程数没用超过最大线程数,则会创建新的线程运行任务,否则更具拒绝策略处理新任务。:当有新任务时,如果线程池中线程数没用达到线程池的基本大小,则会创建新的线程执行任务,否则将任务放入阻塞队列。:非核心线程空闲后,报错存活的时间,此参数只对非核心线程有效。:每当线程池创建一个新的线程时,都是通过线程工厂方法来完成的,在。ps:注意,这一段是根据源码分析的,具体的没贴出,这只是我的理解。创建新的线程需要获取全局锁,通过这种设计可以避免获取全局锁,当。线程池:一个管理线程的池子。
2024-01-08 13:17:15
954
1
原创 IDEA+Git——项目分支管理
在Git中,分支是项目的不同版本,当开始开发一个新项目时,主分支通常是master分支。随着项目的进展,你可能需要开发新的功能或修复bug,在这些情况下,你可以创建一个新的分支,以便在不影响主分支的情况下进行开发。
2024-01-08 11:32:12
2190
原创 Stream流总结:从入门到精通
Stream流是Java 8中引入的一个新特性,它允许以声明性方式处理数据,如过滤、映射、排序等。这些方法可以根据具体的需求进行组合使用,以实现复杂的流式处理逻辑,但在使用的时候也要注意线程安全问题。
2024-01-05 15:14:06
753
原创 SpringBoot自动装配+自定义config规则(如何覆盖本身规则)
SpringBoot自动化配置通常可以在SpringBoot项目中帮我们节省大量配置类的时间,方便了我们快速开发项目
2024-01-04 20:50:00
950
1
原创 yum安装及常用操作
为例,如果是其他版本的系统,请根据实际情况修改下载链接,如果。: 基本语法,其中 [option] 为可选,也没有,则直接点进连接进行下载然后再拖入。为要安装的软件包名称。
2024-01-04 13:45:15
1048
1
原创 vim常用操作
普通模式 / 命令模式(Normal mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段插入模式(Insertmode):文字输入底行模式(Last line mode):文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作替换模式(Replace mode)视图模式(Visual mode)进入命令模式:输入命令打开vim默认进入 命令模式,当前目录下没有同名文件会新建一个命令模式->插入模式:按键i,界面左下角出现– INSERT –
2024-01-03 17:28:47
872
1
原创 面试经典 150 题——12
题目详情【编号】给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。请不要使用除法,且在O(n)时间复杂度内完成此题。
2023-08-08 14:55:33
24
原创 面试经典 150 题——11
题目详情【编号380】实现类:初始化RandomizedSet 对象当元素val不存在时,向集合中插入该项,并返回true;否则,返回false。当元素val存在时,从集合中移除该项,并返回true;否则,返回false。随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。每个元素应该有 相同的概率 被返回。你必须实现类的所有函数,并满足每个函数的 平均 时间复杂度为O(1)。
2023-08-04 17:06:58
30
原创 面试经典 150 题——10
题目详情【编号45】给定一个长度为 n 的0 索引整数数组 nums。初始位置为 nums[0]。每个元素nums[i]表示从索引 i 向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意处:返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。
2023-07-25 16:44:34
34
原创 面试经典 150 题——9
给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。
2023-07-24 16:17:57
43
原创 面试经典 150 题——8
题目详情【编号122】给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回 你能获得的最大利润。
2023-07-24 16:01:13
21
原创 面试经典 150 题——7
题目详情【编号121】给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。
2023-07-19 15:57:22
30
原创 面试经典 150 题——5
题目详情【编号169】给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2023-07-19 10:57:52
33
原创 面试经典 150 题——4
题目详情【编号80】给你一个有序数组 nums ,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地 修改输入数组并在使用 O(1) 额外空间的条件下完成。
2023-07-19 09:30:30
23
原创 面试经典 150 题——3
题目详情【编号26】给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致。然后返回 nums 中唯一元素的个数。考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。返回 k。
2023-07-19 01:03:06
23
原创 面试经典 150 题——2
题目详情【编号27】给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
2023-07-18 16:39:34
22
原创 面试经典 150 题——1
题目详情给你两个按非递减顺序排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你合并nums2 到 nums1 中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n。
2023-07-18 16:17:22
24
原创 电脑获取京东CK
电脑获取京东CK一、浏览器使用二、操作步骤一、浏览器使用谷歌新版Edge国产360,QQ浏览器要切换到极速模式二、操作步骤电脑浏览器打开电脑 京东网址(点我)按键盘F12键打开开发者工具,然后点下图中的图标。此时是未登录状态(使用手机短信验证码登录),如已登录请忽略此步骤。建议使用手机短信验证码登录(此方式cookie有效时长大概31天,其他登录方式比较短)登录后,选择Network,有很多链接的话点箭头这里清空下。然后再点我的,链接就变少了(如果不起效,就多点几个链接进去找到
2022-01-02 13:50:45
13145
4
原创 【JVM】方法签名与方法描述符与重载的关系
在 `javac`编译器 中进行编译(这里用的是JDK6的`javac`编译器,其它支持还是不支持没有查阅)可以编译,直达`JVM`层面进行运行得到可运行结果,而`IDEA`或`Eclipse`中的编译器则不允许编译,可自行测试。
2021-12-05 17:41:52
361
1
原创 【JVM】IDEA中轻松进行反编译查看并实例展示
IDEA中轻松进行反编译查看1、运行你要反编译的java程序2、找到`target`相同目录下的同名class文件3、实例3.1、反编译技术对自动拆装箱的陷阱的探讨源程序如图:反编译后:问题:结论:1、运行你要反编译的java程序2、找到target相同目录下的同名class文件注意:若没找到就rebuilt下程序3、实例3.1、反编译技术对自动拆装箱的陷阱的探讨源程序如图:package com.chan.test;/** * 截取自JVM虚拟机 377 面的 自动拆装箱的陷阱
2021-12-05 17:19:47
1153
原创 从零简易实现mybatis框架
从零简易实现mybatis框架一、前言1.1、什么是框架?1.2、三层架构1.3、持久层技术解决方案二、mybatis解析2.1、入门2.1.1、mybatis的环境搭建2.1.2、环境搭建的注意事项:2.1.3、mybatis的入门案例三、自定义mybatis3.1、自定义Mybatis的分析3.2、自定义目标与工作准备3.2.1、建立数据库:3.2.2、创建一个Maven项目,导入pom依赖:3.2.3、创建如图所示目录 结构及其类等:3.3、准备工作完成步入正题3.3.1、先写一个Resources类
2021-08-15 20:15:25
389
原创 com.sun.proxy.$Proxy0 cannot be cast to com.chan.dao.IUserDao报错问题
问题解答一、问题描述二、问题解决一、问题描述本人在仿照手写mybatis框架时用到了动态代理如图:测试运行时报了Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to com.chan.dao.IUserDao的错二、问题解决从网上查了些许资料得知:Father.class == new Father().getClass(),如果是父类指向之类则
2021-08-13 16:25:50
543
空空如也
隐含寻址访存次数为什么是0
2022-07-20
springboot映射的请求路径加了中文就无法访问
2021-12-16
关于springboot的static下静态数据无法访问题
2021-12-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人