Java面试题目

5 篇文章 0 订阅
2 篇文章 0 订阅

Java面试1

1.MYSQL死锁是什么

2.ajax怎么实现同步请求

​ 我们应该知道ajax中根据async的值不同分为同步和异步两种请求方式,当async的值为true时是异步请求方式,相反的,当async的值为false时是同步请求方式,所以对于实现ajax同步请求只需要将async的值设为false就可以了。

3.MYSQL索引是什么,有什么类型

mysql中的索引类型有:1、普通索引;2、唯一索引;3、主键索引;4、组合索引;5、全文索引。普通索引是最基本的索引,它没有任何限制。唯一索引要求索引列的值必须唯一,但允许有空值。

4.线程池的作用

主要作用:避免创建过多的线程时引发的内存溢出问题。因为创建线程还是比较耗内存的,通常来说创建一个线程会默认分配1M的内存。

线程池的主要优势:

  1. 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
  2. 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
  3. 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

5.MYSQL乐观锁与悲观锁

  • 乐观锁(Optimistic Lock):假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。 乐观锁不能解决脏读的问题。

乐观锁, 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。

  • 悲观锁(Pessimistic Lock):假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。

悲观锁,顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

Java面试2

GET和POST的区别

1.GET请求一般用去请求获取数据,

​ POST一般作为发送数据到后台时使用

2.GET请求也可传参到后台,但是其参数在浏览器的地址栏的url中可见,所以隐私性安全性较差,且参数长度也是有限制的

​ POST请求传递参数放在Request body中,不会在url中显示,比GET要安全,且参数长度无限制

Vue的生命周期

生命周期: vue实例从创建到销毁的过程。

声明周期钩子: 就是生命周期事件的别名而已

主要的生命周期函数分类:

创建期间的生命周期函数:

  1. beforeCreate:实例刚在内存中被创建出来,此时,还没有初始化好data 和 methods 属性

  2. created:实例已经完成了模板的编译,但是还没有挂载到页面中

  3. beforeMount:此时已经完成了模板的翻译,但是还有完全挂载到页面中

  4. mounted:此时,已经将编译好的模板,挂载到了页面指定的容器中显示运行期间的生命周期函数:

  5. beforeUpdate:状态更新之前执行此函数,此时 data 中的状态值是最新的,但是界面上显示的数据还是旧的,因为此时还没有开始重新渲染DOM节点

  6. updated:实例更新完毕之后调用次函数,此时 data 中的状态值 和 界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了

    销毁期间的生命周期函数:

  7. beforeDestroy:实例销毁之前调用,在这一步,实例仍然完全可用,当执行 beforeDestroy 钩子函数的时候,Vue实例就已经从运行阶段进入到了销毁阶段;当执行 beforeDestroy 的时候,实例身上所有的 data 和所有的 methods, 以及 过滤器、指令、、 都处于可用状态,此时,还没有真正执行销毁的过程

  8. destroyed:Vue 实例销毁后调用。调用后,vue 实例 指示的所有东西都会解绑,所有的事件监听器会被移除,所有的子实例也会被销毁

    索引的优点与缺点

    索引的优点:
    ① 建立索引的列可以保证行的唯一性,生成唯一的rowId

    ② 建立索引可以有效缩短数据的检索时间

    ③ 建立索引可以加快表与表之间的连接

    ④ 为用来排序或者是分组的字段添加索引可以加快分组和排序顺序

    索引的缺点:
    ① 创建索引和维护索引需要时间成本,这个成本随着数据量的增加而加大

    ② 创建索引和维护索引需要空间成本,每一条索引都要占据数据库的物理存储空间,数据量越大,占用空间也越大(数据表占据的是数据库的数据空间)

    ③ 会降低表的增删改的效率,因为每次增删改索引需要进行动态维护,导致时间变长

    多对多设计有什么好处,以及在实际业务中的使用

    意思就是当存在多对多的关系时,需要涉及到第三张表关系表的设计,而关系表就是存放了存在多对多关系的两张表的外键;

    总结
    在写sql语句中最重要的就是找表之间的关系,只有搞清楚各种表之间的联系,才不容易出错;

    这两句口诀再强调一下:

    一对多,两张表,多的表加外键

    多对多,三张表,关系表加外键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值