笔试/面试/考证
文章平均质量分 76
专注于技术的笔试、面试以及考证相关专题分享
FeelTouch Labs
这个作者很懒,什么都没留下…
展开
-
Apollo核心原理之眼前一亮
DeferredResult.setResult原创 2024-04-22 19:27:04 · 629 阅读 · 1 评论 -
Java SPI机制分析
SPI全称为(Service Provider Interface) ,是JDK内置的一种服务提供发现机制;主要被框架的开发人员使用,比如java.sql.Driver接口,数据库厂商实现此接口即可,当然要想让系统知道具体实现类的存在,还需要使用固定的存放规则,需要在classpath下的META-INF/services/目录里创建一个以服务接口命名的文件,这个文件里的内容就是这个接口的具体的实现类;下面以JDBC为实例来进行具体的分析。原创 2023-10-16 17:15:47 · 137 阅读 · 0 评论 -
面试必问的 MySQL,你懂了吗?
如果一个 extent 中的被顺序读取的 page 超过或者等于该参数变量时,Innodb将会异步的将下一个 extent 读取到 buffer pool中,innodb_read_ahead_threshold 可以设置为0-64(一个 extend 上限就是64页)的任何值,默认值为56,值越高,访问模式检查越严格。具体的,InnoDB 会监控对表上索引的查找,如果观察到某些索引被频繁访问,索引成为热数据,建立哈希索引可以带来速度的提升,则建立哈希索引,所以称之为自适应(adaptive)的。转载 2023-10-13 00:59:43 · 64 阅读 · 0 评论 -
ThreadLocal详解
这个类提供了线程局部变量。从上面源码可以看出,ThreadLocalMap使用ThreadLocal的弱引用作为Entry的key,如果一个ThreadLocal没有外部强引用来引用它,下一次系统GC时,这个ThreadLocal必然会被回收,这样一来,ThreadLocalMap中就会出现key为null的Entry,就没有办法访问这些key为null的Entry的value。ThreadLocal的作用是提供线程内的局部变量,这种变量在多线程环境下访问时能够保证各个线程里变量的独立性。原创 2023-10-12 19:36:02 · 164 阅读 · 0 评论 -
Java8利用@Contended避免volatile字段的伪共享
Java8引入了@Contented这个新的注解来减少伪共享(False Sharing)的发生。本文介绍了@Contented注解并解释了为什么False Sharing是如何影响性能的。缓存行CPU读取内存数据时并非一次只读一个字节,而是会读一段64字节长度的连续的内存块(chunks of memory),这些块我们称之为缓存行(Cache line)。假设你有两个线程(Thread1和Thread2)都会修改同一个volatile变量x: 1 .转载 2021-04-16 11:56:14 · 590 阅读 · 0 评论 -
Mysql中的笔试和面试---数据库设计规范化的五个要求
一:表中应该避免可为空的列;二:表不应该有重复的值或者列;三:表中记录应该有一个唯一的标识符 在数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来 唯一的标识行记录,而不要通过名字、编号等字段来对纪录进行区分。每个表都应该有一个ID列,任何两个记录都不可以共享同一个ID值。另外,这个ID值最 好有数据库来进行自动管理,而不要把这个任务给前台应用程序。否则的原创 2015-06-08 21:31:55 · 852 阅读 · 0 评论 -
Elasticsearch中的笔试和面试---24道进阶必备Elasticsearch面试真题
大家好~新年手打系列第三弹来了!今天分享的是Elasticsearch 的面试题,那么话不多说,下面直接进入正题:Elasticsearch 面试题1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。面试官:想了解应聘者之前公司接触的 ES 使用场景、规模,有没有做过比较大规模的索引设计、规划、调优。解答:如实结合自己的实践场景回答即可。比如:ES 集群架构 13 个节点,索引根据通道不同共 20+索引.转载 2020-06-14 17:42:46 · 1212 阅读 · 0 评论 -
Java进阶到专家必须精进的10000个知识原理
1.堆外内存是如何回收的?https://mp.weixin.qq.com/s/fXkkjz7k_vQmMIwx9x1eiA?https://mp.weixin.qq.com/s?__biz=MzIwMzY1OTU1NQ==&mid=2247483938&idx=1&sn=f030875ef32c7d8fb9df2251c17cc3fa2,AQS是什么,存在的意...原创 2020-01-09 19:42:53 · 495 阅读 · 0 评论 -
Hulu棉镜系列(一)
1、给定一个N位数,例如12345,从里面去掉k个数字,得到一个N-k位的数,例如去掉2,4,得到135,去掉1,5,得到234。设计算法,求出所有得到的N-k位数里面最小的那一个?解决方案一:(1)第一步要确定剩余N-K位的数的最高位:从个位开始算起,从第N-K位开始向高位比较,求出最小数字,作为高位。例如,3 1 1 2 3 3 1,K=3时,从7-3=4开始(为2),向上比较发现,...转载 2019-01-16 18:24:05 · 782 阅读 · 0 评论 -
交换2个整形数引发的思考
题目,在main方法中定义了两个成员变量a=1,b=2. 现在需要通过swap方法把a和b的值做一个交换,交换以后输出的结果是a=2,b=1.思路1大家看到这道题目的时候一定觉得很简单,不用做任何思考就把代码啪啪啪写完了 这种思维逻辑很对,大家从开始学编程就已经学到了中间变量的作用,好比是两个瓶子,一瓶是可乐,一瓶是雪碧,要是想把两个瓶子里面的饮料交换一下,,那么我们首先想...转载 2018-11-13 01:08:49 · 348 阅读 · 0 评论 -
Java 2行代码写一个空指针异常(NPE)
String str = null;str.toString();原创 2018-01-28 20:59:57 · 5475 阅读 · 0 评论 -
Java知识点汇总3
## java基础 1、Arrays.sort实现原理和Collections.sort实现原理。<br/>答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort实现的。TimSort算法就是找到已经排好序数据的子序列,然后对剩余部分排序,然后合并起来.<br/>foreach和while的区别(编译之后) ...原创 2018-01-19 01:05:56 · 827 阅读 · 0 评论 -
二叉树的三种遍历的应用(表达式,求深度,叶子数,结点数,二叉树的建立,复制)
如图所示的二叉树表达式: a+b*(c-d)-e/f若先序遍历此二叉树,按访问结点的先后次序将结点排列起来,其先序序列为: (波兰式,前缀表达式) -+a*b-cd/ef按中序遍历,其中序序列为:a+b*c-d-e/f (中缀表达式)按后序遍历,其后序序列为:abcd-*+ef/- (逆波兰式,后缀表达式)注:人喜欢中缀形式的算术表达式,对于计算机,使用后缀易于求值查询二叉树转载 2017-12-06 00:21:46 · 2239 阅读 · 0 评论 -
常见的五类排序算法图解和实现(交换类:冒泡排序,递归的快速排序)
转自:http://www.cnblogs.com/kubixuesheng/p/4353616.html冒泡排序算法:总的来说就是两两交换,反复直到有序,第一个记录和第二个记录,若逆序则交换,然后比较第二个和第三个记录,以此类推,直到第 n 个记录和第 n-1个记录比较完毕为止,第一趟排序,结果关键字最大的记录被安排在最后一个位置。对前 n-1个记录继续冒泡排序,使得关键字次转载 2017-12-11 00:11:39 · 927 阅读 · 0 评论 -
进程、线程知识点总结和同步(消费者生产者,读者写者三类问题)、互斥、异步、并发、并行、死锁、活锁的总结
转自:http://www.cnblogs.com/kubixuesheng/p/4355786.html进程:是个动态的概念,指的是一个静态的程序对某个数据集的一次运行活动,而程序是静态的概念,是由代码和数据组成的程序块而已。进程5大特点:动态性,并发性,独立运行性,异步性,和结构化的特性。在多道程序环境下,程序不能独立运行,操作系统所有的特征都是基于进程而体现的,只有进程可转载 2017-12-10 21:53:55 · 802 阅读 · 0 评论 -
常见的五类排序算法图解和实现(归并类:二路归并排序)
归并类的排序算法归并:将两个或两个以上的有序表组合成一个新的有序表。内部排序中,通常采用的是 2-路归并排序。即:将两个位置相邻的记录有序子序列归并为一个记录有序的序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。图解如下看成是 n 个有序的子序列(长度为 1),然后转载 2017-12-10 16:24:23 · 4677 阅读 · 4 评论 -
常见的五类排序算法图解和实现(选择类:简单选择排序,锦标赛排序,树形选择排序,堆排序)
选择类的排序算法简单选择排序算法采用最简单的选择方式,从头到尾扫描待排序列,找一个最小的记录(递增排序),和第一个记录交换位置,再从剩下的记录中继续反复这个过程,直到全部有序。具体过程:首先通过 n –1 次关键字比较,从 n 个记录中找出关键字最小的记录,将它与第一个记录交换。再通过 n –2 次比较,从剩余的 n –1 个记录中找出关键字次小的记录,将它转载 2017-12-10 16:22:26 · 1177 阅读 · 0 评论 -
一道 google曾出过的笔试题:编程实现对数学一元多项式的相加和相乘操作
转自:http://www.cnblogs.com/kubixuesheng/p/4084095.html数学中一元n次多项式可表示成如下的形式: Pn(x)=p0+p1x+p2x^2+…+pnx^n (最多有 n+1 项,n +1 个系数唯一确定她) (1)请设计一套接口用以表示和操作一元多项式 (2)根据上述设计实现一元n次多项式的加法转载 2017-12-10 00:05:05 · 1439 阅读 · 0 评论 -
Java多线程系列-happens-before规则和as-if-serial语义
JSR-133使用happens-before的概念来阐述操作之间的内存可见性。在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这2个操作之间必须要存在happens-before关系。这里提到的2个操作既可以是一个线程之内,也可以是不同线程之间。与程序员密切相关的happens-before规则如下:1、程序顺序规则:一个线程中的每个操作,happens-before原创 2017-10-26 21:03:33 · 924 阅读 · 0 评论 -
Java多线程系列-多线程合集3
转自:http://blog.csdn.net/u013256816/article/details/51363643本文主要整理博主遇到的Java多线程的相关知识点,适合速记,故命名为“小抄集”。本文没有特别重点,每一项针对一个多线程知识做一个概要性总结,也有一些会带一点例子,习题方便理解和记忆。51. SimpleDateFormat非线程安全当多个线程共享一个Simple转载 2017-10-26 20:52:00 · 596 阅读 · 0 评论 -
Java 最常见的 200+ 面试题:面试必备
这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢?说回面试的事,这份面...转载 2019-03-29 00:42:03 · 292 阅读 · 0 评论 -
Java中笔试和面试2---P9 级面试官是如何 360° 无死角考察候选人的
给大家分享一个同学面试阿里某个部门时的经历。简单说一下这个同学面试的背景,本身技术底子还不错,在几个有一定知名度的中型互联网公司工作过,然后之前打算尝试一下阿里的职位,就去面试了。第一轮和第二轮面试,全部都通过了,面试官评价也是基本技术素养还可以,基础也不错,定级都是P6+的职级。但是第三面是那个部门老大P9出来面试他,结果就挂在这里了,所以把这个第三面的一些问题分享出来,给大家参考。...转载 2019-05-07 22:32:15 · 504 阅读 · 0 评论 -
合并两个排好序的单链表
示例思路一:两个链表同时逐个遍历参考代码ListNode* combinList(ListNode *head_1, ListNode *head_2){ ListNode *head_3 = NULL; if(head_1 == NULL) { head_3 = head_2; } else if(he转载 2015-02-15 16:40:44 · 781 阅读 · 0 评论 -
Java中的笔试和面试9---Java面试问题20190915[精校版]
链接:https://www.nowcoder.com/discuss/77?type=&order=0&pos=357&page=1来源:牛客网1,mysql的三大引擎是啥?mysql常用的引擎有InnoDB,MyISAM,Memory,默认是InnoDBInnoDB:磁盘表,支持事务,支持行级锁,支持外键,B+Tree索引ps:优点: 具有良...原创 2019-09-15 14:09:56 · 278 阅读 · 0 评论 -
Mysql数据库索引底层原理分析
Reference:你心里没点b树,敢说你懂数据库索引底层原理?要了解数据库索引的底层原理,我们就得先了解一种叫树的数据结构,而树中很经典的一种数据结构就是二叉树!所以下面我们就从二叉树到平衡二叉树,再到B-树,最后到B+树来一步一步了解数据库索引底层的原理!二叉查找树(Binary Search Trees)二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”...转载 2019-07-28 21:22:59 · 683 阅读 · 1 评论 -
Java中的笔试和面试4----Spring Cloud 面试题
问题一:什么是Spring Cloud?Spring cloud流应用程序启动器是基于Spring Boot的Spring集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。问题二:使用Spring Cloud有什么优势?使用Spring Boot开发分布式微服务时,我们面临以下问题...转载 2019-07-03 00:44:41 · 4721 阅读 · 0 评论 -
Java中的笔试和面试7---Netty 模块问卷1
本文是前文《Java 最常见的 200+ 面试题》的第二个补充模块,第一模块为:《Java 200+ 面试题补充 ThreadLocal 模块》。1.Netty 是什么?Netty 是一款基于 NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,对比于 BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高。难能可贵的是,在保证快速和易用性的同时,并没...转载 2019-05-22 00:19:45 · 237 阅读 · 0 评论 -
Java中的笔试和面试1---知识点汇总1
Java中泛型的本质 Java中静态变量的适用场景 Java类加载原理及类加载器 Java中对Clone的理解 Java中HashMap的实现 Java中Collection和Collections的区别 Java数组浅析 Java代码优化编程 Java事件处理机制与“恋爱关系” Java中的JNDI (Java命名与目录接口) Java中Comparable和Comparat...转载 2018-01-18 00:38:22 · 1446 阅读 · 1 评论 -
Mysql中的笔试和面试---20个经典面试题
另外附上:最全MySQL面试60题和答案1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;3. 从:sql执行线程——执行...转载 2019-05-07 23:01:59 · 912 阅读 · 0 评论 -
Mysql中的笔试和面试---常见面试题问与答
1. 主键外键主 键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。外 键:在一个表中存在的另一个表的主键称此表的外键。2.数据库事务的四个特性及含义数据库事务transanction正确执行的四个基本要素。ACID,原子性(Atomicity)、一致性(Correspondence...转载 2019-05-07 22:58:42 · 415 阅读 · 0 评论 -
Java中的笔试和面试6---Dubbo
本文是 Java 最常见的 200+ 面试题 的第三个补充模块。第一个补充模块:面试题补充① ThreadLocal 模块第二个补充模块:面试题补充② Netty 模块1.Dubbo 是什么?Dubbo 是一款高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。2.Dubbo 的使用场景有哪些?透明化的远程方法...转载 2019-05-22 01:59:43 · 428 阅读 · 0 评论 -
网络管理员面试时常用的问题及答案
转自:http://bbs.51cto.com/thread-714900-1.html1.请写出568A与568B的线序 2.按照数据访问速度排序:硬盘、CPU、光驱、内存 3.请写出下列服务使用的默认端口POP3、SMTP、FTP 4.网卡MAC是由6组什么组成的 5.ISO/OSI 7层模型是什么 6.C/S、B/S的含义 7.RFC950定义了什么? 8.综转载 2013-08-07 11:50:34 · 7731 阅读 · 0 评论 -
把数组中的奇数放到偶数之前
案例数组内容:3 4 4 6 8 2 1 1 1调换奇偶:3 1 1 1 8 2 4 4 6 思路源于快速排序方式1参考代码#include #include using namespace std;bool IsOdd(int num){ return num % 2 == 1 ? true : fal转载 2015-02-15 16:24:53 · 2884 阅读 · 0 评论 -
删除单链表的倒数第k个结点
策略直接遍历总数为len,再次遍历第len-k+1个就是答案,但是这样遍历了O(N+k)个,可以在O在更短的时间内找到图示参考代码#include using namespace std;typedef struct ListNode{ int value; ListNode* next;}ListNode;void cre转载 2015-02-15 16:36:24 · 799 阅读 · 0 评论 -
接口和抽象类有什么区别详解
接口和抽象类的概念不一样:接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。接口和抽象类的数量不一样:人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它。在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是转载 2015-02-15 15:01:55 · 946 阅读 · 0 评论 -
经典必背---二叉树经典笔试面试题
二叉树节点定义struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;};求二叉树中的节点个数递归解法:(1)如果二叉树为空,节点个数为0(2)如果二叉树不为空,二叉树节点个数 = 左子树节点个数 + 右子树节点个数 + 1原创 2015-04-06 14:50:28 · 960 阅读 · 0 评论 -
经典必背---链表经典笔试面试题
链表结点声明truct ListNode{ int m_nKey; ListNode * m_pNext;};求单链表中结点的个数注意检查链表是否为空。时间复杂度为O(n)// 求单链表中结点的个数unsigned int GetListLength(ListNode * pHead){ if(pHead == NULL) retu原创 2015-04-14 21:43:39 · 1047 阅读 · 0 评论 -
思维扩展---字典字符串处理题目
一道某硅谷大公司的算法面试题算法题案例:Given an input string and a dictionary of words,segment the input string into a space-separatedsequence of dictionary words if possible. Forexample, if the input s原创 2015-04-16 10:58:02 · 715 阅读 · 0 评论 -
智力爆开---包子排放问题
来源:http://blog.csdn.net/pennyliang/archive/2010/10/12/5935401.aspx在清华东门有个卖包子的店,为了无广告嫌疑,我就不提品牌了。 该店特点如下: 1)只有一个女店员,应该是女店员的工资待遇比男店员低,所以优先考虑女士 2)包子种类很多,牛肉,鲜肉,韭菜,茴香等等大概十多个品总。 3)工转载 2015-04-16 11:49:28 · 1245 阅读 · 0 评论 -
数组试题---在一个先增长后减小的数组中找到最大值 .
题目如下:Given an array of integers. Find a peak element in it. An array element is peak if it is larger than its neighbors. For corner elements, we need to consider only one neighbor. For example, for转载 2015-04-16 14:34:09 · 2260 阅读 · 1 评论