自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(182)
  • 收藏
  • 关注

原创 Java集合基础梳理(集合体系+ArrayList)

对于数组来说,它是动态扩容的, 当元素存放超过数组的阈值机会进行扩容,但是当元素从数组中删除之后,数组不会缩容. 如果一个100大小的数组,那么只存放一个元素,序列化的时候需要序列化99个null值,为了避免Java默认的序列化机制的造成的空间浪费,将数组使用transient来修饰,的空间浪费主要体现在在 list 列表的结尾会预留一定的容量空间,而 LinkedList 的空间花费则体现在它的每一个元素都需要消耗比 ArrayList 更多的空间(因为要存放直接后继和直接前驱以及数据)。

2024-02-27 20:56:21 1284

原创 面试官: 反射了解么?

对于反射就类似于你想要进入一个房子,你没有钥匙,但是你知道这个房子是谁的,我们就可以通过反射API知道房子中的内部结构,具体都有啥.也就是说通过反射你就可以构造对象,知道对象属于某个类,可以获取类的属性和方法,获取到我们就可以调用属性和方法, 这种动态获取程序信息的能力,以及动态调用对象的能力我们就称为反射.在换句话讲,在Java中有一个java.lang.reflect这个包就是实现了反射相关的类库,比如Construct,Field,Method...

2024-02-27 10:18:59 552

原创 面试官: 泛型你了解么 ?

泛型经常用于集合类中,我们经常会使用泛型参数可以增强代码的可读性以及解决了元素的不确定性;为什么要有泛型?主要解决什么问题?在没有泛型的时候,我们定义一个ArrayList, ArratList arrayList = new ArrayList();我们在添加元素的时候既可以添加 字符串类型,也可以添加日期类型, 这样取元素的时候我们还需要进行强制类型转换. 因为编译器不知道具体存放集合中的元素类型是什么.元素的父类都是Object;

2024-02-26 19:51:12 957

原创 Java异常梳理总结

当程序发生不正确的行为,就代表程序出现了问题 这就代表发生了异常.异常有很多类型,我们会将异常进行分类Throwable是 Java 语言中所有错误或异常的基类。Throwable 又分为Error和Exception,其中ErrorError 属于程序无法处理的错误,我们没办法通过 catch 来进行捕获不建议通过catch捕获。例如Java 虚拟机运行错误虚拟机内存不够错误类定义错误(NoClassDefFoundError)等。这些异常发生时,Java 虚拟机(JVM)一般会选择线程终止。

2024-02-26 15:58:45 1108

原创 Bean 的作用域你知道么 ?

常见的作用域有Singleton , Prototype , Request , Session , Applciation这5种. 我们在代码中,可以在定义一个Bean的时候,通过@Scope注解来指定它的作用域。所谓的作用域,其实就是说这个东西在哪个范围内可以被使用 , 如我们定义类的成员变量的时候使用的public,private等这些也是作用域的概念。Spring的Bean的作用域, 描述的就是这个Bean在哪个范围内可以被使用. 不同的作用域决定了Bean的创建, 管理和销毁的方式。

2024-02-20 23:01:57 197

原创 Spring Bean 的生命周期了解么?

BeanPostProcessor的postProcessBeforeInitialization方法会在此时被调用。

2024-02-20 22:58:57 1124

原创 短链接系统测试报告

以上便是本次短链接系统的测试报告~

2024-02-18 23:26:28 563

原创 Java并发编程-线程基础

