java 面试题 由浅入深_面试官由浅入深的面试套路

阅读文本大概需要3分钟。

60244cc7757656e3ef056a294a2a7a93.png

从上图看来面试官面试是有套路的,一不小心就一直被套路。

0x01:Thread

面试官

:创建线程有哪几种方式?

应聘者

:继承Thread类、实现Runable接口、使用j.u.c中的线程池

面试官

:继承Thread类和实现Runable接口有什么区别?

应聘者

1、Runnable接口可以避免单继承的限制,要是继承Thread类的话,那么就不能继承其他的类了,因为只能单继承,如果实现了接口Runnale后,还可以继承其他的类,或实现其他的接口。

2、Runnable增强了程序的健壮性,代码能够被多个程序共享,实现了数据 与代码是独立的。

3、实现Runnable接口的线程的运行代码存在实现Runnable接口子类的run()方法中,继承Thread类的线程的代码存在Thread子类的run()方法中。

面试官

j.u.c中的线程池的处理流程

应聘者

1、当向线程池提交一个任务之后,线程池的处理流程如下:

判断当前核心线程数量是否大于最大值,否则创建一个新线程来执行任务,是则将该线程加入阻塞队列,进入下一步。

判断当前阻塞队列是否已满,否则将任务存储到队列,是则进入下一步。

判断当前线程池中的线程是否达到最大值,否则创建一个新线程执行任务,是则交给饱和策略处理该任务。

2、线程池提供的饱和策略目前有以下4种:

AbortPolicy:直接抛出异常(默认策略)。

CallerRunsPolicy:只用调用者所在线程来运行任务。

DiscardOldestPolicy:丢弃队列里最近的一个任务,并执行当前任务。

DiscardPolicy:不处理,直接丢弃。

0x02:Redis

面试官

:redis有哪些数据类型?

应聘者:

string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)

面试官

:在项目中你用到哪些数据类型?主要用到什么场景

应聘者:

在项目中经常使用string和hash,用string来存储登录用户的用户信息;使用hash存储一类相同类型的数据。

面试官

:redis的string类型是怎么实现的?

应聘者:

redis数据库底层没有直接使用c的字符串表示,而是自己使用名为简单动态字符串(simple dynamic string,SDS)

struct sdshdr{

int len; //记录buf数组中以使用字节的数量,等于SDS所保存字符串的长度

int free; //记录buf数组中未使用字节的数量

char buf[]; //字节数组,用于保存字符串

}

从以上两个案例可以看出,面试的时候一个好的面试官应该可以由浅入深。在一个知识面全方位的考察应聘者。所以在准备面试的时候不能浅行则止,要深入了解原理;特别已经在职场打拼5年以上的从业者,更需要深入了解各种知识点的原理。否则只能做些业务相关的开发工作,很难达到架构师的级别。

以下分享一些面试题:

1、对微服务的理解

2、JDK1.8的新特性

3、Map集合1.8的新特性

4、MySQL索引的数据结构

5、MySQL为什么使用自增主键比较好

6、垃圾回收算法

7、简单讲讲自己比较好的项目,自己的职责,然后展开一些问题,比如某些功能怎么实现,项目出现了什么难点问题怎么解决?

8、分布式调度如何实现

9、Redis数据类型,string类型如何实现

10、复合注解的实现

11、spring boot的多环境

12、A顺序调用BCD服务(bcd对DB都有操作),c故障断开,B如何保证数据一致性

13、四则运算算法题,说说实现逻辑以及如何定位优先级

14、Session如何共享

15、Session怎么存,怎么才能防止不一致

关注我

每天进步一点点

喜欢!在看☟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么用centos7运行c语言程序_centos如何编译c语言代码

centos如何编译c语言代码,文件,选项,作用,链接,程序 centos如何编译c语言代码 易采站长站,站长之家为您整理了centos如何编译c语言代码的相关内容。 编译c,c++代码 安装gcc 1、使用如下命令查询 centos 官方gcc的所有包:yum -list gcc* 可安装的软件包gcc.x86_64gcc-c++.x86…

第四篇:基本数据类型及用法(1)

字符串(str型) -可以做加法,乘法 乘法例: n1"alex" n2n1*3 print(n2) #结果:alexalexalex -首字母大写: capitalize() -所有字母变小写: casefold()、lower() #casefold更牛,很多未知的对应关系也…

Android Studio 错误集

错误列表与解决方案: 1.Android studio Gradle project sync failed Android studio 构建项目出错 Error:Unable to start the daemon process: could not reserve enough space for object heap.Please assign more memory to Gradle in the projects gradle.properties file.…

需求简报_代码简报:我如何通过做自己喜欢的事情来获得顶级技术实习

需求简报Here are three stories we published this week that are worth your time:这是我们本周发布的三个值得您关注的故事: How I landed a top-tier tech internship by doing something I love: 7 minute read 我如何通过做自己喜欢的事情获得一流的技术实习…

review what i studied `date` - 2017-3-31

