`

JD广告部面试经历

阅读更多
同事的同事招聘,于是同事帮忙推荐了一下!

2017年10月16日快下班的时候打电话问面试时间,答复待定;
2017年10月19日我回电,预约23日上午10点面试。然后对方发了邮件。
2017年10月20日,胃肠感冒,直到23日都没好,上吐下泻的,哎,天公不作美。也可以为自己的失败找点理由。

9点半到面试地点,等了约15分钟,有人出来接待。
第一轮面试:
一、基本介绍
出生地、毕业院校、工作经历、主要的项目

二、面试官问

1.数据库用过哪些
答:MySQL
简述一下索引的实现原理?(蒙,我还以为是如何使用呢?)




---------------------------------------------


共三轮面试:

1.简述数据库索引的实现原理

2.描述一下JVM的分代实现,堆、栈等等的所在位置
JVM 内存模型
3.什么情况下会出现栈溢出

4.String 为什么要使用 final 修饰的原因
-- 运用了享元模式,可以节约资源,复用


5.使用事务保证数据一致性,但使用事务会影响性能,如何在不适用事务的情况下保证数据的一致性、准确性
(考虑分布式的情景)
-- CAP定律,队列支持分布式+逻辑判断

6.扑克牌随机排序(斗地主,初始化时扑克牌会重新洗牌,打乱原有的顺序)
即如何实现随机分布且结果依旧是原来的数组(提示:用最简单的方式实现).


7.URL访问,如何根据URL定位到具体的实现方法上
答:Struts.xml 配置
继续问:如何自动匹配URL,如何实现,即不是通过Struts.xml 配置来完成跳转

答复:
a.Controller 层,即HTTP访问的URL,是通过 struts.xml 配置通配符的方式访问,进而定位到相应的接口的方法上
struts.xml使用通配符

b.模块化开发,是Controller层通过HTTP请求的方式,请求其他项目工程,此时使用的是
@RequestMapping(value = "/helloworld")
SpringMVC学习系列(3) 之 URL请求到Action的映射规则

8.Ajax请求实现方式,如何返回JSON/XML 格式的数据
return modelAndView的形式?

答:response.setType
javascript解析ajax返回的xml和json格式数据实例详解


9.Spring如何加载标签,如何识别bean
答:web.xml spring.xml 配置 scan 扫描

10.@Autowired @Resource 的区别
那个是Spring自带的,那个是根据ID 进行加载的
a。@Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入;
b。@Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用;
c。@Resource注解是又J2EE提供,而@Autowired是由Spring提供,故减少系统对spring的依赖建议使用 
       @Resource的方式;
d。 @Resource和@Autowired都可以书写标注在字段或者该字段的setter方法之上

11.检索大量日志,如何在一个1GB大小的日志文件中找到 firefox ,并输入有多少行,每行的行号

cat -n xxx.log | grep 'xxx'

12.storm 的节点
spout --> bolt 经历多少个bolt

如何 storm 版本升级或 服务中断 或其他原因造成服务停止,重新发布服务,服务重启过程中的数据如何标记或处理?

即 重启的过程中有些数据可能已经执行到了第二个bolt上,重启导致了这类的数据无法继续执行下去,如何处理?

13.zk 的应用,仅仅只是起到了连接的作用? storm 集群部署,zk中存储了什么?

14.索引的实现原理,B+/B-数,平衡二叉树,基于数据库索引描述实现原理

15.如何优化SQL
答:explain 检索查询语句;如果是 ALL 就是全表扫描,需要添加索引
order by 排序,如何优化
答:在排序的字段上加入索引,一般根据主键排序
那根据主键排序效率依然很差如何解决?
答:。。。。
如果是上亿级别的数据如何快速检索?

16.Mybatis 是使用注解 还是 XML

答:xml

参数如何配置?
答:resultType/resultMap/parameterType
使用 map
<if test="" ></if>

Mybatis 中 #{} ${}有何区别
答:
一般表名称可变的使用后者
#相当于对数据 加上 双引号,$相当于直接显示数据
#能够防止SQL注入,后者不可以

SQL注入

17.hashMap 的实现原理
答:数组+链表

线程不安全,体现在哪里?
答:遍历时 modCount 与实际操作的次数不一致时抛出异常

添加元素的流程
查询元素的流程

18.ArrayList

19.多线程都使用过那些

Thread Runnable ThreadLocal Executors.newFixed

20.RPC调用

21.DDD方式编程,格局event事务自动响应,eventListener 这种标称方式是否有接触过

22.平时关注那些博客论坛,如何提升自己?

23.SQL注入

防止SQL注入的五中方法
SQL注入实例讲解

24.SpringWeb与 Spring

25.IOC
答:控制反转,A调用B,现在通过依赖注入的方式,将B给了A
Spring 如何实现的?

26.AOP
答:日志的输出打印;举例:主从库切换的实现过程
问:Spring 底层是如何支持AOP的这种实现方式的

27.NIO

28.HashMap 不安全,如何才能让它安全
答:
CurrnentHashMap
Collections.synchronized(xxxx)
问:
第一种方式的实现原理
第二种方式是什么保证线程安全的,是在外面套了一层嘛?
答:synchronized 使用了关键字。。。

29.MAVEN 管理代码
请问 快照与 release 有和区别
xxx-snapshot
xxx-1.0.1
答:后者只有 src/main/java 包内的内容,前者是全部
问:为什么要有这两种不同的形式存在?如何一个工程同时打出以上两种JAR包,有何区别?

a.release 是稳定版本,是经过测试后的版本;快照版本是不稳定版本,是在开发中的版本;
若A升级某项目后,B想引用,则B需要在相应的工程的pom.xml文件中修改A升级的项目的版本号,来实现引用;
若A在开发过程中不断地升级JAR,而B也在引用A的项目,避免不断地修改版本号,直接替换快照即可


30.服务化框架使用过哪些?duboo

31.如何实现负载均衡、容灾
答:NGINX反向代理,负载均衡在NGINX端进行配置。zabbit容灾


32.改变数据表的引擎,期望是减小存储容量,实际上数据已经存放,此时改变存储引擎已经不会启动作用,而是应该将数据重新导入到一个新建立的是哪个存储引擎的表上才可以

背景:公司内部一个日志收集系统,收集每日的服务器的推送信息;落地存储到MySQL上。存储时表的引擎为InnoDB,再由其他工程将历史数据表的存储引擎改为Tokudb(优点是体积小);实际未起到作用,因为存储时数据表的空间大小已确认,简单的修改存储引擎并不会改变表的存放体积,需要将数据重新导入到新的Tokudb引擎建立的表中
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JD 9852_inicode_JD9852_9852_

    《LCD驱动芯片JD9852的详尽解析》 LCD(Liquid Crystal Display)液晶显示器作为现代电子设备中广泛使用的显示技术,其核心组件之一就是LCD驱动芯片。本文将聚焦于JD9852这款专为驱动QVGA(Quarter Video Graphics ...

    JD9365_DS_V1.02_20180411.zip_JD9365_JD9365DA_JD9365DA-H3_JD9365D

    JD9365 datasheet 说明书,内含寄存器说明等,适用于各个平台调试参考

    JD9365Z.rar_JD9365Z驱动IC_jd9365da供应商_天钰 jd9365_天钰JD-9365DA_;STM32

    天鈺科技TFT-LCD Driver,型号JD9365Z,网上资料比较少

    JD-GUI-1.4.0

    JD-GUI是一个用于反编译Java字节码的图形化工具。要使用JD-GUI反编译JAR文件,请按照以下步骤操作: 下载并安装JD-GUI:访问JD-GUI官方网站(http://java-decompiler.github.io/),下载最新版本的JD-GUI。 打开...

    jd-gui.rar

    《Java反编译神器:JD-GUI深度解析》 在Java开发领域,有时我们需要查看已编译的.class文件内部的源代码,以便于理解代码逻辑、调试或学习。这时,一款强大的Java反编译工具就显得尤为重要。"jd-gui.rar"正是这样的...

    jd9161_dsi_wvga.rar_JD9161_jd9161 MT6580 屏 驱动

    jd9161 wvga分辨率在MTK平台下的驱动程序

    Java反编译工具jd-gui

    Java反编译工具jd-gui是一款专为Java开发者设计的实用工具,用于查看Java字节码的源代码。它能够将已编译的.class文件还原为可读的.java源代码,这对于理解已有的库或者研究代码行为非常有帮助。本文将深入探讨jd-...

    JD-GUI-java反编译工具 | windows版本

    1. 安装。 不需要安装和设置。 2. 描述 JD-GUI是一个独立的图形实用工具,显示...5.1 Windows:删除“jd-gui.exe”和“jd-gui.cfg”。 5.2 Linux:删除“jd-gui”应用文件和“jd-gui.cfg”。 5.3 OSX:拖放“JD-GUI

    JD-GUI java反编译工具组合包

    jd-gui-windows-1.6.6.zip windows版本 jd-eclipse-2.0.0.zip eclipse插件包,直接本地安装即可 jd-gui-1.6.6.jar java版本,只要装了jdk的操作系统都可以使用 jd-gui-1.6.6-min.jar java版本浓缩版,只要装了jdk的...

    JD9161 DATASHEET

    JD9161是显示IC(集成电路)的一种,其规格书资料即数据手册(datasheet)对电子工程师及现场应用工程师(FAE)来说是必备的重要参考。本文档详细介绍了JD9161的特性、应用、引脚定义、接口协议等,为使用者提供了...

    JD Project.rar

    《使用JD-GUI工具进行Java反编译及项目重构》 在软件开发过程中,有时我们需要查看或理解已编译的Java类文件的源代码,但原始的源代码可能丢失或者不可用。在这种情况下,反编译工具就显得尤为重要。本文将详细介绍...

    jd-gui_jd-gui_

    【jd-gui】是一款在Java开发者中广受欢迎的开源反编译工具,它允许用户查看已编译的Java字节码(.class文件)的源代码。这款工具因其直观的图形用户界面(GUI)和强大的功能而备受好评,使得开发者能够理解和分析已...

    eclipse的jd-gui插件安装以及jd-gui工具一枚

    此时,JD-GUI工具和它的Eclipse插件就显得尤为重要。 JD-GUI是一个独立的应用程序,它能够反编译Java字节码(.class文件)并以源代码的形式显示出来。这对于我们分析没有源码的库或者理解运行时行为非常有用。JD-...

    JD9365AA_BOE10.1_JD5002.c

    JD9365AA配BOE10.1+JD5002 MIPI SSD2828初始化代码

    jd-gui-windows-1.4.0.zip_jd gui 1.4_jd-gui_jdGUIWindows

    《JD-GUI:Java反编译利器在Windows平台上的应用》 JD-GUI是一款强大的Java反编译工具,尤其在Windows平台上,它以其便捷性和高效性受到开发者的青睐。标题中的"jd-gui-windows-1.4.0.zip_jd gui 1.4_jd-gui_...

    jd.zip JD-SDK依赖包下载

    《JD-SDK快递对接依赖包详解》 在现代电商行业中,快速、准确的物流信息对接是提升用户体验和服务质量的关键一环。京东(JD)作为国内知名的电商平台,为开发者提供了便捷的JD-SDK(京东物流SDK),帮助开发者实现...

    jd-gui注册到右键菜单

    JD-GUI是一款强大的Java反编译工具,它能够将字节码(.class)文件转换回源代码(.java)形式,便于开发者查看和理解已编译的Java程序。将JD-GUI注册到右键菜单,意味着用户可以直接在Windows操作系统中通过鼠标右键选择...

    jd-gui插件

    **jd-gui插件**是一款强大的Java反编译工具,专为开发者设计,便于查看Java类文件的源代码。在Eclipse这样的集成开发环境中(IDE)集成jd-gui,可以帮助开发者理解和调试已编译的Java代码,特别是当原始源代码不可用...

    jd-eclipse 插件安装包及教程

    jd-eclipse是一款专门为Java开发者设计的Eclipse集成开发环境插件,它主要的功能是对Java代码进行反编译,帮助开发者查看和理解已编译的.class文件的源代码。这对于那些没有源码但需要分析或修改已有二进制库的...

    jd-gui-1.8.rar

    标题“jd-gui-1.8.rar”表明这是一个关于Java反编译工具的压缩包,具体是jd-gui的1.8版本。jd-gui是一个开源的GUI应用程序,它允许开发者查看Java字节码,这对于理解和调试已编译的.class文件非常有用。这个工具对于...

Global site tag (gtag.js) - Google Analytics