- 博客(53)
- 问答 (2)
- 收藏
- 关注
原创 throws和try catch什么时候使用
出现异常后,要么抛throws 要么 try catch thrwos 。 是抛给了你的上一级(调用者)。这个异常我处理不了或者不知道怎么处理时使用。 try catch代码块 。是自己处理异常,不用再抛出去,因为自己都能处理的异常抛出去没意义了。 例子:下面代码1/0会抛出ArithmeticException ,被catch语句捕获并进行处理,所以不需要再在方法头再throws异常。 public void test() { // throws ArithmeticException
2022-03-28 20:40:51
903
原创 Redis学习笔记P01-P02(尚硅谷)
Web1.0的时代 数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。 Web2.0时代 随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。 为了解决CPU及内存压力 解决IO压力 ...
2022-01-10 22:15:18
337
原创 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
166
原创 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
138
原创 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
138
原创 剑指 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
102
原创 面试题 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
97
原创 面试题 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
102
转载 Java刷题复习(三)2021/3/26
static能否修饰class 内部类可以是静态static的,也可用public,default,protected和private修饰, 外部类的修饰符只能是public,abstract,final Java中只有整型才能使用的运算符为? % List:可重复的,有序的。Set:不可重复的,无序的。 Object类里的方法 java object默认的基本方法中没有copy(),含有如下方法: getClass(), hashCode(), equ...
2021-03-26 11:27:12
163
转载 Java刷题复习(二)2021/3/26
Java回收机制 在java中,对象的内存在哪个时刻回收,取决于垃圾回收器何时运行。 一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法, 并且在下一次垃圾回收动作发生时,才会真正的回收对象占用的内存(《java 编程思想》) 在C++中,对象的内存在哪个时刻被回收,是可以确定的,在C++中,析构函数和资源的释放息息相关,能不能正确处理析构函数,关乎能否正确回收对象内存资源。 在java中,对象的内存在哪个时刻回收,取决于垃圾回收器何时运行,在java中,所有的对象.
2021-03-26 10:40:26
104
转载 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
243
转载 Java(三)2021/3/25
instanceof 用来在运行时指出对象是否是特定类的一个实例,instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 基本编程单元是类,基本存储单元 java的基本编程单元是类,基本存储单元是变量。 抽象方法定义 1. 首先,类的修饰符,都应该在class关键字之前,AB错; 2. 抽象方法不能有方法体,D错。 如果一个接口Cow有个方法drink(),有个类Calf实现接口Cow,则在类Calf中正...
2021-03-25 11:25:33
191
转载 Java复习(二)2021/3/25
重载和重写区别 重载: 1、 重载是在编译器通过方法中形参的静态类型确定调用方法版本的过程。 2、 重载是多态在编译期的表现形式 3、 重载的判定只有两个条件(其他的条件都不能作为判定): 1、 方法名一致 2、形参列表不同 重写: 1、重写在方法运行时,通过调用者的实际类型来确定调用的方法版本。(具体细说,就是子父类中的重写方法在对应的class文件常量池的位置相同,一旦子类没有重写,那么子类的实例就会沿着...
2021-03-25 11:00:28
158
转载 Java复习(一)2021/3/25
最终类 最终类就是被final修饰的类,最终方法就是被final修饰的方法。最终类不能被继承,最终方法不能被重写。 抽象类和最终类都可以被声明使用。 这里只是说“声明”,并没有说“实例化”;如果只是声明是可以的,最常见的使用方式就是: 1、父类类型的引用指向子类的对象; 2、接口类型的引用指向该接口的实现类的对象; 以上两种使用方式也就是所谓的“向上转型”。 判断:用户不能调用构造方法,只能通过new关键字自动调用。(X) 在类内部可以用户可以使用关键字this.构造方法...
2021-03-25 10:33:38
161
原创 Java复习(三)2021/3/24
HashMap组成 由数组+链表组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的 线程题 考察的run()方法作为普通方法的调用和通过线程start的启动调用的区别。对象.start()属于对线程的启动调用run()方法。 题目给出的example.run();是对象对普通方法的调用,所以由上到下依次执行输出:run main。 子类父类 在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合...
2021-03-24 11:34:48
139
转载 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
319
原创 Java面试复习(一)2021/3/24
计算机组成 计算机由硬件系统和软件系统组成,没有安装任何软件的计算机称为裸机。 所谓软件是指为方便使用计算机和提高使用效率而组织的程序以及用于开发、使用和维护的有关文档。 软件系统可分为系统软件和应用软件两大类。 属于HttpServletResponse接口完成的功能 设置HTTP头标 1 response.setHeader("Refresh","3");//三秒刷新页面一次 设置cookie 1 2 ...
2021-03-24 10:26:36
146
原创 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
165
原创 面试题 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
142
原创 JUC复习2021/3/23
JUC 是什么 Java 5.0 提供了 java.util.concurrent (简称 JUC )包 做了啥 增加并发编程中实用工具类 用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架 提供可调的、灵活的线程池 还提供了设计用于多线程上下文中的 Collection 实现等 内存可见性 1.是什么? 内存可见性(Memory Visibility)是指当某个线程正在使用对象状态而另一个线程在同时修改该状态 2.要怎么做 需要确保当一个线程修改了对象.
2021-03-23 20:36:31
227
1
原创 Java复习2021/3/23
运行异常 可以通过java虚拟机来自行处理。非运行异常,我们应该捕获或者抛出 This this的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为this(参数); Collection 和Collections java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。 java.util.C..
2021-03-23 10:56:27
350
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
144
原创 Java面试复习 2021/3/22
子类,方法方法同步 如果父类中的某个方法使用了synchronized关键字,而子类中也覆盖了这个方法, 默认情况下子类中的这个方法并不是同步的,必须显示的在子类的这个方法中加上synchronized关键字才可。 当然,也可以在子类中调用父类中相应的方法,这样虽然子类中的方法并不是同步的,但子类调用了父类中的同步方法,也就相当子类方法也同步了。 接口中的修饰的方法 接口中的方法默认都是public static final,这是JAVA8的规定。 构造函数只能被调用,不能被继承。 子类默..
2021-03-22 11:13:27
222
原创 Java面试 2021-3-21复习
JAVA的运算符 算数运算符、关系运算符、逻辑运算符、位运算符 算数运算符(9):+ - * / % ++ -- 关系运算符(6):== != > >= < <= 逻辑运算符(6):&& || ! ^ &(按位与) | 位运算符(7):& | ~ ^ >> << >>>; 注意: 实际含义不同: “||”:如果左边计算后的操作数为true,右边则...
2021-03-21 21:06:58
110
原创 Java面试 2021/3/20复习
1.File类对象代表:一个文件或一个文件目录。Java程序表示一个文件或目录,必须有个File对象。但有File对象不一定有真实的文件或目录存在。 2.File类不能进行对文件进行的输入和输出操作(使用IO流才行)。 3. ...
2021-03-21 19:51:13
93
原创 实现一种算法,找出单向链表中倒数第 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
393
原创 通过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
476
原创 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
1402
原创 Linux下如何查看JDK安装路径
1:echo $JAVA_HOME 定位到JDK安装路径 效果图如下: 2.which java 定位到java程序的执行路径。 效果图如下:
2020-11-25 09:01:45
230
原创 vim的相关指令
:w 保存编辑后的文件内容,但不退出vim编辑器。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中。 :w! 强制写文件,即强制覆盖原有文件。如果原有文件的访问权限不允许写入文件,例如,原有的文件为只读文件,则可使用这个命令强制写入。但是,这种命令用法仅当用户是文件的属主时才适用,而超级用户则不受此限制。 :wq 保存文件内容后退出vim编辑器。这个命令的作用是把内存缓冲区中的数...
2020-11-25 08:50:07
488
原创 剑指 Offer 10- I. 斐波那契数列
题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0,F(1)= 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 思路 递归中有很多重复计算。 利用动态规划,设定边界条件,通过转移方程进行递推。 本题...
2020-09-28 16:44:06
127
原创 9月24日总结 面试总结
摘抄知乎 Beritra的方法论 打好基础,技术不好啥都白搭 调整心态,面试其实很看运气,即使你再牛,也很难说百分百能面过某家公司 步步为营,先易后难,把小公司、不那么想去的公司放到前面练手 + 拿 offer 用来抬薪 及时复盘,总结经验,多多投递 ...
2020-09-24 22:38:32
112
原创 剑指 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
135
原创 剑指 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
111
原创 【收藏】怎么看辞职然后全职备考公务员?
总结一个答主“径舟“的答案。 第一,你不上班效率未必有多高。 因为时间少,所以精力要更集中。相反,如果你每天都在家,时间浪费的可能更多,效率未必很高,效果也未必很好 第二,公考需要一些运气。你复习的再好,公考上去都是有一定的运气的,所以我们认真的复习之后,往往需要参加两三次公考,才能有一次发挥出100%的水平,顺利上岸。这有点像是概率分布图,我们通过复习,能够提高自己水平的平均值,但真正分数还受发挥程度的影响。如果我们在职考试,能够通过多次参加考试来刷成绩;但如果离职,这么多的考试次数,你能接受得了吗
2020-09-20 22:06:11
239
原创 剑指 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
108
原创 剑指 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
114
原创 剑指 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
96
原创 剑指 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
118
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