京东java实习生一二面(2020.3)

一面 2020/3/12 60min

  • 1、自我介绍

  • 2、学习过哪些课程,觉得哪些课程学的还不错

  • 3、mysql 用的是什么数据结构存储,索引是什么结构

  • 4、B+ 树和B树、红黑树,为什么MySql索引使用B+树

  • 5、B+树作为索引有什么缺点

  • 6、基于面提到的有一个缺点,更新操作慢,现在有这样的需求,就是存储日志文件(一般来说日志文件只有在出错的时候才会去看它,平时基本上不会去查)应该如何设计索引的数据结构

  • 7、主键索引和普通索引

  • 8、mysql存储引擎知道哪些

  • 9、进程和线程的区别

  • 10、既然线程会共享进程的程序和数据,那么如何保证各个线程之间互不干扰相互独立呢

  • 11、java又是怎么保证线程同步(安全)的呢

  • 12、说一下堆和栈

  • 13、说一下用过java哪些容器(list、set、map及其特点都说一下)

  • 14、list是不是有序的,能不能重复,set呢

  • 15、ArrayList和LinkedList区别

  • 17、HashMap底层原理,put和get操作

  • 18、string几种拼接方式区别,+和append底层有没有区别

  • 19、如果说有一个操作需要创建一个对象,这个对象很大,需要消耗很多资源,如果说每调用一次方法就创建一个对象的话,开销太大,如果把它定义成一个静态变量,又会产生并发问题,那么多线程并发操作的时候就需要加锁,降低效率。怎么优化才能既不用加锁又能提高并发访问的效率?

  • (1)利用“资源池”的思想,,用一个资源池,存放10个该对象,每次创建的时候从池中获取,降低并发度(小菜鸡拙见)

  • (2)ThreadLocal:看倒是看过,就是没想到。知识还是要融会贯通呀!

  • 20、JVM运行过程——类加载过程

  • 21、内存泄露原因,举例子

  • 22、如何排查内存泄漏的原因

  • 23、如果现在有8G内存,一个程序很大,由于还要留下一部分内存供其他程序使用,那么如何控制这个程序使其占用的内存不能超过6G呢?

  • 24、为什么要引入双亲委派机制

  • 25、存储了0-100的数据,如何删除其中小于10的数字(其实问的是list中如何删除元素——迭代器)

  • 26、为什么不能在遍历list的时候删除其中的元素呢

  • 27、我在jvm上运行一段java程序输出一条语句,它是怎么输出到屏幕上的

  • 28、JVM的启动参数有哪些

  • 29、java和C#的区别·

  • 30、对于一个容器,比如set,你想实现自定义排序规则的话怎么做

二面 2020/3/12 20min

  • 1、说一下项目吧

  • 2、说一下项目亮点,或者你在平时学习中解决了什么问题。简而言之就是你觉得自己做的挺有技术含量的事是什么

  • 3、MySQL的主从复制原理,如何实现

  • 4、索引有哪些存储方式,“like”查询在什么时候能够用上索引

  • 5、存储引擎有innodb和myisam,就不用说它们的区别了,如果是存储日志,用什么存储引擎比较合适

  • 6、数据库中一行记录大小10K,一个表只有主键索引,可以存多少条数据

  • 7、你有没有试过数据库一个表中最多可以插入多少数据

  • 8、数据库中存储密码是怎么存的(MD5加密),还知道其他加密方式吗

  • 9、一个6位的密码,使用MD5加密,破解需要多久:说的是这样的,因为6位的密码排列组合有一定的种数,然后每一种通过hash函数去破解,需要多久

  • 10、maven熟吗,如果遇到版本不匹配的问题怎么解决

  • 11、还问了一下linux的操作,修改表的某一行数据还是啥的,不太熟

  • 12、最后我问了下部位主要做什么:该部门主要是信息安全部门,涉及到用户登录、注册、人脸识别、支付等业务

  • 目前就记得这么多了,有的不太会的问题忘了·~~

  • 加油吧,各位还在找工作的程序猿or程序媛们,期待大家早日上岸~~