天天拍车java面试(上海合川路附近)

1.redis的hash类型数据量太大会有什么问题?
 hash类型最多存储元素有40多亿呢 
 

2.final修饰的变量都是线程安全的吗?
 线程安全的 底层用fianl修饰;执行+拼接的时候实际上是对StringBuilder进行追加数据然后调用toString()方法

3.@Transactional注解实现原理?事务失效的?
 实现原理: Transactional是spring中定义的事务注解,在方法或类上加该注解开启事务。主要是通过反射获取bean的注解信息,利用AOP对编程式事务进行封装实现。

 事务失效: 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解是不会生效的。

原因:spring 在扫描bean的时候会扫描方法上是否包含@Transactional注解,如果包含,spring会为这个bean动态地生成一个子
类(即代理类,proxy),代理类是继承原来那个bean的。此时,当这个有注解的方法被调用的时候,实际上是由代理类来调用
的,代理类在调用之前就会启动transaction。然而,如果这个有注解的方法是被同一个类中的其他方法调用的,那么该方法的
调用并没有通过代理类,而是直接通过原来的那个bean,所以就不会启动transaction,我们看到的现象就是@Transactional注
解无效。
了解了失效的原因,解决的方法就简单了(两种):

  把这两个方法分开到不同的类中;
  把注解加到类名上面;


4.数据库表百万级数据优化方案?

 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

  2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描(最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库)

 .3.应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。

  4.应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎
 
  

5.java基本数据类型和每个类型站的位数?

  类型  字节数
  byte    1
  short   2
  int     4
  long    8
  boolean 1
  char    2
  float   4
  double  8

6.rabbitMq重复消费?漏发怎么处理?vhost什么意思?


7.redis你们用的集群还是单机 主从复制还是哨兵?

8.list数据结构特性和扩容原理底?底层算法?


9.hashMap底层?,什么数据类型不能做key?,为什么?

10.事务失效的情况有遇到到过吗?怎么解决的?

11.java包下的concurrent的类都有哪些?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值