首页
留言
关于
统计
友情链接
Search
1
java面试题05
244 阅读
2
java魔方矩阵
109 阅读
3
Java中的包
96 阅读
4
java中接口的作用
93 阅读
5
java中this关键字
68 阅读
随笔
笔记
计算机基础
JAVA
web前端
分享
经验
软件
其他
登录
/
注册
Search
标签搜索
JAVA
笔记
面试
五子棋
游戏
阿涛
累计撰写
23
篇文章
累计收到
9
条评论
首页
栏目
随笔
笔记
计算机基础
JAVA
web前端
分享
经验
软件
其他
页面
留言
关于
统计
友情链接
搜索到
21
篇与
JAVA
的结果
2022-07-27
java面试题05
1.Mybatis中的动态sql标签有哪些if:当参数满足条件才会执行某个条件choose、when、otherwise:choose标签按顺序判断其内部when标签中的test条件是否成立,如果有一个成立。则choose结束,如果所有when条件都不成立,则执行otherwise中的sql,类似与java中的switch语句。where:where标签只有一个以上的if条件满足的情况下才会去插入where关键字,而且也会根据语法去掉开头的and或orset:set标签会动态前置set关键字,同时也会消除无关的逗号。trim:用来动态拼接sql语句,prefix以什么开头,suffix以什么结尾,prefixOverrides覆盖掉指定开头内容,suffixOverrides覆盖掉指定结尾内容foreach:对集合、数组或map进行遍历bind:bind标签可以从OGNL(对象图导航语言)表达式中创建一个对象并将其绑定到上下文。2.SpringBoot启动原理(SpringBoot自动配置原理)@SpringBootApplication:启动类注解@EnableAutoConfiguration:自动配置注解@import(AutoConfigurationImportSelector.class):自动导入配置文件的选择器getCandidateConfigurations()方法获取所有候选配置通过springfactories文件获取配置类的位置@ConditionOnClass条件,不成立不加载配置类,成立获取配置类,在上层方法中循环封装为properties对象供我们使用。3.事务的四大特性是什么原子性:一个事务中包括多个步骤,要不都执行,要么都不执行一致性:事务在执行前后,数据在逻辑上保持一致(转账)隔离性:当多个事务共同操作同一段数据的时候,一个事务对另外一个事务的影响持久性:只要事务结束了,对数据库中数据的改变都将永久的保存下来,任何设备故障、断电等问题都不会影响数据的存储。原子性和一致性的区别(多线程下(两个人同时向一个人转账))4.脏读、幻读、不可重复读是什么脏读:一个事务读取了已被另一个事务修改但尚未提交的数据幻读:在同一事务中,当同一查询多次执行的时候,由于其他插入操作事务的提交,导致每次返回不同的结果集不可重复读:在同一个事务中,同一个查询,在t1时刻和t2时刻查询出了不同的结果。脏读和不可重复读的区别: 脏读是某一事务读取了另一个事务未提交的脏数据,而不可重复读则是同一个事务范围内多次查询同一条数据却返回了不同的数据值,这是由于查询间隔期间。该条数据被另一个事务修改并提交了。幻读和不可重复读的区别: 幻读和不可重复读都是读取了另一个事务中已经提交的数据,不同的是不可重复读多次查询的都是同一个数据项,针对的是对同一行数据的修改或删除,而幻读针对的是一个数据整体,主要是insert操作。5.事务的4个隔离级别是什么读未提交 一个事务可以读到另外一个事务还没有提交的数据。读已提交 一个事务只能读到其他事务提交以后的数据。可重复读 当前事务之外的任何修改,对于当前事务而言都是不可见。当前事务只能看到自己的修改。所以避免了 不可重复读 现象,也避免了 幻读 现象。串行化 在该级别之下,当多个事务操作同一张表时,必须时一个一个操作,不能同时进行。
2022年07月27日
244 阅读
1 评论
0 点赞
2022-07-24
java面试题04
1.SpringMVC工作流程DispatcherServlet接受到用户请求请求获取处理器映射器处理器映射器找到具体处理器,返回handlerDispatcherServlet根据处理器请求处理器适配器适配器执行handler,得到ModelAndView处理器适配器将ModelAndView返回到DispatcherServletDispatcherServlet将ModelAndView传给视图解析器视图解析器解析后返回具体的视图DispatcherServlet对视图进行渲染DispatcherServlet响应用户2.你常用的SpringMVC注解有哪些@RestController @ResponseBody+@Controller@RequestParam@RequestBody@RequestMapping@ResponseBody @返回结果是json格式@PathVaribale3.你对ioc的理解?ioc容器帮我们管理组件之间的依赖关系,比如Service中需要使用dao,以前我们是直接在Service里面实例化dao对象的,这样当要替换dao实现的时候,就必须修改Service中的代码。有了ioc容器之后,只要在配置中修改,就可以替换Service中的dao限制,达到上下层解耦的目的。4.你对aop的理解?面向切面编程,为解耦而生切面、切点、引入、目标对象、AOP代理、织入是通过预编译和运行期动态代理的方式实现不修改源代码的情况下给程序动态统一添加功能的技术。AOP技术利用一种“横切”的技术,将影响多个类的公共行为封装到一个可重用的模块中,称为切面。所谓切面,就是与业务无关,却为业务模块所共同调用的逻辑,将其封装起来便于减少系统的重复代码,降低模块的耦合度。利用AOP可以对业务逻辑的各个部分进行隔离,从而使业务逻辑各部分之间的耦合度降低5.Mybatis中,#和$的区别?底层使用preparestatement,会进行预编译,会自动拼接引号,防止了sql注入$底层使用的是statement,引用参数是不做任何处理,直接将值拼接在sql语句中,存在sql注入问题
2022年07月24日
28 阅读
0 评论
0 点赞
2022-07-23
java面试题03
1.Servlet的生命周期是什么创建时机:当Web容器启动时或者第一次访问时,容器会负责创建Servlet实例创建后调用init()方法初始化。该方法在Servlet生命周期只调用一次。每次Servlet接受到请求的时候,调用service()方法处理客户端请求。该方法检查HTTP请求类型,并调用doGet、doPost等具体方法。在每次卸载web应用时,Servlet容器调用destroy()方法。该方法在Servlet生命周期只会被调用一次。最后,Servlet由垃圾回收器回收2.转发和重定向的区别转发是在服务端完成的;重定向是在客户端完成的转发是同一次请求;重定向是两次不同请求重定向两次请求不共享数据,转发一次请求共享数据(在request级别使用信息共享)转发地址栏没有变化,重定向地址栏有变化重定向可以跳转任意URL,转发只能在当前web应用中的资源之间进行3.Session和cookie的区别保存的位置不同cookie保存在浏览器端,session保存在服务器端,所以session安全性高于cookie。session会给服务器带来压力,cookie不会给服务器带来压力。使用方式不同cookie可以设置保存时间,那么cookie就会保存到客户端硬盘中,没有过期就可以使用,过期就删除。如果没有设置cookie保存时间,默认关闭浏览器,删除cookie。session,如果请求中存在sessionid,就会找到对应的session对象,如果不存在,服务器端就会创建新的session对象,并将sessionid返回给浏览器,将其存在cookie中。存储内容不同cookie只能存储字符串,session可以存储任意类型存储大小cookie只能存储4k内容,session没有限制4.get请求方式和post请求方式的区别get请求一般用来获取数据,post一般用来提交数据get请求参数会放在url中,所以安全性较差,请求的数据长度有限制,post请求没有长度限制,请求是放在Body中get请求可以被缓存,也会保存在浏览器的历史记录中,post请求不会被缓存get请求常见是通过url地址请求,post常见是from表单提交get产生一个tcp数据包,post产生两个tcp数据包对参数的数据类型,get只接受ASCII字符,而post没有限制5.ServletContextListener的作用监听Web应用的部署和卸载
2022年07月23日
30 阅读
0 评论
0 点赞
2022-07-22
java面试题02
1.HashMap的put过程table是否是一个空数组,是则inflateTable(threshold)判断key是否是null,是则putForNullKey(value)hash(key)计算哈希码(高位低位移位异或,尽可能增大所有位的影响)indexFor(hash, table.length)(hash & (length)-1)哈希码按位与length-1,找到桶位判断找到的桶位是否为null不是null,则e=e.next,遍历桶位,拿新key的hash和内容与旧key的hash值和内容比较,如有相等的,则新key的value覆盖旧的value,返回旧的value。遍历完没有相等的则继续addEntry。是null,addEntry头插法插入entry是null,则addEntry头插法插入entry是null,则addEntry头插法插入entry 先判断size是否大于等于阈值,是则resize扩容,new一个newTable,transfer转移 没超过阈值,则creatEntry创建键值对,size++ Entry e = table[桶位]把桶位原先第一个元素赋给e table[桶位] = new Entry<>(hash ,key, value, e)新创建的entry放到桶位,并且新创建的entry的next只想原先的第一个e,头插法完成2.HashMap的容量为什么必须是2的次方数找桶位 hash & (length - 1)2的次方数减1,二进制是纯1,找桶位时,hash按位与可以散列到所有桶位,充分利用桶位。假如容量是10,二进制1010,减1后1001,那么按位与永远散列不到0010即2号桶位3.HashMap1.7计算哈希码为什么要同时用到高低位1.7中哈希值右移20位后与自身异或让高位参与哈希值计算,增大高位的影响,减少哈希碰撞的几率4.在HashMap中同一个桶位中的元素,哈希码都是一样的码?为什么?不是,哈希码不一样,但是与(length-1)按位与之后找到的桶位可能是一样的。哈希码不一样,高位低位异或之后低位一样,则会到同一个桶位。5.在HashMap扩容时,同一个桶位中的元素会被分配到新数组中的什么位置,为什么?原位和原位+数组原长度的位置例,原长度16,扩容后32,按位与15,按位与31,1111和11111低四位一样,所以重新按位与之后只会差16
2022年07月22日
28 阅读
0 评论
0 点赞
2022-07-21
java面试题01
1.ArrayList和LinkedList的区别底层数据结构不同ArrayList是基于数组的LinkedList是基于双向链表的效率不同数组元素在内存中是连续存放的,所以ArrayList查询效率高,插入删除效率低链表元素在内存中存放的特点是不连续的,所以LinkedList插入删除效率高,查询效率低2.HashMap和HashTable的区别相同点:HashMap和HashTable都实现了Map、Cloneable(可克隆)、Serializable(可序列化)三个接口不同点:底层数据结构不同,jdk1.7底层都是数组+链表,jdk1.8 HashMap加入了红黑树Hashtable不允许键值为null,HashMap允许键值为nullHashtable继承的是Dictionary类,而HashMap继承的是AbstractMap类同步性不同,Hashtable是同步的(synchronized),HashMap不是同步的,因此Hashtable是线程安全的,HashMap是线程不安全的添加键值对时采用的hash值算法不同,HashMap采用自定义的hash算法,Hashtable直接采用hashCode()初始容量不同,HashMap初始容量为16,Hashtable初始容量为11,两者的负载因子都是0.75扩容机制不同,当已用容量>总容量*负载因子时,HashMap扩容规则为当前容量翻倍,Hashtable扩容规则为当前容量翻倍+1支持遍历种类不同迭代器不同部分API不同3.sleep和wait的区别sleep()是线程类Thread的静态方法,wait是属于Object的成员方法sleep只释放CPU没有释放锁,wait释放了锁wait只能通过notify或notifyAll来唤醒sleep可以在任何地方使用,wait只能在同步控制方法或同步控制块中使用4.接口和抽象类的区别构造方法:抽象类有构造方法,用于子类实例化使用。接口没有构造方法。成员变量:抽象类的成员变量可以是变量也可以是常量。接口的成员变量只能是常量,默认修饰符public static final成员方法:抽象类的成员方法可以是抽象的也可以是非抽象的,接口在1.7中方法只能是抽象的,1.8后可以写default和static方法5.final、finalize和finally的区别final修饰变量,变量在初始化以后不能被修改final修饰方法,方法不能被子类重写final修饰类,类不能被继承finalize方法:当一个对象是不可达对象的时候,GC会在某一个不确定的时候回收该对象,在回收该对象之前,JVM会调用该对象finalize方法以释放该对象占用的其他资源,不建议使用finalize方法,因为finalize的执行时机是不确定的finally用在try-catch或try块之后,无论try或catch中是否有异常,其中的代码一定会执行。如果try或catch中有return语句,则finally会先执行然后再return
2022年07月21日
19 阅读
0 评论
0 点赞
1
2
...
5