面试题
小菜猫
今天也要开心呀
展开
-
单例模式及其多种实现
说到单例模式,大家都很熟悉,这好像是最简单的一个最简单也是容易被问的一个设计模式。以下是几种实现单例模式的方式,一个单例模式肯定有一个私有的构造方法。(1)饿汉式public class SingletonObject1 { private SingletonObject1(){ } private static SingletonObject1 singletonInstance=new SingletonObject1();原创 2020-12-07 22:00:55 · 211 阅读 · 0 评论 -
线程二三事及Thread详解
目录线程与进程创建线程的几种方式继承Thread类实现Runnable接口最简单的卖票程序前面两种方法的区别run()方法和start()方法的区别线程的生命周期ThreadThread构造方法Thread其他常用方法线程实现生产者和消费者模式Synchronized关键字wait()和Sleep的区别如何在线程里面抛出运行时异常线程与进程 谈到线程,就不得不说一下进程,即使在面试的时候,也常会被问,进程与线程有什么区别呀,什么是进程什么是线程呀。 进程:进程是一个在内存中运行的应用程序。每个进程都有原创 2020-12-06 22:09:25 · 362 阅读 · 0 评论 -
LeetCode 406----根据身高重建队列
假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4],[4,1][7,1], [5,0], [6,1], [5,2]]输出:[[5,0],[4,1] [7,0], [5,2], [4,4], [6,1], [7,1]] 解题思路:对于这道题,一看就会觉得是插入,但是要怎么个插入法呢?就拿...原创 2020-11-16 22:45:19 · 120 阅读 · 0 评论 -
LeetCode 1122题----数组的相对排序
给你两个数组,arr1 和arr2,arr2中的元素各不相同arr2 中的每个元素都出现在arr1中对 arr1中的元素进行排序,使 arr1 中项的相对顺序和arr2中的相对顺序相同。未在arr2中出现过的元素需要按照升序放在arr1的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]提示:arr1.length, arr2.len...原创 2020-11-14 16:35:28 · 557 阅读 · 0 评论 -
LeetCode 32题---- 最长有效括号
给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()" 一看这个题目,最值,典型的dp,这题真的是花了我一个多小时,刷题都快刷哭了,昨天刚刚建立起来的觉得自己dp可的自信心又被摧毁的体无完肤,哎,还是要记录一下自己的解题历程。 对一道dp问题的求解可以分为四步:确定状态:...原创 2020-11-12 22:26:23 · 96 阅读 · 0 评论 -
LeetCode 922----按奇偶排序数组 II
给定一个非负整数数组A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当A[i] 为奇数时,i也是奇数;当A[i]为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。提示:2 <= A.length <= 20000A.length % 2 == 00 <= A[i] <=...原创 2020-11-12 20:22:32 · 132 阅读 · 0 评论 -
Volatile关键字的一二三
写这个博客来源于一次面试,其实对于Volitail关键字面试大家应该是都是有准备的,什么保证了可见性呀,不能保证原子性呀,但是上次面试官问“Volitail关键字为什么可以保证可见性呢?”,一时语塞,就挂了,背的对Volitail还不够熟悉。参考博客https://www.cnblogs.com/dolphin0520/p/3920373.html因为Volitail关键字涉及到了JMM(JAVA内存模型),所以在此之前,要先了解JMM。以下是整篇文章的目录: 一:内存...转载 2020-11-10 23:22:03 · 132 阅读 · 0 评论 -
JVM面试基础及常见面试题
参考博文及书籍:1 深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)2JVM内存模型和面试题解析写的所有面试题均来自与以前面试的经验、网络上说的可能会出现的面试题。想整理起来留着下次面试用,对于不对的,请多多指正1 JDK、JRE和JVM是什么关系(JDK包含JRE,而JRE包 含JVM)JDK:JRE:JVM:1 JVM内存结构2 OOM3 类加载过程4 对象创建过程5 对象的内存布局6 。。。。。...原创 2020-11-07 22:49:44 · 945 阅读 · 0 评论 -
MySQL面试题全集
这篇文章源自于对秋招面试点的复习,在阿里数据大佬的提点下,总结MySQL的面试知识点主要有以下几点,以后要是想到还会不定时更新,其中知识大部分来自于书本、视频和优秀博客的总结(文章超长预警)。1 事务事务:事务是访问和更新数据库的程序执行的一个逻辑单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务。 事务的特性(ACID):原子性(Automicity):即整个事务是最小的一个执行单元,不可再分。事务的操作要么完成,...原创 2020-06-26 16:59:20 · 7240 阅读 · 4 评论 -
深克隆和浅克隆
浅克隆:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。深克隆:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。总之深浅克隆都会在堆中新分配一块区域,区别在于对象属性引用的对象是否需要进行克隆(递归性的)。请看以下代码:public class Address { private String...原创 2019-09-14 11:56:22 · 323 阅读 · 0 评论 -
Java解决有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
面试的时候碰到这道题,后来百度了一下感觉答案不对,而且也比较缺少java版本。就自己写了下。题目描述:有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3的人退出圈子。问问第k个退出的人 的编号解题思路: 1)若k大于人的个数,肯定是没有返回值的,我们把这个返回值定为-1; 2)可以考虑用一个...原创 2019-08-20 17:25:46 · 12660 阅读 · 1 评论