面试题 随笔
1.重写与重载的区别
答:重写一般发生在继承关系的子类中,子类中定义了一个方法,其方法名,返回值类型,参数和父类的中的某个方法一致,此时就是子类中重写了父类的同名方法。
重载发生在同一个类中,存在多个方法的方法名相同,但是参数列表不同,参数列表不同指的是参数的个数,参数类型或者参数的顺序不同。
2.重定向和转发的区别
使用的对象:转发为request 重定向为response
发起者:转发为服务器 重定向为浏览器
浏览器的请求次数:转发为1次 重定向为2次
浏览器是否感知:使用转发是浏览器是不知道的 而重定向是通过浏览器的
浏览器获取响应的次数:转发为1次 重定向为2次
地址栏是否改变:转发不会改变 重定向会改变
3.常见注解描述及用法
@RequestMapping
用来处理请求地址映射的注解
@Conntroller
标记的这个类为Spring MVC Conntroller对象 负责处理由DispatcherServlet 分发的请求
@ResponseBody
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
@Autowired
@Resource和@Autowired 都是做bean的注入时使用
@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上
@RequestParam
@requestParam主要用于在SpringMVC后台控制层获取参数
4.java中equals()与==的区别
1.==判断的是两个变量或者实例是不是指向同一个内存空间,equals()判断的是两个变量或者实例所指向的内存空间的值是否相同。
2.==是对内存地址的比较,equals()是对字符串内容的比较
3.==指引用是否相同,equals()是指值是否相同
5.String,StringBuffer,StringBuilder有什么不同
1.长度是否可改变
String是被final修饰的,长度不可改变,StringBuffer 和 StringBuilder 类的对象 能够被多次的修改,并且不产生新的未使用对象。调用StringBuffer的append方法来改变字符串的长度。
2,执行效率
StringBuilder>StringBuffer>String
3.应用场景
操作少量的数据用String
单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
StringBuffer中的方法大都采用了 synchronized 关键字进行修饰,所以是线程安全的而StringBurilder相对来说是线程不安全的。
6.四种修饰符的访问权限的区别
访问权限 类 包 子类 其他包
public √ √ √ √
protected √ √ √
default √ √
private √
7.常见的http状态码
200:成功,表示成功响应的状态码,所请求的资源发回客户端
302:重定向,新的URL会在response中的location中返回,浏览器会自动使用新的URL发出新的request
304:缓存,代表上次访问的文档已经被缓存,还可以继续使用
400:客户端请求语法错误,不能被服务器所理解
403:服务器收到请求,但是拒绝提供服务
404:请求资源不存在(URL输入错误)
500:服务器出错
503:服务器不能处理客户端的请求
8.什么是负载均衡
1.大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待的时间
2.单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理完成之后将结果汇总返回给用户,系统处理能力大幅度提高
9.简单介绍下JS选择器
JS选择器的主要作用是用来获取HTML页面中的元素
共有四种分别为
1.getElementById() : 通过id值获取元素内容
2.getElementByName() : 通常用于获取form标签或name属性的标签的获取
3.getElementByClassName() : 通过Class属性获取元素内容
4.getElementByTagName() : 通过标签名称获取元素内容
10.spring开发步骤
1.导入spring开发的基本包坐标 (spring-context)
2.编写Dao接口和实现类
3.创建spring核心配置文件(ApplicationContext.xml)
4.在spring配置文件中配置接口的实现类
5.使用spring的API获取Bean实例