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高级工程师开放面试题集相关推荐

  1. java高级工程师开放面试题集二

    临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么? 作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助. 特别说明,仅仅针对工作两年以上的java ...

  2. 5gh掌上云计算认证不通过_阿里云ACE高级工程师认证考试攻略、考试心得、费用及常见问题...

    阿里云ACE是高级工程师级别,云吞铺子分享阿里云ACE云计算架构师高级认证考试攻略.考试心得.费用及常见问题: ACE认证分类 阿里云ACE高级工程师认证分为云计算和大数据两个方向,目前可以报考的只有 ...

  3. Sun Java 国际认证考试流程表

    在当今信息高速发展的社会中,"人才"决定了企业发展.因此,如何评估员工的价值,或是个人如何证明自己的专业能力,就成为关键.Sun公司为了为业界建立一套认证的标准,特别针对最先进的科 ...

  4. 备战网络工程师认证考试:历年真题合集

    备战网络工程师认证考试:历年真题合集 网络工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员.网络工程师能够从事计算机信息系统的设计.建设.运行和维护工作.参加全国计算机等级考试之 ...

  5. 计算机考试中有关表格的题类型,2021年职称计算机考试中有关电子表格题型试题集.doc...

    TIME \@ "yyyy'年'M'月'd'日'" 2020年5月14日 2021年职称计算机考试中有关电子表格题型试题集 职称计算机考试中相关电子表格题型试题 一.打开" ...

  6. 腾讯云TCP架构高级工程师认证考试大纲、考题下载及说明

    腾讯云TCP认证架构高级工程师是针对云解决方案架构师的高级技能认证,满分100分70分及格,题型包括30单选.15多选和20案例分析,考试范围包括上云迁移.云原生应用设计.高可用架构设计.业务流量高峰 ...

  7. ccf试题及答案java,ccf认证考试试题答案

    ccf认证考试试题答案 CCF,中国计算机学会,英文全称为China Computer Federation,简称CCF,成立于1962年,是中国计算机科学与技术领域群众性学术团体,属一级学会,独立法 ...

  8. 《CCNA无线640-722认证考试指南》——9.3节集中式架构

    本节书摘来自异步社区<CCNA无线640-722认证考试指南>一书中的第9章,第9.3节集中式架构,作者 [美]David Hucaby,更多章节内容可以访问云栖社区"异步社区& ...

  9. java高级工程师开放面试题集一

    临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么? 作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助. 特别说明,仅仅针对工作两年以上的java ...

最新文章

  1. 百会CRM教你在大数据平台中做精准营销
  2. linux中安装jdk安装(rpm安装)
  3. kindeditor java上传_富文本编辑器kindeditor上传图片的配置方法
  4. 岳阳机器人餐厅在哪_普渡科技推出送餐与回盘两款全新餐饮机器人,打造“一来一回”新闭环...
  5. matlab2c使用c++实现matlab函数系列教程-max函数
  6. 截图软件 snipaste
  7. 互联网创业潮时代我们到底该不该创业
  8. gpgga格式读取MATLAB,GPS协议GGA、GLL、GSA、GSV、RMC、VTG解释
  9. DCMTK读取dcm文件信息环境搭建及经验总结
  10. 黑群晖docker清理缓存_嘿群辉 篇五:群辉docker迁移磁盘
  11. 推荐一个Github上很酷的开源项目——The Octo-Bouncer
  12. sis最新ip地址2020入口一_2020最新大厂内部 PHP 高级工程师面试题汇总(一)
  13. 我的朋友去国外出差回不来了
  14. 苹果7如何设置手机邮箱服务器,iphone邮箱设置大全
  15. 聊聊C++标准库,准标准库中关于时间的概念和用法
  16. 修改Oracle序列
  17. nvl() 和nvl2()
  18. linux 编译安装TRMPdump(libRTMP)
  19. 汽车基础——专业词汇
  20. Revit族加密工具分享

热门文章

  1. 将ojdbc 添加到maven
  2. P1828 香甜的黄油 Sweet Butter (spfa)
  3. 类似select下拉选择框同时又支持手动输入的元素 datalist 介绍。
  4. Eclipse怎么全局搜索替换(整个项目)
  5. loadrunner 脚本优化-事务时间简介
  6. 能玩游戏的计算机名字,没有手机和电脑时,孩子们最喜欢的游戏,简单却能玩上一整天!...
  7. java如何引用类_java – 如何引用当前类的类?
  8. mysql 目录更改 php_树莓派搭建LAMP,然后更改根目录
  9. rust建的怎么拆除_罗志祥私建泳池已拆除,后续还将接受物业的监督与教育
  10. python调用函数怎么错_在Python中从类调用函数时参数数目错误