自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot的自动装配机制(最新SpringBoot 2.6.3)

​SpringBoot3.0都要出了,据说JDK最低要求17???我滴乖乖,JDK8还没整明白呢,先学习一下SpringBoot压压惊。一、什么是SpringBoot官方描述:翻译:通过Spring Boot,可以轻松地创建独立的,基于生产级别的基于Spring的应用程序,并且可以“运行”它们其实Spring Boot的设计是为了让你尽可能快的跑起来Spring应用程序并且尽可能减少你的配置文件。二、SpringBoot的特征①SpringBoot Starter:他将常用的依赖

2022-02-10 18:23:26 2242

原创 Java面试题(三)

1 String 属于基础的数据类型吗?在Java中,数据类型分为引用类型和基本类型,基本类型分为八种整型byte,short,int,long浮点型:float,double字符型:charBoolean型:booleanString不是基本的数据类型,是final修饰的java类,是引用类型。2 Java 中操作字符串都有哪些类?它们之间有什么区别?主要是一下三种:String、StringBuffer、StringBuilder特别是在项目中。先来看一下这三种操作方

2022-02-10 09:28:53 174

原创 Java常见面试题(二)

1 Object中有哪些方法?(1)protected Object clone()--->创建并返回此对象的一个副本。(2)boolean equals(Object obj)--->指示某个其他对象是否与此对象“相等”。(3)protected void finalize()--->当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。(4)Class<? extendsObject> getClass()--->返回一个对象的运行...

2022-02-08 15:39:23 150

原创 java常见面试题(一)

1 你是怎样理解面向对象的面向对象是利于语言对现实事物进行抽象。面向对象具有以下四大特征:(1)继承:继承是从已有类得到继承信息创建新类的过程(2)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。(3)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。(4)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。2 int和Integer有什么区别,以及以下程序结果(1)Integer是int的包装.

2022-02-07 10:03:18 126

原创 八大排序算法

所谓排序,就是将一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。常用的排序算法大致有8种:插入排序(直接插入排序、希尔排序)、选择排序(简单选择排序、堆排序)、交换排序(冒泡排序、快速排序)、归并排序、基数排序。一、直接插入排序算法思想:把要排序的数组分为了两个部分,一部分是排序好的元素,另一部分是待插入的元素,如果选择的元素比已排序好的元素小,则交换,直到全部元素都比较过为止。排序过程:代码实现:public

2022-01-30 10:24:35 2144

原创 并发工具类CountDownLatch、CyclicBarrier和Semaphore

在JDK的并发包中提供了几个常用的并发工具类:CountDownLatch、CyclicBarrier和Semaphore。这三个是 JUC 中较为常用的同步器,通过它们可以方便地实现很多线程之间协作的功能。一、CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。它通过一个计数器来实现,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后等待的线程就可以恢复执行任务。现

2022-01-21 14:13:45 184

原创 并发容器之ConcurrentLinkedQueue

在并发编程中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列有两种方式:①阻塞算法:加锁②非阻塞算法:CAS于是乎,Doug Lea大神编写了ConcurrentLinkedQueue,一个基于链表的线程安全队列。它采用先进先出的规则对节点进行排序,当我们添加一个元素时,它会添加到尾部;当我们删除一个元素时,它会返回队列的头部元素。一、ConcurrentLinkedQueue的结构(JDK1.8)ConcurrentLinkedQueue主要由head节点和tail节.

2022-01-19 17:18:42 1045

原创 常用的垃圾回收算法与垃圾回收器

​1.什么是垃圾?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的对象。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至导致内存溢出。2.为什么需要垃圾回收?①如果不进行垃圾回收,内存会被消耗尽②除了释放没用的对象,垃圾回收也可以清除内存碎片,以便将内存分配给新的对象3.垃圾回收算法3.1 标记阶段在堆里存放着几乎所有的Java实例,在GC执行垃圾回收之前,首先需要区分出内存中

2021-08-02 21:00:12 444

原创 ArrayList、CopyOnWriteArrayList源码剖析

