JAVA面试

1.springboot加载机制

.run方法

实例化springbootapplication

加载环境

加载配置环境

创建上下文

启动上下文

刷新上下文

启动监听器

Java虚拟机优化

full gc      gc次数

full gc产生原因

1.老年代空间多

2.持久代空间分配少

3.自己调用gc

gc监听器

1.日志

2.jmap查看堆空间

3.测试如果gc时间和执行次数可以,就不用优化

4.需要测试,找到数值大小    对应合适的分配

JVM参数

Xmx     Xms调节堆得大小

年轻代老年代1:2可以适当调节。

线程分配堆栈1m           实际上可以适当分配

GC中的垃圾回收算法

1.标记复制

将内存平均分成两份,一份进行存储数据一份备份

2.标记清除

先进行标记该回收的对象,一次性清除

3.标记整理

后者将对象移到一块内存,然后进行清除

4.分代算法

年轻代,老年代

程序计数器进行计算对象是不是该被回收

通过可达性分析进行清除对象。

mysql特性  优点

功能强大

易扩展

支持面向对象

支持多种开发软件

存储量大

执行速度快

执行一条语句过程

通信协议

查看缓存

词法分析语法分析

查看优化器

存储引起

返回数据

mybaits在springboot中使用步骤

引入依赖

配置数据库数据application.pro自动封装连接数据库

创建mappper文件和Dao文件从数据库中拿数据

mybaits的设计模式

工厂模式

单例模式

装配者模式

代理模式

mybaits是什么

mybaits是一套开源框架。appach

mybaits的好处是封装了连接的数据库的操作,让开发者只关注sql本身

mybaits是免费的。

mybaits与spring框架相处融洽。

hashmap是线程不安全的,put使用

多线程使用put,容易被重写

扩容容易导致链表循环

比如说挂链a-b

扩容b-a但是原先a->b所以发生链表循环。

innodb和myIsm区别

数据结构B+树    B树

聚簇索引     非聚簇索引

行锁          表锁

select count*慢       快

支持事务      不支持事务

arraylist扩容

找到比原先数组大的空间     复制过去,,,,将之前清除

指针碰撞

分配对象空间时候,使用内存区和未使用内存区通过一个指针分隔开,每分配给对象空间,指针会移动,指针碰撞。

空闲列表

使用内存区和未使用内存区是交叉的,每次分配对象,选择一个较大的内存区进行分配空间。

进程线程生命周期

就绪运行阻塞(开始,消亡)

对象的生命周期

1.对象被创建      堆

2.对象的使用

对象分为                头、实体、尾

头指向类的指针

实体就是属性方法

3.对象消亡

通过gc回收。

继续讲解java面试题,反复练习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人还是要有梦想的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值