面试题1
1.简述一下js原生事件中onpropertychange()事件,在极速浏览器中如何使用该事件?
在对象的value改变时才能生效。
1 <html> 2 <head></head> 3 <body> 4 <div id="msg">输入的文字长度为:14</div> 5 <input id="txt" value=""> 6 <script> 7 //当状态改变的时候执行的函数 8 function handle() 9 { 10 document.getElementById('msg').innerHTML='输入的文字长度为:'+document.getElementById('txt').value.length; 11 } 12 //firefox下检测状态改变只能用oninput,且需要用addEventListener来注册事件。 13 if(/msie/i.test(navigator.userAgent)) //ie浏览器 14 { 15 document.getElementById('txt').onpropertychange=handle 16 } 17 else 18 {//非ie浏览器,比如Firefox 19 document.getElementById('txt').addEventListener("input",handle,false); 20 } 21 </script> 22 </body> 23 </html>
2.Jquery 中的$.get()提交和$.post()提交有什么区别?
详情参阅:http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
get:从指定的资源请求数据
post:向指定的资源提交要处理的数据
GET基本上用于从服务器获得(取回)数据。get方法可能返回缓存数据。
get请求查询的的字符串键值对是在URL中发送的
get请求有长度限制
get请求不应该处理敏感数据时使用
get请求只应当与取回数据
get请求可以被缓存
get请求可以保存在浏览器的历史记录中
get请求可以被收藏成书签
POST也可以用于从服务器获取数据,不过post方法不会缓存数据。并且常用于连同请求一起发送数据。
post请求不会被缓存
post请求不会保存在浏览器历史记录中
post请求不能被收藏为书签
post请求对数据长度没有要求
3.String 和stringBuilder、stringBuffer的区别?
运行速度上了来说:StringBuilder >StringBuffer > String
StringBuilder和StringBuffer都是字符串变量,而String是字符串常量
Stringbuilder Stringbuffer
线程安全 0 1
Synchronized 0 1
适合情况 单线程 多线程
4. &和&& 的区别?
两者的共同点都是完成与功能,不同点是&&有短路与的功能。当 条件A && 条件B的时候,如果条件A不成立,条件B不会进行判断,整个表达式的结果为假。
而如果是使用 条件A & 条件B ,那么即是条件A不成立,整个表达式的结果为假,也要判断一次条件B。
5.通过继承Thread类或者调用Runnable接口都可以实现线程,哪个方法更好?为什么?
实现Runnable接口相对于继承Thread类来说,有如下优势:
(1)适合多个相同程序代码的线程去处理同一资源的情况
(2)可以避免由于java 的单继承特性带来的局限。
(3)增强了程序的健壮性,代码能够给被多个线程共享,代码与数据是独立的。
6.数据库中事务的四大特性?
原子性、一致性、隔离性、持久性
7.Spring中的IOC和AOP分别使用了哪两种设计模式?
IOC:控制反转,将创建对象的的权利交给spring来完成,这个操作是通过工厂来实现的。
AOP:面向切面编程,主要是通过代理模式实现的。
8. springBoot的配置文件有哪几种格式?他们有什么区别?
yml:使用空格划分层级
properties:类似key-value 的形式。
9. 以下哪个是SpringBoot的核心注解?
@SpringBootApplication
10. mybatis 中#{)与${}的区别是什么?
${}是简单的字符串替换,有可能会被SQL注入,不安全
#{}在预处理的时候会用占位符?来代替,是安全的。尽量多使用#{}
11.mybatis 中当实体类中的属性名和表中的字段名不一样,怎么办?12、Redis 支持的数据类型有哪些?
解决方法1
在Mapper.xml映射文件中,写SQL语句时起别名
解决方法2
在Mybatis全局配置文件中开启驼峰命名,注意:前提是数据库中的字段是按驼峰命名规则的两个单词之间加“_”命名的
解决方法3
在Mapper.xml映射文件中使用resultMap自定义映射规则
12. Redis 支持的数据类型有哪些?
String set hash list sortedSet
13. 简述Redis分布式锁的实现原理?
SETNX有可能不安全使用Redis set key:
链接:https://segmentfault.com/a/1190000014128432?tdsourcetag=s_pcqq_aiomsg
14. ActiveMQ 中有哪儿种消息模式?
Queue模式:点对点通信,每个消息只有一个消费者,消息保证送达,离线消费者可以在下次上线后收到之前积压的消息。
Topic模式:
普通订阅:不区分消费者,当前有几个客户端在线,就发送几条广播给客户端。
持久订阅:区分消费者,消费者在线则直接发送消息广播给消费者,消费者离线,只要该消费者有topic登记,就会为其保留消息直至其再次连接后一次性推送,消息可以积压。
15. ActiveMQ 消息持久化方式有哪些?
ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB。
在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试。
消息中心启动以后首先要检查指定的存储位置,如果有未发送成功的消息,则需要把消息发送出去。
16. Apache Shiro的三大核心组件是?
Shiro框架中有三个核心概念:Subject ,SecurityManager和Realms。
链接:https://blog.csdn.net/peterwanghao/article/details/8015571
17.我们经常使用“Mvn Clean Package” 命令进行项目打包,请问该命令执行了哪些动作来完成该任务?
- mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
链接:https://blog.csdn.net/zhaojianting/article/details/80324533
链接: https://blog.csdn.net/zhaojianting/article/details/80321488