![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试&笔试
文章平均质量分 63
相由心生fhy
这个作者很懒,什么都没留下…
展开
-
JVM的内存区域划分
本文转自:https://www.cnblogs.com/dolphin0520/p/3613043.html JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,...转载 2018-08-27 11:06:54 · 160 阅读 · 0 评论 -
某找房网 笔试题(二)
一、题目说明:傻傻的搏斗小智和小春两个游戏菜鸟要进行电竞搏斗,小智有X点HP,每次攻击便使对方丢失A点生命值,每次攻击完后需要冷却C秒,小春有Y点HP,每次攻击会使对方丢失B点生命值,每次攻击完后需要冷却D秒。玩家HP小于等于0时便死亡,若小智最终存活,则输出XIAOZHI,若小春最终存活,则输出XIAOCHUN。若两者一起死亡,则输出TIE。二、样例输入 41 2 3 ...原创 2018-10-17 20:04:57 · 256 阅读 · 0 评论 -
动态代理两种实现方式:jdk动态代理和cglib动态代理
废话不多说,直接上代码!1、首先是接口及其实现方法:package proxy.test;public interface UserService { public String getName(int id); public Integer getAge(int id);}package proxy.test;public class UserServiceImpl...原创 2018-10-31 14:36:59 · 316 阅读 · 0 评论 -
java是编译型还是解释型语言
Java这个语言很非凡!一、你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 二、你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。 三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。...转载 2018-11-11 16:32:01 · 11657 阅读 · 2 评论 -
为什么CMS两次标记时要 stop the world(阿里面试)
1、CMS及其执行过程? CMS,全称Concurrent Mark and Sweep,用于对年老代进行回收,目标是尽量减少应用的暂停时间,减少full gc发生的机率,利用和应用程序线程并发的垃圾回收线程来标记清除年老代。CMS并非没有暂停,而是用两次短暂停来替代串行标记整理算法的长暂停。 内外的设置正常收集周期是这样的: 1)CMS-init...原创 2018-11-11 18:19:05 · 18078 阅读 · 10 评论 -
leetcode 腾讯笔试面试题之链表题目总结(持续更新。。。)
一、合并两个有序链表(简单)将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4 1)java代码非递归实现(9ms 战胜96.25%):/** * Definition for singl...原创 2018-12-01 10:33:49 · 565 阅读 · 0 评论 -
深入理解TCP/IP协议栈
本文转自 一像素TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系本身就很复杂庞大,入门门槛高,因此很难搞清楚TCP/...转载 2019-01-06 16:59:52 · 1014 阅读 · 7 评论 -
MySQL的两种存储引擎:InnoDB和MyISAM比较总结
MySQL的两种存储引擎:InnoDB和MyISAM比较总结本文转自MySQL两种存储引擎: MyISAM和InnoDB 简单总结MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展...转载 2019-02-24 10:43:05 · 234 阅读 · 0 评论 -
剑指offer面试题之:打印从1到最大的n位数 (2种方法实现)
题目:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1、2、3一直到最大的3位数999注意:该题需要考虑大数问题,n的范围没有规定,可以很大,所以不能用int 或 long long类型来存储概数。我们用数组存储(int[] numbers = new int[number+1])方法一:在数组上模拟数字加法代码实现:/** * C...原创 2019-03-21 09:50:36 · 268 阅读 · 0 评论 -
网易笔试题之:输入正整数n和k,n>=k,找出[1,n]范围内按照字典排序的最小第k个值。
题目:输入正整数n和k,n>=k,找出[1,n]范围内按照字典排序的最小第k个值。输入两个正整数n,k输出一个整数数实例:输入:15,3输出:11题目分析:1、首先,本题作为一个在线笔试题,有一个非常重要的问题是关注题目要求的输入输出格式。输入:15,3 在用例测试时,需要测试很多用例,所以要使用循环接收键盘输入的格式:while(scan.hasN...原创 2019-03-17 21:31:06 · 2163 阅读 · 0 评论 -
动态规划问题:47 礼物的最大价值; 48 最长不含重复字符的子字符串
本文总结《剑指offer》中使用动态规划思路高效率解决问题的几个典型题目:1、面试题47 礼物的最大价值思路:首先,最简单的思路是使用递归逐步计算,但这样存在大量重复计算,该方法舍弃!其次,我们想到构造一个辅助二维数组,数组中坐标为(i,j)的元素表示到达坐标为(i,j)的格子时能拿到的礼物价值总和的最大值。仔细想一下,其实在二维数组中存储的很多元素是我们并不需要的。比如坐标(i,j...原创 2019-04-15 11:30:27 · 187 阅读 · 0 评论 -
递归和非递归实现 先序、中序、后序遍历二叉树
递归和非递归实现 先序、中序、后序遍历二叉树先序、中序、后序遍历二叉树是一个基础又非常重要的知识点,频繁出现在《剑指offer》面试题中,很多题目都是二叉树遍历的变形。所以在本文章中,我总结了用递归和非递归的方法分别实现对二叉树的先序、中序和后序遍历。递归实现三种遍历先序遍历package algorithm.tree;/** * * @author FHY * ...原创 2019-05-10 10:39:19 · 480 阅读 · 0 评论 -
手撕排序算法(java实现)
本文总结了频繁出现在面试题中的排序算法,并提供了java和python两种语言实现,作为自己复习的总结,也希望对其他找工作的朋友们有所帮助。一、快速排序: 快速排序通常情况下,是用于排序的最佳的实用选择。这是因为其平均性能相当好:期望的运行时间为O(nlogn),且O(nlogn)记号中隐藏的常数因子很小。另外,它还能够进行就地排序,在虚存环境中也能很好地工作。接下来我们便来...原创 2019-06-06 22:29:10 · 1021 阅读 · 0 评论 -
面试题之——写一个多线程安全的单例模式
针对面试题中频频出现的问题:写一个多线程安全的单例模式。在此做一个记录。很多博客列举了多种线程安全单利模式的例子,写的很棒,推荐给大家看:https://www.cnblogs.com/jiuyi/p/6105037.html我这里只提供最优的一种写法(多线程环境下懒汉式单例模式实现),需要详细看的请到我推荐的博客中学习。package test;/** * @time 2...原创 2019-07-19 21:56:47 · 1386 阅读 · 1 评论 -
某找房网 笔试题(一)
一、题目描述: 给你一个合法的算术表达式,只包含整数和加号,减号。但整数不一定都是十进制的数,可能是八进制,十六进制,规定包含前缀0x的是十六进制,包含前缀0的是八进制,其他情况是十进制。现在你能计算出这个式子的最终的值吗?说明:输入的表达式式子只会是整数+(-) 整数 +(-) 整数...... + (-)整数 保证给定的整数不会超过16位(保罗前缀0或者前...原创 2018-10-17 17:32:19 · 192 阅读 · 0 评论 -
贪心算法典型应用之——以最小前进次数到达数组最后一个位置
1、题目说明:输入一个所有元素都是自然数的数组,初始状态你的位置位于第1个元素,每个元素的位置表示1步,当前所在位置的元素数值表示你下一次前进能够移动的最大步数,你的目标是以最小的前进次数从数组的第一个元素移动到数组的最后一个元素位置,你需要输出每次前进的步数。2、举例:输入 : 2 3 1 1 4输出 : 1 3 3、思路分析:首先,我们通过分析题意,可以看出该...原创 2018-10-10 15:29:58 · 1818 阅读 · 2 评论 -
经典数据结构 :B树和B+树详细解析
本文转自:https://www.cnblogs.com/vincently/p/4526560.html维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。与自平衡二叉查找树不同,B-树为系统最优...转载 2018-10-09 08:28:43 · 33879 阅读 · 2 评论 -
笔试算法题总结
题目:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。思路分析:# 奇数分类到低位,偶数分类到高位# 从低位开始检查,如果是奇数就继续,直到遇到偶数停止;然后开始从高位开始检查,如果是偶数就继续,直到遇到奇数位置;# 一轮检查完成后交换高位和低位停止的元素,然后进行下一轮检查,以此类推,直到高位和低位的差值为1时认为检查分类完成,退出。python 代码实现...原创 2018-08-29 15:22:05 · 280 阅读 · 0 评论 -
笔试题:写出 字符abc 的全排列(不重复)和所有组合
1、问题一:给定一个字符串,满足正则表达式[a-zA-Z]+,打印 这个字符串的全排列,结果顺序不限。例如,输入为abc,输出为:abc acb bac bca cba cab递归解法一:import java.util.ArrayList;import java.util.List; public class LetterCombination { public s...原创 2018-08-29 16:25:22 · 5117 阅读 · 0 评论 -
Hashtable、HashMap和TreeMap面试总结(持续更新......)
三者均实现了Map接口,存储的内容是基于key-value的键值对映射,一个映射不能有重复的键,一个键最多只能映射一个值。1、元素特性HashTable中的key、value都不能为null;HashMap中的key、value可以为null,很显然只能有一个key为null的键值对,但是允许有多个值为null的键值对;TreeMap中当未实现Comparator 接口时,key...原创 2018-08-30 10:02:18 · 756 阅读 · 0 评论 -
ArrayList和LinkedList各自实现和区别
之前做项目经常会用到集合,对于ArrayList和LinkedList的使用,也没有做过多的思考,现在开始看java集合的源码,发现ArrayList和LinkedList两者之间的区别还是很大的。这里根据自己看的集合源码和大神的博客分享对两者的实现和区别进行总结:1、java集合源码分析(推荐给看源码很吃力的朋友们): https://www.cnblogs.com/skywang12345...转载 2018-09-05 10:21:53 · 452 阅读 · 0 评论 -
素材链接积累,持续更新~~~
1、非常详细的SVN使用教程总结:armyfai博客包括SVN服务器搭建、TortoiseSVN客户端搭建及SVN代码提交、更新、解决冲突的基本操作。给力!2、使用maven仓库开发系统,阿里云私服下载jar包失败,可以到 MVNRepository 查找自己需要的jar包,放到相应目录下即可。其实阿里云的私服最终也是到该网站去下载jar包,我们这样操作相当于不用阿里云给我们下载...原创 2018-08-04 21:08:23 · 367 阅读 · 0 评论 -
54. 螺旋矩阵 leetcode
先来看题:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11...原创 2018-09-17 20:22:05 · 157 阅读 · 0 评论 -
两个排序数组的中位数——按照求第K小的思路实现
两个排序数组的中位数给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 = ...原创 2018-09-07 15:10:11 · 4111 阅读 · 3 评论 -
笔试题之——栈问题(列车车厢编组问题)
滴!又是一个笔试题总结!1、题目说明:铁路货车编组站如图显示,A点有K节车厢,所有车厢都须从A点进入,经C点道岔后,重新编组到B点。如:A点有车厢1-2-3(左—右),经C编组,到B点后,可以被编组成1-2-3,1-3-2,2-1-3,2-3-1,3-2-1等几种可能的编组。问:A有车厢编组(左—右)1-2-3-4,列车在经过编组后,能否在B点编组成4-1-3-2的顺序,请给...原创 2018-10-11 09:00:56 · 3462 阅读 · 0 评论 -
java 新生代Eden与两个Survivor区的解释
原文链接:聊聊JVM的年轻代最近在学习《深入理解java虚拟机》,在垃圾收集器这一部分对于Eden和Surviror不太清晰,发现一篇讲的很棒的博客,分享给大家,一起学习一下! 1.为什么会有年轻代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找...转载 2018-10-12 11:22:51 · 2420 阅读 · 0 评论 -
【转载】堆和栈的区别,很全的总结
本文转载自:https://blog.csdn.net/pt666/article/details/70876410/在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一...转载 2018-09-28 17:10:53 · 4842 阅读 · 1 评论 -
面试题之——乐观锁和悲观锁区别
对于乐观锁和悲观锁的区别及应用,要牢记一句话:读取频繁使用乐观锁,写入频繁使用悲观锁本文转自:https://blog.csdn.net/L_BestCoder/article/details/79298417一、乐观锁(Optimistic Lock)总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没...转载 2018-10-13 17:29:10 · 10177 阅读 · 1 评论 -
动态规划解最长上升子序列(全)
1、动态规划问题导览:最长上升子序列(longest increasing subsequence)问题,也可以叫最长非降序子序列,简称LIS。是动态规划算法的一个经典应用。 我们都知道,动态规划的一个特点就是当前解可以由上一个阶段的解推出, 由此,把我们要求的问题简化成一个更小的子问题。子问题具有相同的求解方式,只不过是规模小了而已。最长上升子序列就符合这一特性。我们要求n个数的最长上...原创 2018-10-08 18:31:25 · 5224 阅读 · 0 评论 -
leetcode 70. 爬楼梯问题(多种方法总结)
爬楼梯问题有多种出现形式,有不固定最多可跨阶数(即最多可跨阶数为M,M作为方法参数)的,有固定每次最多可跨2阶的。接下来,我就对以上两种出线形势分别进行分析。(一)固定每次最多跨越2阶,使用非递归方式实现:1、问题描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。...原创 2018-10-08 21:14:25 · 4494 阅读 · 0 评论