什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 参考答案 Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。...Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。...你能给出不同数据结构的例子么? 参考答案 大O符号描述了当数据结构里面的元素增加的时候,算法的规模或者是性能在最坏的场景下有多么好。 大O符号也可用来描述其他的行为,比如:内存消耗。...因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理。 什么是分布式垃圾回收(DGC)?它是如何工作的?...因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理。
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,由一组用Java语言编写的类和接口组成。...JDBC驱动提供了特定厂商对JDBCAPI接口类的实现,驱动必须要提供java.sql包下面这些类的实现:Connection,Statement,PreparedStatement,CallableStatement...RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力,是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一...Java远程方法调用(Java RMI)是一种执行远程过程调用(RPC)的面向对象的Java API,支持直接传输序列化的Java类和分布式垃圾收集。...完 程序员面试】是IT求职神器,提供海量C++、JAVA、前端等职业笔试题库,在线进行一线互联网名企笔试面试模拟考试练习,天天刷题,和牛人一起讨论经典试题,全面提升你的编程能力,海量高薪职位信息等着你!
面试常考算法之区间问题 区间问题在面试及笔试中经常遇到,今天总结两个常见问题,那就是区间的并与交操作。...合并简单呀,我们把区间想象成计算机组成原理上面的pipeline就行了,一段段区间,只要这个区间按照第一个元素(区间开始,记作first)排序,那么区间合并只需要关注已经合并区间的最后一个区间的last...(第二个元素)与新区间的first(第一个元素)。...auto& last = ans.back(); // 新区间的第一个元素与最后一个区间的第二个元素比较 if (intervals...算法思路:我们需要区分有交集与没有交集情况。 现有如下两个区间求交集。
设计模式——Singleton(单例模式) (1)定义:在程序运行期间,确保类的实例只有一个,并且提供了一个公共的入口点。实现的思路就是将构造函数私有,并且提供一个全局静态的方法返回一个实例。...(2)应用场景: 多线程中的线程池、应用程序的日志对象、数据库的连接池、应用的配置对象、缓存等常常被设计成单例。...又如Spring事务处理时需要一个抽象的产品“事务管理器”——PlatformTransactionManager,实际配置的则是具体的事务管理,如HibernateTransactionManager...当然Spring本身的功能非常复杂,用到的远远不仅是简单工厂一个模式。...(2)应用场景: 拦截器、AOP和ORM的懒加载等地方都使用了代理模式。
AIO (Asynchronous I/O) 参考 BIO,NIO,AIO 总结 Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。...程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。...在 Java 虚拟机中,线程是宝贵的资源,线程的创建和销毁成本很高,除此之外,线程的切换成本也是很高的。...NIO (New I/O) 2.1 NIO 简介 NIO是一种同步非阻塞的I/O模型,在Java 1.4 中引入了NIO框架,对应 java.nio 包,提供了 Channel , Selector,Buffer...在 Java 7 中引入了 NIO 的改进版 NIO 2,它是异步非阻塞的IO模型。
两种通用的遍历树的策略 DFS(深度优先遍历):先序遍历,中序遍历,后序遍历; BFS(广度优先遍历):层序遍历 深度优先遍历(DFS) 这种方法以深度 depth 优先为策略,从根节点开始一直遍历到某个叶子节点...根据根节点,左孩子节点和右孩子节点的访问顺序又可以将 DFS 细分为先序遍历 preorder,中序遍历 inorder 和后序遍历 postorder。...下图中按照不同的方法遍历对应子树,得到的遍历顺序都是 1-2-3-4-5。根据不同子树结构比较不同遍历方法的特点。 ?...= new TreeNode(postorder[postorder.length - 1]); // 在中序遍历中找到 根节点的位置 let i = inorder.indexOf(...,如果还不懂,建议再看一遍,或者自己去看leetcode相关的官方题解。
链表 链表存储有序的元素集合,但不同于数组,链表中每个元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的节点(也称为指针或链接)组成,下图展示了一个链表的结构。 ?...链表 由于不必须按顺序存储,链表在插入的时候可以达到 O(1) 的复杂度,但是查找一个节点或者访问特定编号的节点则需要 O(n)的时间....链表的中间结点[3] 面试题 02.02. 返回倒数第 k 个节点[4] 面试题52. 两个链表的第一个公共节点[5] 1....我们使用两个指针 node1,node2 分别指向两个链表 headA,headB 的头结点,然后同时分别逐结点遍历,当 node1 到达链表 headA 的末尾时,重新定位到链表 headB 的头结点...;当 node2 到达链表 headB 的末尾时,重新定位到链表 headA 的头结点。
认识线程池 关于“池”的概念,我们接触过字符串常量池,数据库连接池,它们都被用作共享和缓存资源,通俗的将就是使用的时候直接从池子里拿,线程池也一样,在初始化的时候,就创建一定数量元素,后面需要使用线程就直接从线程池中取...(): 让调用的线程来处理 DiscardOldestPolicy(): 丢弃时间最久的任务(先进先出) DiscardPolicy(): 丢弃新来的任务 ️实现代码: import java.util.concurrent.ArrayBlockingQueue...; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; //使用原生api来创建...线程池的模拟实现 前提说明: 这里阻塞队列的实现采用链表的方式阻塞 我们要求线程池创建的时候,就创建线程不停的从队列中取任务来执行 这里创建5个员工 ️代码实现: import java.util.concurrent.BlockingDeque...; import java.util.concurrent.LinkedBlockingDeque; public class MyThreadPool { private BlockingDeque
排序算法(数组) 排序算法可能是最基础、最适合算法入门的经典算法,在面试中经常会问到排序算法及其相关的问题。有时会要求现场手写基本的排序算法。...二分查找(数组) 除了排序算法,二分查找也是算法中的基础经典面试题。它是一种查找算法,适用于在已经排好序的数组中找到一个特定的值。...在上图中,遍历过程将是:第一次遍历(节点 1、2、5、9) 第二次遍历(3、6、10)、第三次遍历(7)、第四次遍历(4、8) 深度优先遍历有递归和非递归两种方式,此处给出递归的 java 代码示例:...狄克斯特拉算法(图) 狄克斯特拉(Dijkstra)算法是非常著名的算法,是改变世界的十大算法之一,是典型最短路径算法,计算一个起始节点到路径中其他所有节点的最短路径的算法和思想。...当数据的总量达到上限后,则移除容器中优先级最低的数据。 在 java 中可以直接根据 JDK 给我们提供的 LinkedHashMap 直接实现 LRU。
图解算法数据结构,是 Krahets 同学在 LeetCode 平台上发布的一本小书,可免费在线阅读。 [tujie.png] 让我们打开这本书,页面左侧是目录,右侧是详细的内容。...在书的开头就给大家列举了面试常考的算法题对应的算法和数据结构,大家可以选择自己要学的知识点挑选题目练习。...[在线阅读] 这本书面向算法初学者和求职者设计,列举了面试常考的剑指 Offer 系列题解,并且分了多个专题讲解,比如常见的数据结构:数组、栈、队列、字符串、链表、树,还有常见的算法:动态规划、回溯算法...旨在帮助读者全面地学习算法与数据结构的核心知识。 [分类专题] 阅读这本小书的时候,建议大家先自己试着做一下题目,借助 LeetCode 平台提供的能力,可以直接在线练习。...[图解算法] 还提供了多种编程语言的解题代码: [image-20210521235656487.png] 小书的质量也非常高,很多道题目都提供了多种解法,帮助读者开拓思路,加深对题目的理解。
3. ls命令 (查看文件与目录的命令,list之意) ls 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 列出全部文件,包含隐藏文件 ls -R 连同子目录的内容一起列出(递归列出...它是一个非常危险的参数 二、查看文件内容 7. cat命令 (用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用) cat file1 从第一个字节开始正向查看文件的内容...sed '/^$/d' example.txt 从example.txt文件中删除所有空白行(搜索公众号:Java开发宝典,回复“面试题”,送你一份Java面试题宝典) 13. paste 命令 paste...八、进程相关的命令 17 jps命令 (显示当前系统的java进程情况,及其id号) jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有...java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。
返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 2. pwd命令 pwd 显示工作路径 3. ls命令 (查看文件与目录的命令,list之意)...ls 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 列出全部文件,包含隐藏文件 ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来 ls [0-...sed '/^$/d' example.txt 从example.txt文件中删除所有空白行(搜索公众号:Java开发宝典,回复“面试题”,送你一份Java面试题宝典) 13. paste 命令 paste...17 jps命令 (显示当前系统的java进程情况,及其id号) jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java...进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。
实际上在面试过程中,懂这些算法的基本思想和大概流程是远远不够的,那些面试官往往问的都是一些公司内部业务中的课题,往往要求你不仅要懂得这些算法的理论过程,而且要非常熟悉怎样使用它,什么场合用它,算法的优缺点...一个较好的K值可通过各种启发式技术来获取,比如,交叉验证。另外噪声和非相关性特征向量的存在会使K近邻算法的准确性减小。 近邻算法具有较强的一致性结果。...k-means算法的优点: (1)k-means算法是解决聚类问题的一种经典算法,算法简单、快速。 ...(2)对处理大数据集,该算法是相对可伸缩的和高效率的,因为它的复杂度大约是O(nkt),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。通常k<<n。这个算法通常局部收敛。 ...),它是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的输出结果累加起来就是最终答案。
它无法验证发送者和接受者的身份; 常见的对称加密算法有: DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES 非对称加密 与对称加密算法不同,非对称加密算法需要使用两个秘钥...因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。...摘要算法(Hash算法) Hash算法特别的地方在于它是一种单向算法,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。...其实我们可以把Hash算法理解成一种特殊的压缩算法,它能够把任意长度的数据压缩成一种固定长度的字符串,这就好像是给数据加了一把锁。...常见的摘要算法有: MD2、MD4、MD5、HAVAL、SHA 有人可能会对MD5产生疑惑,因为网上有些网站中可以将MD5加密后的密码还原,其实,这是因为MD5这种加密算法用的比较多,一些网站就把一些常用的
3. ls命令 查看文件与目录的命令,list之意) ls 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 列出全部文件,包含隐藏文件 ls -R 连同子目录的内容一起列出(...将文件的特性一起复制 -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份 -i :若目标文件已经存在时,在覆盖时会先询问操作的进行 -r :递归持续复制,用于目录的复制行为 -u...取出两个文件的并集(重复的行只保留一份) sort file1 file2 | uniq -u 删除交集,留下其他的行 sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件...17. jps命令 (显示当前系统的java进程情况,及其id号) jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java...进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。
别人的思维你是无法拷贝的,形成之前不具备的思维,刻入骨髓,需要天长日久的思维训练。 leetcode有多重要,无需多言,刷过leetcode的小伙伴,都有以上这些体会。...亮出一个高逼格的理由,它们会让你coding的思维,更上一层楼。 平常人进阶就得,多思考,多动手,多总结。我也顺手再检测一下,链表反转,我们走起。...此时,原链表头自然指向了第二个节点prehead(如果存在的话),同时,我们标记其后的节点为tmp,因为接下来我们要破坏prehead的next域,叫它指向我们反转后的新链表头curhead, 所以标记...tmp是再自然不过的了。...作为迭代,此时我们的prehead就要指向一开始我们标记的tmp了,至此一轮迭代,完美就绪。 ? 明白以上过程,迭代版本的代码1分钟写出来,就不是问题。
Vue Router 路由守卫 导图目录 路由守卫分类 全局路由守卫 单个路由守卫 组件路由守卫 路由守卫执行的完整过程 路由守卫分类 全局路由 单个路由独享 组件内部路由 每个路由守卫的钩子函数都有...3 个参数: to : 进入的目标路由from : 离开的路由next : 控制路由 在跳转时进行的操作,一定要执行。...next('/') : 根据你路由跳转判断条件来进入对应的路由, / 为路由的 path 。...执行 全局的 beforeResolve 守卫 。...执行 全局的 afterEach 钩子 beforeCreate created beforeMount mounted 执行 beforeRouteEnter的next的回调 ,创建好的组件实例会作为回调函数的参数传入
在面试中,你可能会遇到多种Top-K问题的变体,这些问题要求你设计一个高效的算法来解决它们。 ️常见的Top-K问题类型 ☁️寻找Top-K最大元素 这是最常见的Top-K问题之一。...☁️寻找第K大的元素 这个问题要求你找到数据集中第K大的元素,而不需要找到所有的Top-K元素。解决这个问题通常需要使用快速选择(QuickSelect)算法,这是一种基于快速排序的算法。...这是一个高效的算法,类似于快速排序,但只关心一个子数组。 ☁️哈希表 对于寻找出现次数Top-K的元素,你可以使用哈希表来统计元素的出现次数,并使用优先队列来找到最频繁出现的元素。 ️...选择适当的数据结构:选择合适的数据结构通常是解决Top-K问题的关键。最小堆、哈希表和快速选择等数据结构和算法在不同情况下可能更有效。...了解你的算法的性能特征可以帮助你回答面试官的问题。 练习编码:在解决Top-K问题之前,建议练习编码和测试你的算法。这将有助于你在面试中更自信地表现自己。 ️
3. ls命令 ( 查看文件与目录的命令,list之意) ls 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 列出全部文件,包含隐藏文件 ls -R 连同子目录的内容一起列出...:将文件的特性一起复制 -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份 -i :若目标文件已经存在时,在覆盖时会先询问操作的进行 -r :递归持续复制,用于目录的复制行为 -u...取出两个文件的并集(重复的行只保留一份) sort file1 file2 | uniq -u 删除交集,留下其他的行 sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件...八、进程相关的命令 17 jps命令 (显示当前系统的java进程情况,及其id号) jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有...java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。
领取专属 10元无门槛券
手把手带您无忧上云