ITPub博客

首页 > 应用开发 > Java > 面试阿里P6,Java程序员必须掌握的技术

面试阿里P6,Java程序员必须掌握的技术

原创 Java 作者:欢喜编程 时间:2021-09-18 16:03:02 0 删除 编辑
  1. 自我介绍呗

  2. 项目介绍呗(先自己介绍项目,然后再聊天)

  3. junit用法,before,beforeClass,after,afterClass的执行顺序

  4. 分布式锁

  5. nginx的请求转发算法,如何配置根据权重转发

  6. 用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap)

  7. 线程的状态

  8. 线程的阻塞的方式

  9. sleep和wait的区别

  10. hashmap的底层实现

  11. 一万个人抢100个红包,如何实现(不用队列),如何保证2个人不能抢到同一个红包,可用分布式锁

  12. Java内存模型,垃圾回收机制,不可达算法

  13. 两个Integer的引用对象传给一个swap方法在方法内部交换引用,返回后,两个引用的值是否会发现变化

  14. AOP的底层实现,动态代理是如何动态,假如有100个对象,如何动态的为这100个对象代理?

  15. 是否用过maven install、 maven test、git(make install是安装本地jar包)

  16. Tomcat的各种配置,如何配置docBase

  17. Spring的bean配置的几种方式

  18. Web.xml的配置

  19. Spring的监听器。

  20. Zookeeper的实现机制,有缓存,如何存储注册服务的

  21. IO会阻塞吗?readLine是不是阻塞的

  22. 用过 Spring的线程池还是java的线程池?

  23. 字符串的格式化方法 (20,21这两个问题问的太低级了)

  24. 时间的格式化方法

  25. 定时器用什么做的

  26. 线程如何退出结束

  27. java有哪些锁?乐观锁 悲观锁 synchronized 可重入锁 读写锁,用过reentrantlock吗?reentrantlock与synmchronized的区别

  28. ThreadLocal的使用场景

  29. Java的内存模型,垃圾回收机制

  30. 为什么线程执行要调用start而不是直接run(直接run,跟普通方法没什么区别,先调start,run才会作为一个线程方法运行)

  31. qmq消息的实现机制(qmq是去哪儿网自己封装的消息队列)

  32. 遍历hashmap的三种方式

  33. JVM的一些命令

  34. memcache和redis的区别

  35. Mysql的行级锁加在哪个位置

  36. ConcurrentHashmap的锁是如何加的?是不是分段越多越好

  37. myisam和innodb的区别(innodb是行级锁,myisam是表级锁)

  38. MySQL其他的性能优化方式

  39. Linux系统日志在哪里看

  40. 如何查看网络进程?

  41. 统计一个整数的二进制表示中bit为1的个数

  42. JVM内存模型,java内存模型

面试题答案:

image.png

03 二战前,我是如何复习的?

(1)MySQL 专题部分(先刷题)

  1. Mysql 中有哪几种锁?

  2. MYSQL 数据表在什么情况下容易损坏?

  3. MySQL 里记录货币用什么字段类型好

  4. MYSQL 支持事务吗?

  5. 解释访问控制列表

  6. 什么是通用 SQL 函数?

  7. 什么是非标准字符串类型?

  8. Mysql 表中允许有多少个 TRIGGERS?

  9. 什么样的对象可以使用 CREATE 语句创建?

  10. NOW()和 CURRENT_DATE()有什么区别?

  11. 可以使用多少列创建索引?

  12. InnoDB 是什么?

  13. Mysql 如何优化 DISTINCT?

  14. 如何输入字符为十六进制数字?

  15. 如何显示前 50 行?

  16. ......

MySQL 面试题答案: image.png

(2)MySQL 性能优化的21个最佳实践

  1. 为查询缓存优化你的查询

  2. EXPLAIN 你的 SELECT 查询

  3. 当只要一行数据时使用 LIMIT 1

  4. 为搜索字段建索引

  5. 在 Join 表的时候使用相当类型的例,并将其索引

  6. 千万不要 ORDER BY RAND()

  7. 避免 SELECT *

  8. 永远为每张表设置一个 ID

  9. 使用 ENUM 而不是 VARCHAR

  10. 从 PROCEDURE ANALYSE() 取得建议

  11. 尽可能的使用 NOT NULL

  12. Prepared Statements

  13. 无缓冲的查询

  14. 把 IP 地址存成 UNSIGNED INT

  15. 固定长度的表会更快

  16. 垂直分割

  17. 拆分大的 DELETE 或 INSERT 语句

  18. 越小的列会越快

  19. 选择正确的存储引擎

  20. 使用一个对象关系映射器(Object Relational Mapper)

  21. 小心“永久链接”

image.png

(3)MySQL 性能调优与架构设计

  • 基础篇:

总结

这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!

某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!

成功只会留给那些有准备的人!

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69990490/viewspace-2792797/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
VX公众号:编程进阶路 免费领【全套进阶编程学习资料】、【BTAJ大厂面试真题解析】

注册时间:2020-12-10

  • 博文量
    21
  • 访问量
    5972