在多线程运行的时候,CPU通过时间片分配算法来循环执行任务 ,任务调度器会给每一个线程分配CPU时间片,当一个线程执行完一个时间片的任务之后就会切换到下一个任务,就会把CPU的使用权交给其他线程,在切换前我们也要保存上一个任务的状态,以便下一次切换回这个任务的时候,可以加载这个任务的状态,继续向下运行,该线程从使用CPU->不使用CPU 就是一次线程的上下文切换(任务从保存到再加载的过程就是一次上下文切换。

2023-06-29 10:51:23 418 1

原创 Java集合-HashMap-源码分析

*** 默认初始容量是16 -必须是2的幂。*/// aka 16/***最大容量,如果两个构造函数中的任何一个带参数地隐式指定了更高的值,则使用最大容量。*必须是2的幂

2023-06-27 09:49:13 264

原创 Java基础-Java常用类2(String类)

String是字符串类型, 是JDK内置的一个类 (Java.lang.String),提供了构造和管理字符串的各种基本逻辑, 在Java中,每个使用用双引号括起来的字符串都是String类的一个实例.String是引用类型,不是基本数据类型字符串在实际的开发中使用太频繁,为了执行效率,所以把字符串放到了方法区的字符串常量池当中.-->凡是带双引号的都在字符串常量池当中有一份.

2023-05-31 15:13:14 1026

原创 IOC(控制反转)

所谓依赖注⼊,就是由 IoC 容器在运⾏期间,动态地将某种依赖关系注⼊到对象之中依赖注入就是在程序运行的时候由IOC容器动态的将我所依赖的对象加入到当前类中的过程谁依赖于谁 : 应用程序依赖于IOC容器为什么需要依赖 : 应用程序需要IOC容器来提供对象所需要的外部资源谁注入谁 : IOC容器注入应用程序依赖的对象注入了什么 : 注入某个对象所依赖的外部资源(包括对象,资源,常量数据...)

2023-05-24 14:37:46 7329

原创 Java基础-Java常用类1(包装类 + Object类)

本篇文章主要讲解Java的常用类。

2023-05-22 22:57:23 506

原创 MySQL-索引(2)

再次回答一下联合索引就是为多个列建立的索引,换句话说就是要以这多个列作为排序规则建立一颗B+树.联合索引的含义就是先以第一个列排好序,第一个列相同的情况下,在按照第二个列排序,以此类推.....最左前缀原则这个最左前缀原则专门为联合索引而引出的一个规则(因为联合索引会有多个列一起组成索引),也就是按照最左优先,在检索数据的时候从最左边开始匹配. 如果不符合最左前缀法则就会导致索引失效or索引部分失效最左前缀可以是前M个字符,也可以是前N个字段举一个例子1。

2023-05-20 21:31:16 848 1

原创 Java基础-面向对象总结(3)

多态就是指一个对象具有多种形态,就是同一操作作用域不同的对象,可以有不同的解释,产生不同的执行结果. 具体的表现就是 父类引用指向子类对象Java中的多态是一种运行期的状态,为了实现运行期的多态即动态绑定,需要满足三个条件有类继承和接口的实现(继承,接口实现)子类要重写父类的方法(重写)父类引用指向子类对象(向上转型)对象类型和引用类型之间具有继承(类)/实现(接口)的关系;引用类型变量调用的到底是哪个类中的方法,必须在程序运行期间才能确定(Java中的多态是运行时多态)

2023-05-20 14:40:43 687

原创 Java基础-面向对象总结(2)

方法的返回值是指我们获取到的某个方法体中的代码执行后产生的结果!(前提是该方法可能产生结果)。返回值的作用:接收出结果,使得它可以用于其他的操作!

2023-05-14 17:33:06 766

原创 Java基础-面向对象总结(1)

本文主要梳理关于 Java面向对象的基础知识,希望对你有帮助。

2023-05-13 18:11:18 592

原创 MySQL-索引(1)

索引就好比我们书中的目录一样,当我们查找某个内容的时候,先会去目录中找到对应的章节,然后再到对应章节中往后找我要查找的内容.这样就极大的提高了我们找资料的效率书中的目录就对应着数据库(存储的数据)的索引(查找数据的目录).索引就是一种帮助存储引擎快速查询的一种数据结构.换句话说索引就是数据的目录存储引擎就是如何存储数据,如何为数据创建索引,如何查询和更新数据等技术的实现方法.

2023-05-10 21:21:50 596

原创 Java集合-Java集合基础

Collection是集合的根接口,可以存储一组对象,因为对象的存储多种多样.所以如何存储对象是由接口的具体实现来决定的,比如,比如 list允许重复而set不允许重复, 对于克隆和序列化而言,只对具体的实体和对象才有意义,不能把一个接口,抽象类克隆,序列化甚至反序列化. 所以具体的Collection实现类 是否可以克隆,序列化。collection 是一个接口 主要的接口如 List, Set, Queue,这三个主要的接口有实现类来帮助我们操作元素.

2023-05-07 15:34:42 638

原创 32. 最长有效括号

难度困难2251给你一个只包含'('和')'的字符串,找出最长有效(格式正确且连续)括号子串的长度。s = "(()"2最长有效括号子串是 "()"4最长有效括号子串是 "()()"s = ""0'('')'

2023-05-03 16:32:31 535 1

原创 Java基础:数据类型会考什么?

对于==来说,如果是基本数据类型比较的是值,如果是引用数据类型(包装类型)比较的是两个变量的地址是否相等,对于equals来说,如果引用类型没有重写equals与==一样,如果重写了比较的是内容-->包装类一般都默认重写了equals,建议引用类型(对象类型)使用equals比较.基本数据类型使用==比较。对应的包装类型 : byte - Byte,int-Integer,short-Short,long-Long,float-Float,double-Double,boolean-Boolean.

2023-04-18 20:03:54 358

原创 MVCC

的 事务ID -->

2023-04-12 18:48:13 614

原创 406. 根据身高重建队列

再来[6,1] 前面有一个人比它高所以应该插入到[7,1]的前面 为 : [7,0][6,1][7,1]因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。再来[4,4] 为 :[5,0][7,0][5,2][6,1][4,4][7,1]再来[7,1] 前面有一个人比它高,直接插入到它的后面 [7,0][7,1]再来[5,2] 为 :[5,0][7,0][5,2][6,1][7,1]再来[5,0] 为 :[5,0][7,0][6,1][7,1]

2023-04-06 23:43:55 301

原创 TCP四次挥手

我们知道TCP协议是有连接的,可靠性传输,全双工,面向字节流的传输层协议, 使用TCP协议在客户端和发送端传输数据前,必须先建立连接,传输数据完成之后,就要断开连接.而对于四次挥手来说就是用来TCP断开连接的.

2023-03-16 17:34:44 4423

原创 Java基础常识

JVM能够理解并且能够运行的代码就是字节码. 字节码只面向虚拟机,不针对特定的一种机器.字节码解决了传统解释性语言效率低的问题,同时也保留了传统解释性语言的可移植性,使得Java可移植性强实现跨平台,其次,不同的操作系统对应着不同的JVM,但是字节码是通用的,可以使得Java程序无需重新编译,就可以在不同操作系统上/平台上运行. 也就是所谓的 "一次编译,到处运行".

2023-03-08 23:51:15 135

原创 深拷贝,浅拷贝,引用拷贝有什么区别?

当我们向复制一个对象的时候,自然想到的就是赋值,直接赋值给另外一个变量,这种做法只是赋值了对象的地址,即两个变量现在指向的是同一个对象,任意一个对象操作这个属性都会影响到另外一个变量,这种对同一个对象的操作,在Java中Object提供了一个Clone方法,与对象拷贝有关,该方法的访问修饰限定符为protected,如果子类不重写该方法并将其声明为public,外部就调用不了对象的克隆方法.子类在重写时直接调用Object的clone()方法就可以了,是native方法,底层已经实现好对象拷贝的逻辑.

2023-02-01 17:25:21 624

原创 常量池/String常见面试题

常量池中的字符串仅仅是符号,第一次用到的时候才会转变为对象利用串池机制,来避免重复创建字符串的对象字符串变量的拼接是StringBuilder(Java 1.8)字符串常量拼接的原理是编译器优化可以使用intern方法,主动将串池中还没有的字符串对象放入串池JDK1.8调用intern方法,会尝试将字符串对象尝试放入到串池,如果有则不会放入到串池,如果没有放入到串池中。调用intern方法最终返回的是串池中的对象。

2023-01-31 20:17:40 288

原创 SpringMVC

对于Spring它是为了简便Java开发的,对于SpringBoot它是Spring的脚手架,用来简化Spring框架本身的繁琐配置,达到快速的集成和开发.最典型的减少配置,开箱即用.SpringMVC 是一个原始的基于ServletAPI的Web框架,属于Spring的一个Web模块,MVC是模型(Model),视图(View),控制器(Controller)的简写,主要的核心思想是通过将业务逻辑,数据,显示分离来组织代码. Spring MVC可以帮助我们进行更简洁的 Web 层的开发。

2023-01-28 19:52:05 321

原创 贪心 135. 分发糖果

从前往后遍历一遍数组,如果该孩子比它左边孩子评分高,就比左边孩子多一个糖果ratings[i]>ratings[i-1] ==> res[i] = res[i-1] +1;右边孩子比左边孩子糖果多,达到局部最优,最终给所有孩子分完,全局最优从后往前遍历一边数组,如果该孩子比它右边孩子评分高,就比右边孩子多一个糖果ratings[i]>ratings[i+1] ==> res[i] = res[i+1] +1;左边孩子比右边孩子糖果多,达到局部最优,最终给所有孩子分完,全局最优。

2023-01-25 10:04:33 1056

原创 Java对二维数组进行排序(Lambda+比较器写法)

【代码】Java对二维数组进行排序(Lambda+比较器写法)

2023-01-24 22:52:03 1193

原创 贪心 1005. K 次取反后最大化的数组和

初三了,还不开始卷 ????

2023-01-24 21:28:32 176

原创 贪心 45. 跳跃游戏 II

新年快乐啊,但是也不要忘了要提升自己奥,今天刷算法了么?

2023-01-21 12:36:42 970 1

原创 贪心 55. 跳跃游戏

难度中等2162给定一个非负整数数组nums,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。true可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。false无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。用贪心做的题会发现代码都非常简单,但是特别难想,非常巧妙吧,虽然大部分都是常识,但是初学大部分都是想不出来,只能多见题型多总结了.

2023-01-20 09:53:33 1782

原创 动归+贪心 53. 最大子数组和

难度中等5619给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。

2023-01-19 16:14:42 667

原创 贪心 376. 摆动序列

难度中等827如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如,是一个,因为差值是正负交替出现的。可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。给你一个整数数组nums,返回nums中作为的。6整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3)。7这个序列包含几个长度为 7 摆动序列。