上一期我们探究了ConcurrentHashMap,今天我们来探究ArrayList和CopyOnWriteArrayList。ArrayList和HashMap一样,是我们在java编程中经常使用的一种数据结构,底层实现基于数组,并且可以自动进行扩容操作。允许 null 的存在,实现了RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化。由于基于数组实现,因此,get方法的时间复杂度为O(1),而add方法的时间复杂度为O(

2021-07-26 17:05:40 117

原创 并发容器之ConcurrentHashMap

上期我们提到了HashMap是线程不安全的,因此在并发环境下HashMap会带来问题。代码如下:public static void main(String[] args) {HashMap<Integer,Integer>map=newHashMap<>();//线程一 new Thread(() -> { for (int i = 0; i < 30; i++) { map.put(i...

2021-07-19 18:56:49 372

原创 Java容器之HashMap

HashMap是我们Java程序员在面试题中被问烂的一个知识点。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,但是你真的看过它的源码吗?今天我们就来研究一下HashMap的源码(本人采用JDK1.8)。一、HashMap简介我们都知道HashMap在JDK1.7的时候采用了数组+链表的数据结构,而在JDK1.8的时候采用了数组+链表+红黑树的数据结构,大概就是以下样子:在添加元素时,会先计算出该元素所在table中的桶,然后再进行put操作,当链表长度大于8并且桶

2021-07-12 22:23:42 102

原创 看完这篇文章,让你明白Java的String

也许有人会说,String不就是字符串吗,什么可研究的,那你就大错特错了,请看下面的一个小例子:String s1 = "abc";String s2 = "def";String s3 = "abcdef";String s4 = "abc" + "def";String s5 = s1 + "def";String s6 = "abc" + s2;String s7 = s1 + s2;String s8 = s6.intern();System.out.println(s3==.

2021-07-12 13:52:36 68

原创 springboot之跨域问题

如果配置了Filter或者Configuration或者采用@CrossOrigin均不能session共享(没配置参考别人的配置一下),可能是Chrome浏览器的问题;Google 将在2020年2月4号发布的 Chrome 80 版本(schedule:https://www.chromestatus.com/features/schedule)中默认屏蔽所有第三方 Cookie,即默认为所有 Cookie 加上SameSite=Lax属性(https://www.chromestatus.co..

2020-08-20 11:39:28 172

原创 蓝桥杯 ALGO-2 最大最小公倍数 (c++)

问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数N。输出格式输出一个整数,表示你找到的最小公倍数。样例输入9样例输出504数据规模与约定1 &lt;= N &lt;= 106。问题分析:这个题要求最大最小公倍数,也就是求N中的三个最大的并且他们两两互质的三个数(即最大公因数为1),挨着的两...

2019-02-18 14:06:28 162

原创 蓝桥杯 ALGO-1 区间k大数查询(c++)

问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式总共输出m行,每行一个数,表示询问的答案。...

2019-02-18 13:15:42 136

原创 蓝桥杯 BASIC-28 Huffuman树(c++)

问题描述  Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。  给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:  1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。  2. 重复步骤1,直到{pi}中只剩...

2019-02-17 19:02:16 156

原创 蓝桥杯 BASIC-25 回形取数(c++)

问题描述  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入3 31 2 3...

2019-02-15 20:22:41 465 1

原创 蓝桥杯 BASIC-24 龟兔赛跑预测(c++)

问题描述  话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数...

2019-02-15 19:18:58 398 1

原创 蓝桥杯 BASIC-19 完美的代价

问题描述  回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。  交换的定义是:交换两个相邻的字符  例如mamad  第一次交换 ad : mamda  第二次交换 md : madma  第三次交换 ma : madam (回文!完美!)输入格式 ...

2019-01-29 21:42:39 174

原创 蓝桥杯 BASIC-18 矩形面积交

问题描述  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式  输入仅包含两行,每行描述一个矩形。  在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式  输出仅包含一个实数,为交的面积,保留到小数后两位。样例输入1 1 3 ...

2019-01-29 17:37:10 258

原创 PAT (Basic Level) 1008 数组元素循环右移问题(C++)

问题描述:一个数组A中存有N(&gt;0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A​0​​A​1​​⋯A​N−1​​)变换为(A​N−M​​⋯A​N−1​​A​0​​A​1​​⋯A​N−M−1​​)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例...

2019-01-20 14:58:28 73

原创 PAT (Basic Level) 1007 素数对猜想 (C++)

问题描述:1007 素数对猜想 (20 分)让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n&gt;1有d​n​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(&lt;10​5​​),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式...

2019-01-20 14:01:20 105

原创 PAT (Basic Level) 1003 我要通过!

问题描述:答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符; 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;...

2019-01-20 11:28:15 76

原创 PAT (Basic Level) 1002 写出这个数

问题描述:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10​100​​。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789...

2019-01-19 22:32:53 80

原创 code.c: In function 'main': code.c:10:2: error: 'for' loop initial declarations are only allowed in

code.c: In function 'main': code.c:10:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for(int i=3;i ^ code.c:10:2: note: use option -std=c99, -std=gnu99, -std=c11 or -...

2019-01-18 15:22:36 2592

空空如也

空空如也

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

TA关注的人

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