自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Shapeofyou的博客

欢迎交流~~

  • 博客(53)
  • 问答 (2)
  • 收藏
  • 关注

原创 throws和try catch什么时候使用

出现异常后,要么抛throws 要么 try catchthrwos 。 是抛给了你的上一级(调用者)。这个异常我处理不了或者不知道怎么处理时使用。 try catch代码块 。是自己处理异常,不用再抛出去,因为自己都能处理的异常抛出去没意义了。例子:下面代码1/0会抛出ArithmeticException ,被catch语句捕获并进行处理,所以不需要再在方法头再throws异常。public void test() { // throws ArithmeticException

2022-03-28 20:40:51 796

原创 Redis学习笔记P01-P02(尚硅谷)

Web1.0的时代数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。Web2.0时代随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。​​​​​​​为了解决CPU及内存压力​​​​​​​解决IO压力...

2022-01-10 22:15:18 264

原创 LeetCode艰难刷题日记:矩阵置零

class Solution { public void setZeroes(int[][] matrix) { int m = matrix.length, n = matrix[0].length; boolean[] row = new boolean[m]; //存放元素为0的行下标 boolean[] col = new boolean[n]; //存放元素为0的列下标 //记录原数组中,元素为0的行下标与列下标 ...

2021-11-08 11:41:22 100

原创 LeetCode艰难刷题日记 18. 杨辉三角

题目给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。体会自己对动态规划真的不熟悉,所以看了看b站还有题解开始慢慢理解并加深。对我而已,动态规划就是通过列出各个状态下的条件,比如这题中第一行是1,第二行1,1,转换为class Solution { public List<List<Integer>> generate(int numRows) { List<List<In

2021-11-07 14:42:09 68

原创 LeetCode艰难刷题日记之 350. 两个数组的交集 II

题目两个数组的交集 II思路-1. 两个数组a和b,把数组a的元素 放入一个HashMap中,key为a元素,value为元素出现的次数-2 .然后在遍历数组b,检验数组b的元素是否在1中的map存在,有则是a和b元素的交集元素代码class Solution { public int[] intersect(int[] nums1, int[] nums2) { if (nums1.length > nums2.length) {

2021-11-05 09:20:39 75

原创 剑指 Offer 52. 两个链表的第一个公共节点

Q:输入两个链表,找出它们的第一个公共节点。定义两个指针 node1,node2 分别指向两个链表 headA,headB 的头结点 同时分别逐结点遍历,当 node1 到达链表 headA 的末尾时,重新定位到链表 headB 的头结点; 当 node2 到达链表 headB 的末尾时,重新定位到链表 headA 的头结点。 当它们相遇时,所指向的结点就是第一个公共结点/** * Definition for singly-linked list. * public class ...

2021-03-26 15:50:46 50

原创 面试题 02.02. 返回倒数第 k 个节点

面试题 02.02. 返回倒数第 k 个节点实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2输出: 4思路:快慢指针。 具体:快指针向前走k步, 然后慢指针和快指针一起走, 直到快指针为空时,慢指针指向的节点就是题目所求的节点/** * Definition for singly-linked list. * public clas...

2021-03-26 15:26:09 46

原创 面试题 02.03. 删除中间节点

面试题 02.03. 删除中间节点实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。示例:输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f/** * Definition for singly-linked list. * public class ListNode { * int val; * .

2021-03-26 15:09:56 48

转载 Java刷题复习(三)2021/3/26

static能否修饰class内部类可以是静态static的,也可用public,default,protected和private修饰,外部类的修饰符只能是public,abstract,finalJava中只有整型才能使用的运算符为? %List:可重复的,有序的。Set:不可重复的,无序的。Object类里的方法java object默认的基本方法中没有copy(),含有如下方法:getClass(), hashCode(), equ...

2021-03-26 11:27:12 85

转载 Java刷题复习(二)2021/3/26

Java回收机制在java中,对象的内存在哪个时刻回收,取决于垃圾回收器何时运行。 一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法, 并且在下一次垃圾回收动作发生时,才会真正的回收对象占用的内存(《java 编程思想》) 在C++中,对象的内存在哪个时刻被回收,是可以确定的,在C++中,析构函数和资源的释放息息相关,能不能正确处理析构函数,关乎能否正确回收对象内存资源。 在java中,对象的内存在哪个时刻回收,取决于垃圾回收器何时运行,在java中,所有的对象.

2021-03-26 10:40:26 47

转载 Java刷题复习(一)2021/3/26

语句:char foo='中',是否正确?(假设源文件以GB2312编码存储,并且以javac – encoding GB2312命令编译)这里的’中‘应该是不管用什么编码方式存储,赋值给char变量后都会先转换成对应的unicode的序号\u4e2d 只要是utf-16be能表示的unicode编码都是可以成功的,与java文件本身的字符编码无关系。 --a:比如,’中‘在gbk中的编码是d6d0,那当赋值给char类型时,java知道这是gbk字符集下表示的’中‘,那就能通过对比gbk和un.

2021-03-26 10:24:05 183

转载 Java(三)2021/3/25

instanceof用来在运行时指出对象是否是特定类的一个实例,instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。基本编程单元是类,基本存储单元java的基本编程单元是类,基本存储单元是变量。抽象方法定义1. 首先,类的修饰符,都应该在class关键字之前,AB错;2. 抽象方法不能有方法体,D错。如果一个接口Cow有个方法drink(),有个类Calf实现接口Cow,则在类Calf中正...

2021-03-25 11:25:33 110

转载 Java复习(二)2021/3/25

重载和重写区别重载: 1、 重载是在编译器通过方法中形参的静态类型确定调用方法版本的过程。 2、 重载是多态在编译期的表现形式 3、 重载的判定只有两个条件(其他的条件都不能作为判定): 1、 方法名一致 2、形参列表不同重写: 1、重写在方法运行时,通过调用者的实际类型来确定调用的方法版本。(具体细说,就是子父类中的重写方法在对应的class文件常量池的位置相同,一旦子类没有重写,那么子类的实例就会沿着...

2021-03-25 11:00:28 96

转载 Java复习(一)2021/3/25

最终类最终类就是被final修饰的类,最终方法就是被final修饰的方法。最终类不能被继承,最终方法不能被重写。抽象类和最终类都可以被声明使用。这里只是说“声明”,并没有说“实例化”;如果只是声明是可以的,最常见的使用方式就是:1、父类类型的引用指向子类的对象;2、接口类型的引用指向该接口的实现类的对象;以上两种使用方式也就是所谓的“向上转型”。判断:用户不能调用构造方法,只能通过new关键字自动调用。(X)在类内部可以用户可以使用关键字this.构造方法...

2021-03-25 10:33:38 80

原创 Java复习(三)2021/3/24

HashMap组成由数组+链表组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的线程题考察的run()方法作为普通方法的调用和通过线程start的启动调用的区别。对象.start()属于对线程的启动调用run()方法。题目给出的example.run();是对象对普通方法的调用,所以由上到下依次执行输出:run main。子类父类在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合...

2021-03-24 11:34:48 86

转载 Java面试(二)2021/3/24

映射(Map)的key和value都不可重复。(X)Map接口有两个金典的子类分别是Hashtable 和 Hashmap。Hashtable 线程安全,不支持key和value为空,key不能重复,但value可以重复,不支持key和value为null。Hashmap 非线程安全,支持key和value为空,key不能重复,但value可以重复,支持key和value为null。由于题目否定Map集合中的value都不可重复,这是错误的。局部变量可以和成员...

2021-03-24 11:10:13 159

原创 Java面试复习(一)2021/3/24

计算机组成计算机由硬件系统和软件系统组成,没有安装任何软件的计算机称为裸机。所谓软件是指为方便使用计算机和提高使用效率而组织的程序以及用于开发、使用和维护的有关文档。软件系统可分为系统软件和应用软件两大类。属于HttpServletResponse接口完成的功能设置HTTP头标 1 response.setHeader("Refresh","3");//三秒刷新页面一次 设置cookie 1 2 ...

2021-03-24 10:26:36 87

原创 1331. 数组序号转换

给你一个整数数组arr ,请你将数组中的每个元素替换为它们排序后的序号。序号代表了一个元素有多大。序号编号的规则如下:序号从 1 开始编号。一个元素越大,那么序号越大。如果两个元素相等,那么它们的序号相同。每个数字的序号都应该尽可能地小。示例 1:输入:arr = [40,10,20,30]输出:[4,1,2,3]解释:40 是最大的元素。 10 是最小的元素。 20 是第二小的数字。 30 是第三小的数字。示例 2:输入:arr = [100,100,100]输出:[..

2021-03-23 22:43:07 98

原创 面试题 17.10. 主要元素

数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。示例 1:输入:[1,2,5,9,5,9,5,5,5]输出:5示例 2:输入:[3,2]输出:-1示例 3:输入:[2,2,1,1,1,2,2]输出:2说明:你有办法在时间复杂度为 O(N),空间复杂度为 O(1) 内完成吗?代码:class Solution { public int majorityElement(int[] nums) { .

2021-03-23 22:20:27 77

原创 JUC复习2021/3/23

JUC是什么Java 5.0 提供了 java.util.concurrent (简称 JUC )包做了啥增加并发编程中实用工具类用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架提供可调的、灵活的线程池还提供了设计用于多线程上下文中的 Collection 实现等内存可见性1.是什么?内存可见性(Memory Visibility)是指当某个线程正在使用对象状态而另一个线程在同时修改该状态2.要怎么做需要确保当一个线程修改了对象.

2021-03-23 20:36:31 102 1

原创 Java复习2021/3/23

运行异常可以通过java虚拟机来自行处理。非运行异常,我们应该捕获或者抛出Thisthis的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为this(参数);Collection 和Collectionsjava.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。java.util.C..

2021-03-23 10:56:27 247 1

转载 SpringCloud面试复习 2021/3/22

Eureka是干什么的?Eureka分为Eureka客户端和Eureka服务端,Eureka客户端提供服务注册与注销、服务发现的功能,Eureka服务端提供服务治理的功能。Eureka流程说明:(1)服务提供者集成Eureka客户端,启动时,Eureka客户端发送注册请求到Eureka服务端;(2)Eureka客户端每30秒发送一次续约请求到Eureka服务端;(3)若Eureka服务端超过90秒未收到服务提供者的续约请...

2021-03-22 14:22:17 88

原创 Java面试复习 2021/3/22

子类,方法方法同步如果父类中的某个方法使用了synchronized关键字,而子类中也覆盖了这个方法,默认情况下子类中的这个方法并不是同步的,必须显示的在子类的这个方法中加上synchronized关键字才可。当然,也可以在子类中调用父类中相应的方法,这样虽然子类中的方法并不是同步的,但子类调用了父类中的同步方法,也就相当子类方法也同步了。接口中的修饰的方法接口中的方法默认都是public static final,这是JAVA8的规定。构造函数只能被调用,不能被继承。子类默..

2021-03-22 11:13:27 136

原创 Java面试 2021-3-21复习

JAVA的运算符算数运算符、关系运算符、逻辑运算符、位运算符算数运算符(9):+ - * / % ++ --关系运算符(6):== != > >= < <=逻辑运算符(6):&& || ! ^ &(按位与) |位运算符(7):& | ~ ^ >> << >>>;注意:实际含义不同:“||”:如果左边计算后的操作数为true,右边则...

2021-03-21 21:06:58 50

原创 Java面试 2021/3/20复习

1.File类对象代表:一个文件或一个文件目录。Java程序表示一个文件或目录,必须有个File对象。但有File对象不一定有真实的文件或目录存在。2.File类不能进行对文件进行的输入和输出操作(使用IO流才行)。3....

2021-03-21 19:51:13 39

原创 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

public int kthToLast(ListNode head, int k) { Stack<ListNode> stack = new Stack<>(); //链表节点压栈 while (head != null) { stack.push(head); head = head.next; } //在出栈串成新的链表 List..

2021-03-08 10:28:12 274

原创 通过CDN引入jQuery

百度 CDN <head> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script></head>

2020-11-28 11:20:51 364

原创 JAVA StringUtils需要导入的依赖

<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang --><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency>

2020-11-28 11:18:44 1269

原创 Linux下如何查看JDK安装路径

1:echo $JAVA_HOME定位到JDK安装路径效果图如下:2.which java定位到java程序的执行路径。效果图如下:

2020-11-25 09:01:45 156

原创 vim的相关指令

:w 保存编辑后的文件内容,但不退出vim编辑器。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中。 :w! 强制写文件,即强制覆盖原有文件。如果原有文件的访问权限不允许写入文件,例如,原有的文件为只读文件,则可使用这个命令强制写入。但是,这种命令用法仅当用户是文件的属主时才适用,而超级用户则不受此限制。 :wq 保存文件内容后退出vim编辑器。这个命令的作用是把内存缓冲区中的数...

2020-11-25 08:50:07 378

原创 剑指 Offer 10- I. 斐波那契数列

题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。思路递归中有很多重复计算。利用动态规划,设定边界条件,通过转移方程进行递推。本题...

2020-09-28 16:44:06 66

原创 9月24日总结 面试总结

摘抄知乎Beritra的方法论打好基础,技术不好啥都白搭 调整心态,面试其实很看运气,即使你再牛,也很难说百分百能面过某家公司 步步为营,先易后难,把小公司、不那么想去的公司放到前面练手 + 拿 offer 用来抬薪 及时复盘,总结经验,多多投递...

2020-09-24 22:38:32 56

原创 剑指 Offer 58 - I. 翻转单词顺序

题目输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:...

2020-09-24 16:20:04 80

原创 剑指 Offer 31. 栈的压入、弹出序列

题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3), p

2020-09-23 17:06:41 54

原创 9月22日今日摘抄

逐渐摆脱对代码的执念,不再对代码有着宗教般的虔诚。

2020-09-22 22:19:10 69

原创 【收藏】怎么看辞职然后全职备考公务员?

总结一个答主“径舟“的答案。第一,你不上班效率未必有多高。因为时间少,所以精力要更集中。相反,如果你每天都在家,时间浪费的可能更多,效率未必很高,效果也未必很好第二,公考需要一些运气。你复习的再好,公考上去都是有一定的运气的,所以我们认真的复习之后,往往需要参加两三次公考,才能有一次发挥出100%的水平,顺利上岸。这有点像是概率分布图,我们通过复习,能够提高自己水平的平均值,但真正分数还受发挥程度的影响。如果我们在职考试,能够通过多次参加考试来刷成绩;但如果离职,这么多的考试次数,你能接受得了吗

2020-09-20 22:06:11 112

原创 剑指 Offer 09. 用两个栈实现队列

题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","deleteHead","appendTa.

2020-09-20 16:58:45 63

原创 剑指 Offer 18. 删除链表的节点

题目给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为1的第三个节点,那么在调用了你的函数之后,该链表...

2020-09-19 11:01:03 55

原创 剑指 Offer 52. 两个链表的第一个公共节点

如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相.

2020-09-19 10:11:21 49

原创 剑指 Offer 25. 合并两个排序的链表

题目输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制0 <= 链表长度 <= 1000思路1.建立一个链表2,使用while循环遍历两个链表(循环条件while (l1 != null && l2 != null),每次遍历对比链表节点的值3.把较小的链表的插入新建的链表.

2020-09-18 08:48:21 59

空空如也

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

TA关注的人

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