在11 月份内,每天的早上6 点到12 点中,每隔2 小时执行一次/usr/bin/httpd.sh 怎么实现0 6-12/2 * 11 * /usr/bin/httpd.shNginx中的ip_hash是指讲一个地址的请求永久分发至后端的一台RealServer,直至这台RealServer宕机Zabbix和Nagios的工作原…

java string转long报错_java.lang.Integer cannot be cast to java.lang.Long解决办法

你好我是辰兮,本次是项目遇到的java.lang.Integer cannot be cast to java.lang.Long异常以及相对应的解决方案。文章目录一、实战问题用postman测试数据报错,类型转换异常!如何将Integer类型转换成长整形 ?先转成String型&#x…

pyqt 界面关闭信号_木辛老师的编程课堂之Python和Qt实战慕课软件开发:增加关闭按钮...

软件实战开始,快速提供编程能力;通过实战,分析产品需求,梳理设计需求,提升项目分析和架构的能力。快点跟着木辛老师一起学习吧!请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Python编程…

从零开始nodejs系列文章

http://blog.fens.me/series-nodejs/转载于:https://www.cnblogs.com/chinafbi/p/5394482.html

Leetcode589.N-ary Tree Preorder TraversalN叉树的前序遍历

给定一个 N 叉树&#xff0c;返回其节点值的前序遍历。 class Node { public:int val;vector<Node*> children;Node() {}Node(int _val, vector<Node*> _children) {val _val;children _children;} };//递归 class Solution { public:vector<int> res;vect…

打破双亲委派么,怎么打破_质量保证被打破。 这就是我们如何使其像其他所有东西一样敏捷。...

打破双亲委派么,怎么打破by Derwin由Derwin 质量保证被打破。 这就是我们如何使其像其他所有东西一样敏捷。 (Quality Assurance is broken. Here’s how we can make it as agile as everything else.) Process is the key to great software.过程是出色软件的关键。 In gen…

android java.lang.linkageerror_使用eclipse中的maven构建web应用出现 java.lang.LinkageError异常...

▒▒▒▒: Servlet.service() for servlet [jsp] in context with path [/webdemo] threw exception [java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different typ…

android 键盘遮盖输入框_Android软键盘挡住输入框的终极解决方案

前言开发做得久了&#xff0c;总免不了会遇到各种坑。而在Android开发的路上&#xff0c;『软键盘挡住了输入框』这个坑&#xff0c;可谓是一个旷日持久的巨坑——来来来&#xff0c;我们慢慢看。入门篇最基本的情况&#xff0c;如图所示&#xff1a;在页面底部有一个EditText&…

最全面的几何画板实用教程视频免费下载

不同的选择就会有不同的人生夜&#xff0c;这里小编为奋斗在教学一线的老师们送个大福利&#xff0c;这也是老师们充实自己的好去处。作为数学老师一枚&#xff0c;在平时的教学中应该用到很多教学辅助软件&#xff0c;而几何画板就是其中一款。众所周知&#xff0c;几何画板是…

Redis(1):简介

2019独角兽企业重金招聘Python工程师标准>>> Redis之父Salvatore Sanfilippo于2009年将Redis开源。VMware公司从2010年开始赞助Redis的开发&#xff0c;Salvatore Sanfilippo和Pieter Noordhuis(另一名主要的代码贡献者)同年加入VMware&#xff0c;全职开发Redis。R…

小程序服务器域名5次_为什么您不应该在100美元的服务器上用5天的时间构建面向500,000个用户的应用程序...

小程序服务器域名5次by Howard Lo霍华德罗 为什么您不应该在100美元的服务器上用5天的时间构建面向500,000个用户的应用程序 (Why you shouldn’t build an app aimed at 500,000 users in 5 days on a $100 server) A few days ago, I read Erik Duindam’s “How I built an…

tp5 异步处理_tp5框架ajax异步添加数据的代码实现

本篇文章给大家带来的内容是关于tp5框架ajax异步添加数据的代码实现&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。ajax异步无刷新处理数据的用户体验还是不错的&#xff0c;在我们的项目开发中算是经常使用到的一个知识点。…

java中类型转换的造型_Java总结篇系列:类型转换/造型

Java中&#xff0c;经常可以遇到类型转换的场景&#xff0c;从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等&#xff0c;随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。首先&#xff0c;来了解下数据类型的基本理解&…

Google Maps API V3 之 路线服务

Google官方教程&#xff1a; Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 之控件 Google 地图 API V3 之 叠加层 Google Maps API V3 之绘图库 信息窗口 Google Maps API V3 之 图层 Google Maps API …

day 04 作业 循环和分之

# 读程序&#xff0c;总结程序的功能:"""1.求2 的20次方numbers1for i in range(0,20):numbers*2print(numbers)2.求100以内能整除3 或 7的数&#xff0c;并21不能整除的数summation 0num 1while num<100: if (num%30 or num%70) and num%21!0: …

Mysql数据库多实例配置

二进制安装&#xff1a; [rootlufengcentos ~]# mkdir /home/lufeng/tools -p [rootlufengcentos ~]# cd /home/lufeng/tools [rootlufengcentos tools]# rz [rootlufengcentos tools]# tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz [rootlufengcentos tools]# mkdir -p /ap…