继承是从已有的类中派生出新的类, 新的类能吸收已有类的修饰的数据属性和行为,并能扩展新的能力。
优点:
继承并且拥有父类的非private修饰的变量和方法,减少代码重复度。
继承并重写父类的方法,并对其进行扩展。
封装:封装就是把过程和数据包裹起来,对数据的访问只能通过已经定义的接口
值类型就是基本数据类型,八种,保存的是值
引用类型就是引用数据类型,保存的是对象的引用
yes
经过三次握手,双方都可以确保自己和对方发送和接收正常。
- 唯一的流水ID,每次进行操作都会对状态进行检验
- 防重表 讲操作过的流水ID,放入到防重表当中,下次操作之前检查防重表。
面向对象编程,就是相对于面向过程编程进行区分,比如把大象放入冰箱操作。。。。
单例模式 工厂模式 装饰者模式
yes
是一系列的数据库操作,视为一组操作,要么全部执行,要么全部不执行。
杂七杂八:
12. 平时学习去哪些技术论坛?
13. 有看书吗?
14. 共享单车你怎么看?
2.问你项目相关的点
3.java的缺点
java跨平台性依赖于虚拟机,性能比较差
倾向于是会解释性语言,运行速度效率极低,不支持底层操作
屏蔽了指针的概念,操作不灵活
4.数据库发生死锁的情况,如何避免
预测 避免 检测 解除
5.手写代码:给两个数组合成一个有序队列(双指针解决)
yes
6.组合与继承相比的优势是什么
java只支持单继承,而组合就没有进行限制
代码更加灵活,耦合度低,符合合成复用原则
7.进程与线程的区别
yes
8.cookie与session的区别
cookie存储在客户端,session存储在服务器端
cookie大小和数量均有限制,而session大小和数量和服务器有关,无限制
cookie只能存储字符串,session可以村处对象
cookie安全性低,存储在客户端,可以所以访问,session存储在服务器,安全性高
cookie和session定义区别:彻底了解Cookie和Session的区别(面试)
9.介绍下redis
reids是基于C语言开发的一套免费的开源数据库,基于纯内存进行操作,并根据reactor开发了一套自己的文件时间处理器模型,通过IO多路复用监听多个Socket,避免了线程切换带来的性能损耗,性高。
数据库索引(B和B+的区别,为什么选B+,复合索引、覆盖索引等)
索引是一种方便查询和检索数据的的一种数据结构
解释
java多态
父类引用指向子类对象,使得一个行为具有多个不同表现形式或形态的能力。
优点: 灵活性高,耦合度低
缺点:无法使用子类独有的方法和属性 只能使用父类的属性
jvm怎么判断一个对象需要垃圾回收
两种方式:
引用计数算法:
可达性分析算法
说说垃圾回收算法 (每一种的优缺点and实际采用哪种算法)
复制算法:优点:效率快 不会产生内存碎片 缺点:内存利用率低,适用于对象存活时间短的区域 S0/S1区域
标记清除算法:优点:执行效率快 缺点:产生大量的内存碎片,额外维护一张空闲表 适用于老年代
标记压缩算法: 优点:不会产生内存碎片 缺点:效率比较低,时间复杂度高 适用于老年代
分代回收算法: 目前JDK8使用的辣鸡回收算法
分区回收算法: G1使用的垃圾回收算法 停顿时间段
jvm有什么vm参数(不太懂,随便说了一些调整堆内存和垃圾回收器的参数)
设置空间大小参数
新生代老年代比例大小参数
辣鸡回收器参数
object类有什么方法有什么用
toString() 方法 输出对象值
clone() 克隆对象
euqals() 比较相等的方法
hashCode()获取对象的hash值
wait()/notify()/notifyAll()方法 进程通讯方法
操作系统有什么内存淘汰策略(不了解操作系统的,说了redis的内存淘汰策略和实现,面试官说差不多就这些)
就是四种页面置换策略添加链接描述
ping用的是什么协议
ICMP协议,是“Internet Control Message Protocol”(Internet控制消息协议)的缩写,是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
redis持久化
AOF:只追加文件 将执行语句直接写入到AOF文件当中
RDB: 会生成数据在内存当中的一个快照,保存为dump.rdb文件
mix 同时使用两种方式,将dump保存在AOF文件头部 添加链接描述
redis缓存穿透和解决方案
https://javaguide.cn/database/redis/3-commonly-used-cache-read-and-write-strategies.html#write-behind-pattern-%E5%BC%82%E6%AD%A5%E7%BC%93%E5%AD%98%E5%86%99%E5%85%A5
rabbitmq的场景和作用
1、任务异步处理。
将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。
2、应用程序解耦合
MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。