
面试题
Bonnie i
这个作者很懒,什么都没留下…
展开
-
LeetCode 941. 有效的山脉数组【easy】
题目描述:给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < ... A[i-1] < A[i]A[i] > A[i+1] > ... > A[A.length - 1]思路:双指针双指针,一个指向第一个元素,一原创 2020-11-03 19:48:40 · 164 阅读 · 0 评论 -
LeetCode 617. 合并二叉树【easy】
题目描述:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例:输入: Tree 1 Tree 2 1 2原创 2020-11-02 17:45:27 · 168 阅读 · 0 评论 -
LeetCode 461. 汉明距离【easy】
题目描述:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。思路:用位运算区分出不同的位统计不同位的个数那么如何区分出不同的位?这里肯定用的是位运算。位运算包括(与、或、非、异或)依次看一下位运算:与运算1 &原创 2020-11-02 17:41:14 · 231 阅读 · 0 评论 -
查看Linux系统日志-cat/less/more命令
1.看一下/var目录下存的什么Linux系统日志存放在 /var目录下,我们先来看一下这个目录都有什么所有服务的登文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读的邮件的默认存放地点为/var/spool/mail。2.主要看一下/var/logs目录我们来看一下/var/logs目录下都有什么3.以yum.log这个日志文件为例讲解一下cat/more/less/grep的使用可以看到最后一个文件是yum原创 2020-10-16 20:16:21 · 976 阅读 · 0 评论 -
HTTP/1.0和HTTP/1.1的区别
HTTP1.1 新改动1. 持久连接:2. 管线化理论3. 增加Host字段4. 支持断点传输⭐⭐⭐无论是HTTP1.0还是HTTP1.1都会出现队头阻塞的情况HTTP2.0的改动1.多路复用2. 二进制分帧3. 头部压缩4.服务器推送HTTP1.1 新改动持久连接请求管道化增加Host字段支持断点传输1. 持久连接:HTTP1.0最显著的特点是短连接,每次与服务器的交互都要重新开一个连接。而HTTP是基于TCP协议的,每次连接都要经历三次握手,四次挥手,慢启动…是非常消.原创 2020-10-15 21:59:06 · 403 阅读 · 0 评论 -
堆栈的区别
1. 物理地址堆的物理地址分配是不连续的,所以性能慢。在GC的时候也要考虑到不连续分配,所以有各种算法。比如,标记清除,复制,标记压缩,分代。栈的物理地址分配是连续的。所以性能快。2.内存大小堆因为是不连续的,所以分配的内存是在运行期确认的,因此大小不固定,堆的大小远大于栈的大小。栈是连续的,所以分配的内存大小在编译器就确定了,大小是固定的。3.存放内容堆存放的是对象的实例和数组。所以堆更关心的是数据的存储。栈存放的是局部变量,操作数栈,更关心程序方法的执行。4. 共享性栈是线程私有的原创 2020-10-13 13:22:10 · 533 阅读 · 0 评论 -
Java深拷贝和浅拷贝的区别
浅拷贝:只是增加了一个指针指向已存在的内存地址深拷贝:增加了一个指针并且申请了一块新的内存,使得增加的指针指向这个新的内存。在使用深拷贝的情况下,释放内存的时候不会释放同一块的内存的错误。...原创 2020-10-13 13:16:06 · 169 阅读 · 0 评论 -
Java有了GC为什么还会出现内存泄漏问题
Java有了GC为什么还会出现内存泄漏问题?1. 静态集合类泄漏静态集合类像HashMap,Vector等的使用最容易出现内存泄漏,静态变量的声明周期与应用程序一直,所有的对象Object也不能内释放,因为被其他对象引用着。2. 单例造成的泄漏单例对象在初始化后将在JVM的整个生命周期中存在(以静态变量的方式),如果单例对象持有外部的引用,那么这个对象将不能被JVM正常回收,导致内存泄漏。3.各种连接数据库连接,网络连接,IO连接等没有显式调用close()关闭,会导致内存泄漏。4.监听器的使原创 2020-10-13 12:57:55 · 2010 阅读 · 0 评论 -
【面试必考系列】进程间通信方式
一个进程的用户空间之间是相互独立的,但他们共享内核空间,所以进程间通信必须通过内核。1. 管道分为匿名管道,命名管道1.1 匿名管道也就是ps -ef | grep 3306 这种的,这个管道的作用是前一个输出作为下一个的输入,我们可以得出以下结论:管道的传输是单向的,如果想要相互通信,要建立两个管道。它是没有名字的,也叫匿名管道,用完就销毁。如何实现进程通信的:子进程拷贝了父进程的fd描述符,父子进程拥有相同的变量,只能实现单向通信。局限性:只能存在于父子进程之间1.2 命名管原创 2020-10-11 11:31:19 · 960 阅读 · 0 评论 -
多线程实现同步的实现方法
1. synchronized关键字在Java语言中,每个对象都有一个对象锁与之关联,该锁表明一个对象在任何时候只能被一个线程拥有,当一个线程调用对象的一段snychronized代码时,会首先获取对象的锁,然后去执行相应的代码,执行完毕后,释放锁。synchronized有两种用法(方法和代码块),还可用于静态方法,实例,类synchronized方法当一个方法体规模非常大时,使用同步方法会大大影响程序的执行效率,所以Java提供了同步块。synchronized块synchronized原创 2020-10-08 14:40:30 · 1110 阅读 · 0 评论 -
MyISAM和InnoDB的区别
1. 查看MySql数据库物理文件存放位置2. MyISAM存储引擎特点MySql默认是InnoDB引擎,这里创建一个表设置存储引擎为Myisma然后查看数据库表文件可以看到数据文件和索引文件是分开存储的,平均分布I/O,获得更快的速度。特点:不支持事务,不支持外键约束,但支持全文索引只支持表级锁定,虽然可以让锁实现的成本很小,但大大降低了并发性能。读写相互阻塞:读取的时候阻塞写入,写入的时候阻塞读取,但读取时不会阻塞其他读取。不缓存数据文件,只缓存索引文件。读取速度较快,占用资原创 2020-10-06 23:38:34 · 263 阅读 · 1 评论 -
用两个栈模拟一个队列的push和pop操作
思路:push操作:只需将元素放入S1即可pop操作:将S1的元素挨个出栈,放入S2中,将S2 的栈顶元素弹出,就是队列的出队操作。注意:如果S2不为空,直接弹出就好了public class leetcode_07 { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void原创 2020-10-02 15:38:08 · 324 阅读 · 0 评论 -
剑指offer 替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public static String replaceSpace(StringBuffer str) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < str.length(); i++) { char原创 2020-10-01 14:28:29 · 117 阅读 · 0 评论 -
SpringBoot项目前后端数据交互流程
面试被问到前后端数据如何交互的,以自己的项目为例,简单介绍一下。用户触发点击事件<div> <div> <input type="button" value="创作数量排行榜" onclick="creationRanking('content')"> <input type="button" value="诗词用词云图" onclick="cloudWorld('content')"> </d原创 2020-09-24 00:32:12 · 3811 阅读 · 0 评论 -
计算机网络面试题整理
计算机网络面试题整理1. OSI、TCP/IP、五层协议的体系结构?2. IP地址的分类3. TCP与UDP的区别?4. TCP如何实现数据的可靠性?4.1 校验和4.2. 序列号4.3. 确认应答4.4 超时重传4.5 连接管理4.6 流量控制4.7 拥塞控制5. TCP协议如何提高传输效率?5.1. 滑动窗口5.2. 那么如果出现了丢包,如何进行重传?这里分两种情况。5.3. 延迟应答5.4. 捎带应答6. 三次握手7、四次挥手8.在浏览器中输入一个www.baidu.com后执行的全部过程?8.1原创 2020-09-20 18:54:05 · 462 阅读 · 0 评论 -
【计算机网络】HTTP/HTTPS协议的区别
一、讲一下HTTP与HTTPS的区别HTTP和HTTPS的主要区别在于HTTP协议传递的是明文数据,而HTTPS传递的是加密过的数据,也就是说HTTPS更具有安全性。也正由HTTPS需要保证安全性,所以它的性能要比HTTP差一点。单说安全性肯定是不够的,我打算扩展讲一下 HTTPS是怎么解决安全性问题的,通过这些HTTP没有机制,反映出HTTPS与HTTP的区别。下面尝试把 HTTPS加密的过程推导出来。推导过程不涉及复杂的实现细节:如何安全地进行数据传输?假设现在A和B要进行安全的通信,那么究竟怎样原创 2020-08-04 23:10:40 · 253 阅读 · 0 评论