互联网公司面试题汇总

1、jvm虚拟机:

2、mysql事务

3、复杂sql

4、数据量

5、kafka

6、集合源码 map 

7、有序map

8、锁

9、项目描述

10、java8新特性

11、线程池

12、有序map  LinkedHashMap

13、动态代理

14、对象类型的判断?

A:instanceof

15、Q:自定义注解 详见:https://www.cnblogs.com/dalaoyang/p/8657030.html

A:创建自定义注解与编写接口很相似,除了它的接口关键字前有个@符号

@Target是java的元注解(即修饰注解的注解),这里的@Target({METHOD,TYPE})指可以修饰方法、描述类、接口(包括注解类型) 或enum声明。

@Retention是java中的运行时注解,可以划分为三类

      1.RetentionPolicy.RUNTIME:注解不仅会被保存到class文件里,在jvm加载class文件之后仍然不会消失。

    2.RetentionPolicy.CLASS:注解会被保留到class文件里,但jvm加载class文件时被遗弃,默认的生命周期如此。

    3.RetentionPolicy.SOURCE:注解只会保留在源文件中,当java文件变异成class文件shi

@Inherited:允许子类继承父类的注解

@Documented:注解表明制作javadoc时,是否将注解信息加入文档。(添加时表示制作javadoc时将注解会加入其中)

自定义注解

@Documented @Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.METHOD})

public @interface Annotations {

long time() default -1;

}

16、Q:线程池 核心 最大线程数 达到核心之后如何创建 队列

A:https://www.cnblogs.com/waytobestcoder/p/5323130.html

17、Q:mysql数据库 隔离级别是多少

A:mysql 数据库的四种隔离级别

https://www.cnblogs.com/aiseek/p/8175849.html

1.READ UNCIMMITTED(未提交读) 

总结:这就是事务还没提交,而别的事务可以看到他其中修改的数据的后果,也就是脏读。

2.READ COMMITTED(提交读)

总结:这就是小华的事务执行到一半,而小明看不到他执行的操作,所以看到的是旧数据,也就是无效的数据

3.REPEATABLE READ(可重复读)

总结:虽然读取同一条数据可以保证一致性,但是却不能保证没有插入新的数据

4.SERIALIZABLE(可串行化)

18、合理创建索引 索引类型

Mysql目前主要有以下几种索引类型:普通索引、唯一索引、全文索引(FULLTEXT)、 单列索引、多列索引、组合索引

19、Q:查看sql有没有执行索引

A:possible_keys              

A在select窗口中,执行以下语句:

set profiling =1; -- 打开profile分析工具
show variables like '%profil%'; -- 查看是否生效
show processlist; -- 查看进程
use cmc; -- 选择数据库
show PROFILE all; -- 全部分析的类型
show index from t_log_account; ##查看某个表的索引
show index from t_car_copy; ##查看某个表的索引
-- 使用explain命令查看query语句的性能:
EXPLAIN select * from t_car_copy ; ##查看执行计划中的sql性能
EXPLAIN select * from t_car_copy where org_id = '3';
EXPLAIN select * from t_car_copy where 1=1 and org_id = '3';

20、Q:redis 默认端口号

A:6379

21、redis过期策略、过期数据(底层) 详见:https://blog.csdn.net/weixin_34292959/article/details/86364108

Redis三种Key过期策略

被动(惰性)删除、主动删除、maxmemory

22、Q:mybaties一级 二级缓存区别

A:一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构用于存储缓存数据。不同的sqlSession之间的缓存数据区域是互相不影响的。也就是他只能作用在同一个sqlSession中,不同的sqlSession中的缓存是互相不能读取的。

A:二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。

23、开发mybaties插件技术

24、springboot启动流程

25、Q:分布式锁实现方式

A:基于数据库实现分布式锁;
基于缓存(Redis等)实现分布式锁;
基于Zookeeper实现分布式锁;

26、接口,抽象类
27、多态
28、arrayList底层AX_ARRAY_SIZE强转
29、arrayList和hasmap默认大小
30、SimDateFormat线程安全吗
31、spring aop原理
32、spring事务几种5 
33、spring ioc以及实现方式
34、mysql统计空列count 1  * 吗 单引号:在进行count()统计某列的记录数的时候,如果采用的NULL值,会别系统自动忽略掉,但是空值是会进行统计到其中的。
35、左连接会走索引吗
36、Java8垃圾回收机制
37、描述秒杀系统设计,不用redis,高并发怎么处理
38、mysql行锁
39、单点登录设计
40、权限设计
41、离职原因

42、jvm内存模型、堆栈

43、集合、hasmap

44、线程池,参数

45、spring mvc注解

46、服务之间如何调用

47、es

48、redis

49、kafka多发、漏发

50、商品秒杀

51、spring cloud组件

52、支付

53、git命令

54、分布式事务

秒杀 锁住库存

redis基本数据类型

springboot启动类注解

mybaties # $区别 mybatis动态order by使用$

线程什么周期

新建(New)、就绪(Runnable)、运

行(Running)、阻塞(Blocked)和死亡(Dead)五种状态

hasmap

lienkhasmap

安全map

运行时和非运行时异常

 


 

 

 

 

转载于:https://my.oschina.net/u/3915790/blog/3069869

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值