java高级工程师认证考试_java高级工程师开放面试题集
java高级工程师开放面试题集
发布时间:2019-01-03 11:38,
浏览次数:1108
, 标签:
java
临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么?
作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助。
特别说明,仅仅针对工作两年以上的java后端开发。以开放性题目为主。
1.数据结构相关
假设1亿整数存放在一个txt文件中,如何去重和排序?
思路:
1.1.面试者要评估一下一亿整数的大小。一个int占4个字节,1亿呢?
1.2.去重的数据结构有哪些?HashSet--->引申到HashMap--->ConcurrentHashMap
1.3 数据量增大到十亿百亿怎么去重?
布隆过滤器,优点,缺点
1.4.其他方式?
数据库distinct order by,txt怎么导入到数据库?load
redis去重排序,redis的数据结构-->引申到其他数据结构 String,list,hash,set,sorted
set,hyperloglog,geo
mongo去重排序,
....
2. 算法相关,主要考察代码能力
斐波那契数列(fabnacci)实现,首先介绍一下该算法的思想
2.1 第一级别实现: 两层递归
public static long fibonacci(int n){ if(n==0) return 0; else if(n==1) return 1;
else return fibonacci(n-1)+fibonacci(n-2); }
问算法复杂度及评估一下性能问题,提示可以优化。
2.2 第二级别:减少一层递归
public static void main(String[] args) { long tmp=0; // TODO Auto-generated
method stub int n=10; Long start=System.currentTimeMillis(); for(int i=0;i
){ System.out.print(fibonacci(i)+" "); } System.out.println(
"-------------------------"); System.out.println(
"耗时:"+(System.currentTimeMillis()-start)); } public static long fibonacci(int
n) {long result = 0; if (n == 0) { result = 0; } else if (n == 1) { result = 1;
tmp=result; } else { result = tmp+fibonacci(n - 2); tmp=result; } return
result; }
问题,算法复杂度,引导有没有不用递归的?
2.3 无递归
public static long fibonacci(int n){ long before=0,behind=0; long result=0; for
(int i=0;i
result=1; before=0; behind=result; }else{ result=before+behind; before=behind;
behind=result; } } return result; }
3.并发问题
给出一个普通的spring mvc controller,如下:
@Controller public class WelcomeController { private final Logger logger =
LoggerFactory.getLogger(WelcomeController.class);
@Autowired private final HelloWorldService helloWorldService;
@RequestMapping(value= "/", method = RequestMethod.GET) public String
index(Map model) { logger.debug("index() is executed!");
model.put("title", helloWorldService.getTitle("")); model.put("msg",
helloWorldService.getDesc());return "index"; } }
问题:
3.1.线程模型是什么?单线程
3. 2.如何提升qps?线程池 executor
3.3.在线程池下如何控制并发?信号量Semaphore或者计数器CountDownLatch
引申到:Java中的可重入锁:synchronized 和 java.util.concurrent.locks.ReentrantLock
4.数据库相关
场景:一张表 test(a,b,c,e,f,g) 100w记录 常用查询条件 ab abc abe,如何提升查询效率?
4.1.索引,
4.2.复合索引的规则:最左原则。查询条件ae走不走索引?
4.3 1000w,1亿,十亿以上条记录查询是否会有什么不同?
4.4 多线程下如何保证数据一致性?乐观锁/悲观锁,应用场景不同点
5.设计模式相关
public class Test { @Test public void test() throws InterruptedException,
ExecutionException { AsyncTaskExecutor executor= new
SimpleAsyncTaskExecutor("sys.out"); Future future = executor.submit(new
OutThread()); System.out.println(future.get()); System.out.println("Hello,
World!"); Thread.sleep(10000 * 1000L); } static class OutThread implements
Callable { public void run() { } @Override public String call() throws
Exception { String ret= " i test callable"; for (int i = 0; i < 10; i++) { try
{ Thread.sleep(2 * 1000L); System.out.println("i sleep 1s"); } catch
(InterruptedException e) {// TODO Auto-generated catch block
e.printStackTrace(); } }return ret; } } }
5.1 看程序说明
5.2 引申到reactor模型
spring reactor
vert.x
akka
5.3 servlet 3 响应式编程
太累,先写到这里吧。
java高级工程师认证考试_java高级工程师开放面试题集相关推荐
- java高级工程师开放面试题集二
临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么? 作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助. 特别说明,仅仅针对工作两年以上的java ...
- 5gh掌上云计算认证不通过_阿里云ACE高级工程师认证考试攻略、考试心得、费用及常见问题...
阿里云ACE是高级工程师级别,云吞铺子分享阿里云ACE云计算架构师高级认证考试攻略.考试心得.费用及常见问题: ACE认证分类 阿里云ACE高级工程师认证分为云计算和大数据两个方向,目前可以报考的只有 ...
- Sun Java 国际认证考试流程表
在当今信息高速发展的社会中,"人才"决定了企业发展.因此,如何评估员工的价值,或是个人如何证明自己的专业能力,就成为关键.Sun公司为了为业界建立一套认证的标准,特别针对最先进的科 ...
- 备战网络工程师认证考试:历年真题合集
备战网络工程师认证考试:历年真题合集 网络工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员.网络工程师能够从事计算机信息系统的设计.建设.运行和维护工作.参加全国计算机等级考试之 ...
- 计算机考试中有关表格的题类型,2021年职称计算机考试中有关电子表格题型试题集.doc...
TIME \@ "yyyy'年'M'月'd'日'" 2020年5月14日 2021年职称计算机考试中有关电子表格题型试题集 职称计算机考试中相关电子表格题型试题 一.打开" ...
- 腾讯云TCP架构高级工程师认证考试大纲、考题下载及说明
腾讯云TCP认证架构高级工程师是针对云解决方案架构师的高级技能认证,满分100分70分及格,题型包括30单选.15多选和20案例分析,考试范围包括上云迁移.云原生应用设计.高可用架构设计.业务流量高峰 ...
- ccf试题及答案java,ccf认证考试试题答案
ccf认证考试试题答案 CCF,中国计算机学会,英文全称为China Computer Federation,简称CCF,成立于1962年,是中国计算机科学与技术领域群众性学术团体,属一级学会,独立法 ...
- 《CCNA无线640-722认证考试指南》——9.3节集中式架构
本节书摘来自异步社区<CCNA无线640-722认证考试指南>一书中的第9章,第9.3节集中式架构,作者 [美]David Hucaby,更多章节内容可以访问云栖社区"异步社区& ...
- java高级工程师开放面试题集一
临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么? 作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助. 特别说明,仅仅针对工作两年以上的java ...
最新文章
- 百会CRM教你在大数据平台中做精准营销
- linux中安装jdk安装(rpm安装)
- kindeditor java上传_富文本编辑器kindeditor上传图片的配置方法
- 岳阳机器人餐厅在哪_普渡科技推出送餐与回盘两款全新餐饮机器人,打造“一来一回”新闭环...
- matlab2c使用c++实现matlab函数系列教程-max函数
- 截图软件 snipaste
- 互联网创业潮时代我们到底该不该创业
- gpgga格式读取MATLAB,GPS协议GGA、GLL、GSA、GSV、RMC、VTG解释
- DCMTK读取dcm文件信息环境搭建及经验总结
- 黑群晖docker清理缓存_嘿群辉 篇五:群辉docker迁移磁盘
- 推荐一个Github上很酷的开源项目——The Octo-Bouncer
- sis最新ip地址2020入口一_2020最新大厂内部 PHP 高级工程师面试题汇总(一)
- 我的朋友去国外出差回不来了
- 苹果7如何设置手机邮箱服务器,iphone邮箱设置大全
- 聊聊C++标准库,准标准库中关于时间的概念和用法
- 修改Oracle序列
- nvl() 和nvl2()
- linux 编译安装TRMPdump(libRTMP)
- 汽车基础——专业词汇
- Revit族加密工具分享
热门文章
- 将ojdbc 添加到maven
- P1828 香甜的黄油 Sweet Butter (spfa)
- 类似select下拉选择框同时又支持手动输入的元素 datalist 介绍。
- Eclipse怎么全局搜索替换(整个项目)
- loadrunner 脚本优化-事务时间简介
- 能玩游戏的计算机名字,没有手机和电脑时,孩子们最喜欢的游戏,简单却能玩上一整天!...
- java如何引用类_java – 如何引用当前类的类?
- mysql 目录更改 php_树莓派搭建LAMP,然后更改根目录
- rust建的怎么拆除_罗志祥私建泳池已拆除,后续还将接受物业的监督与教育
- python调用函数怎么错_在Python中从类调用函数时参数数目错误