java2020面试笔记总结

这里写自定义目录标题

java2020面试笔记总结

  1. &和&&得区别 &俩边都运算 &&先算左边
  2. |和||得区别 |对所以条件判断 ||一边位ture 后面不做判断
  3. 交换变量 a=a+b b=a-b a=a-b 异或运算
  4. ==和equals 区别 ==基本数据类型比较比较值相等 equals引用数据类型比较对象地址比较 基本数据类型 baty int char 引用数据类型 类 方法 数组
  5. Try-catch-finally 先执行finally 里得 在执行catch
  6. Stringbuffer 和stringbuilder区别 线程安全效率低 线程不安全效率高 用于操作字符串
  7. 面向对象特征 封装 继承 多态
  8. Java的方法重载 类中可以创建多个方法,它们具有相同的名字
  9. 重写 子类可继承父类中的方法重写父类的方法
    接口与抽象类有什么区别?
    抽象类有构造方法,接口没有构造方法
    抽象类只能单继承,接口可以多继承
    抽象类可以有普通方法,接口中的所有方法都是抽象方法
    接口的属性都是public static final修饰的,而抽象的不是
    10.ArrayList和LinkedList区别

ArrayList 底层数组结果 查询快增删慢 用于查询修改 LinkedList 底层链表结果 查询慢增删快 用于增加和删除
ArrayList 保证线程安全用 自己封装类根据业务枷锁
10. HashMap和Hashtable区别
数据链表红黑树 线程非安全 默认熔炼16 允许存空键空值
哈希表实现 线程安全加了锁 默认熔炼11 不允许空值空键
11. 两个obj,如果equals()相等,hashCode()一定相等。
  两个obj,如果hashCode()相等,equals()不一定相等 用于对象比较 排序
12.List、Set、Map 之间的区别是什么?
List储存元素是有序的 可以存重复数据
Set储存元素是无序的 不可以存重复数据 set每一个实现都对应map里的一种封装
Map存储键值对的 不可重复
Hash冲突 链表发 在哈希法 put添加值 get取值
15. 并行和并发有什么区别?
并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。
同步就是一件事,一件事情一件事的做。
异步就是,做一件事情,不引响做其他事情。
16. 线程和进程的区别?
一个进程有多个线程允许同时运行对各程序
17. 创建线程有哪几种方式? 继承thread 类 实现reunnable方法
18. 线程有哪些状态?
创建 就绪 堵塞 死亡
19. 创建线程池有哪几种方式 好处减少平凡创建销毁对象
newSingleThreadExecutor
创建一个单线程的线程池
newFixedThreadPool
创建固定大小的线程池
newCachedThreadPool
创建一个可缓存的线程池。
newScheduledThreadPool
创建一个大小无限的线程池
20. 业务中使用多线程 用户注册 定时任务 通过枷锁得方式保证线程安全
21. 线程悲观锁和乐观锁
当线程去操作数据时 总认为别的线程会修改数据所以每次拿数据都要上错
每次去拿数据时都认为别人不会修改
22. 消息队列 异步解耦晓峰
23. 同步应用场景 短信通知 异步 注册成功异步系统通知分发积分
24. 延迟消息应用场景电商交易超时未支付订单场景 在订单创建时会发送一个延时小时 这个消息会在30分钟后发送给消费者消费者拿到此消息会判断订单是否支付完成如果支付未完成订单关闭已完成忽略
25. 实现列队里的顺序 应该按照顺序发布 顺序消费 使用局部顺序 比如订单顺序流程 创建订单 付款 物流 完成 订单号相同得消息会被先后放进同一个队列里 自定义策略 根据同个业务得ID放置同一个queue里面 按照一定得顺序接收消息
26. 怎么避免重复消费 幂等性 一个请求不管重复多少次结果不会变得 方法1做消息ID出重复
27. 消息可靠性传输 1做好重试 MQ里有自带一个模式 开启模式你每次写的消息都会分配一个唯一的id,然后如果写入了rabbitmq中,rabbitmq会给你回传一个ack消息,告诉你说这个消息ok了。如果rabbitmq没能处理这个消息,会回调你一个nack接口,告诉你这个消息接收失败,你可以重试。
28. 如何处理堆积消息 1采取列队临时扩容 提高消费者能力 2编写临时处理分发程序从旧的列队里读取到新的列队里 新的列队扩容在消费 知道堆积得消息处理完 在恢复正常列队数
29. 事物得特性 1原子性 整个操作要么成功要么失败 2一致性 3隔离性一个事物相对另一个事物事隔离得 4持久性 事物提交成功 永久保存数据库中
30. 事物得隔离级别 1脏读 事物可以读到未提交得数据 2不可重复读 2次读取得数据内容不一致 3幻读 读取某个范围得记录时 另一个事物插入新纪录 再次读取记录 发现2次不一致产生幻读 mysql默认级别 可重复读
31. 数据库引擎 innDB myisam csv myslq5.5以上版本用 DB 5.5一下用MYisam
32. DB 和 MYisam 区别 支持事物 不支持事物 支持外键 不支持外键
33. 常见的功能数据库索引 1 普通索引 仅加快查询速度 2唯一索引 列值唯一允许空值
3主键索引 列值唯一一个表只有一个 不允许空值
34.索引的好处合坏处 好处 查询速度块减少服务器扫描 坏处 浪费磁盘空间 插入删除跟新需要维护索引 索引过修改表的时候重构索引性差 建立索引需要结合业务需求场景在那个字段上创建索引
35.数据库指令 from从那个表查 where过滤条件 group by 过滤进行分组 having 对分组后的数据过滤 select查询那些结果字段 order by 按照顺序进行排序返回
36.char 和varchar区别 长度固定 长度可变 存取速度块 存取速度慢 适用于固定长度的字符串手机号 使用长度不固定的字符串地址邮箱地址
37.datetine 和timestamp区别 8字节 字节 范围不同 时区问题 不会改变 随数据库时区进行改变
38.大数据分页优化思路 1前后端做缓存 2使用elasticsearch 分页搜索 3合理使用mysql缓存查询分页limit 4使用子查询
39.数据库主从复制 步骤 1数据写入主数据库写入binlog日志生成一个logdump线程和从库IO线程交互 io线程请求主数据库binlog写入从数据库日志sql线程读取日志解析后写入从库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值