2023-01-19 15:49:40 893

原创 贪心 455. 分发饼干

难度简单636假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果,我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。1你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。所以你应该输出1。2。

2023-01-19 09:40:21 1128

原创 1813. 句子相似性 III

可以往 sentence2 中 "My" 和 "Haley" 之间插入 "name is" ,得到 sentence1。可以往 sentence2 的结尾插入 "right now" 得到 sentence1。一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格。没法往这两个句子中的一个句子只插入一个句子就得到另一个句子。,可以通过往其中一个句子插入一个任意的句子()而得到另一个句子,那么我们称这两个句子是。包含大写和小写英文字母。

2023-01-18 10:55:57 454

原创 297. 二叉树的序列化与反序列化

难度困难序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅。你并非必须采取这种方式,你也可以采用其他的方法解决这个问题。root = []

2023-01-18 10:30:55 582

原创 剑指 Offer 36. 二叉搜索树与双向链表

难度中等619输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。特别地,我们希望可以就地完成转换操作。

2023-01-17 11:06:10 402

原创 538. 把二叉搜索树转换为累加树

难度中等给出二叉树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点node的新值等于原树中大于或等于node.val的值之和。本题和 1038:相同[1,null,1][3,3,2][7,9,4,10]0104-104104。

2023-01-17 08:44:13 331

原创 108. 将有序数组转换为二叉搜索树

链接:https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/solution/jian-dan-di-gui-bi-xu-miao-dong-by-sweetiee/二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。商业转载请联系作者获得授权,非商业转载请注明出处。[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。排列,请你将其转换为一棵。作者:sweetiee。

2023-01-15 18:42:53 410

空空如也

空空如也

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

TA关注的人

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