一、SpringMVC和Springboot有啥区别
1.SpringMVC和SpringBoot都是Spring的一部分,且两者都是由IOC提供了依赖注入的容器,由AOP解决面相切面编程(IOC和AOP后续会讲到),然后在此二者基础上衍生的高级功能。SpringMVC的配置比Springboot的配置要复杂得多,各种xml和properties配置文件,处理起来比较繁琐;Springboot他遵循约定优于配置,啥意思呢,就是全都是用默认的配置,这样极大地降低了Sring使用的门槛。
2.Springboot的涉及面比SpringMVC要广,Springboot不仅可以集成SpringMVC,还可以集成JPASecurity等,如下图所示:
3.SpringMVC和Sringboot都属于Spring,SpringMVC是基于Spring的一个MVC框架,Springboot是基于Spring的一套快速开发整合包。
总结:Spring最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个MVC框架(一些用Spring解耦的组件),用开发web应用(SpringMVC)。然后有发现每次开发都要搞很多依赖,写很多样板代码很麻烦,于是搞了一些懒人整合包(starter),这套就是SpringBoot。
二、session和cookie的区别
1.session是存在服务器端的,cookie是存在浏览器端。
2.cookie相对于session是不安全的。因为cookie是存在浏览器端,别人可以通过分析本地的cookie进行cookie欺骗,如果考虑安全问题,应该使用session。
3.session会在一定时间内存储在服务器上。如果用户量较大,会影响服务器性能,考虑到服务器性能因素,可以使用cookie。
4.一般单个cookie不能超过4k。很多浏览器设置最多保存20个cookie,而session是无限量的。
三、在HashMap中是如何比较“key”的值的
在HashMap比较两个key值时,首先使用equals进行比较两个key的值,如果不同则认为是两个不同的key;如果相同,再比较两个key的hashcode,如果不同,则认为是两个不同的key;如果相同则认为是两个相同的key,此时的value2会覆盖value1的值。
四、如果main方法被声明为private会怎样?
我们想一下,如果如果类中没有main方法,会怎么样?当然是没啥问题!
如果将修饰符改为private,其实也没啥问题。
如果将修饰符改为private,就相当于我们自己定义了一个方法,名字叫main,当我们运行这个类的时候,会提示我们“找不到main方法,请将main方法定义为publicstaticvoidmain(String[]args)”,因为这里只有我们自定义的一个privatemain方法,而没有系统默认的publicmain方法。
如果这时我们再写一个publicstaticvoidmain(String[]args),这时候也会报错,因为已经存在了一个privatestaticvoidmain(String[]args),同一个类中不能存在方法名和参数相同的两个方法,因为重载的定义为“方法名相同,参数不同的两个方法叫重载”,所以和修饰符无关。
五、char类型的变量能不能存储一个中文?为什么
答案是可以的,但是两个中文不行。因为char占两个字节,一个中文也占两个字节,所以是可以存储的。
六、a=a+b和a+=b的区别
a=a+b是先进行“+”运算,然后进行赋值运算,如果当a(short)与b(int)的类型不同时,会报错,若进行强转,可能会导致精度丢失。
a+=b中,“+=”是一个运算符,而不是两个,所以在运算时会进行自动类型转换。
总结一下,在两个变量的数据类型一样时:a+=b和a=a+b是没有区别的。
但是当两个变量的数据类型不同时,就需要考虑一下数据类型自动转换的问题了。
也就是涉及到精度了。
面试总结:项目中尽量多思考,迎难而上,如碰到复杂的性能,内存泄露等问题的问题,往往是提升自己的机会,千万要仔细研究解决,可以参考其他解决类似问题的文章和实践经验,对技术深度的提升是很大的,关键时候可以让你的面试官突然觉得面耳目一新。
很多技术人员的项目和技术相对单一,长久以往,容易造成技术思路和视野的狭窄,接触不到行业最新思路和动态或者当前疑难问题的最佳解决方案。
以上就是动力节点java学院小编分享的“2019年最新Java网络工程师面试总结”的内容,希望能够帮助到大家,更多java最新面试题请继续关注动力节点java学院官网,每天会有精彩内容分享与你。
相关面试题推荐
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习