1. Html 的form表单中,input 有哪些类型,都是做什么用的?
type类型包含text/password/chechbox(选择多选)/radio(单选)/file(文件提交项)/button()普通按钮)/submit(提交按钮)/reset(重置)
name需要通过name属性指定表单提交时的参数名称
value指定按钮显示的文本
2. 简述MVC模型的含义及作用?
MVC 指一种软件设计模版,分为C(Controller)控制层把请求分类分别传入业务层处理;M(Model)业务持久层层内置一个map集合;V(view)视图,指经过业务处理得到的ModelandView交给视图解析器之后的展示作用,即:数据展示作用.
实现过程:
Spring MVC 是 MVC 架构模式中的一种完美实现,简化了 Java WEB 中基于MVC架构的编程过程,是 Spring 中 WEB 应用模块,原理为:当客户浏览器发送请求之后,经过过滤器 filter 过滤之后,传到前端控制器 (dispatcher Servlet),然后由 diapatcherServlet 发送到映射处理器,通过Handler mapping seletor 得到url映射,返回给 dispatcherServlet, 再由 dispatcherServlet 发送给执行链execution chain,在执行链中 经过拦截器(handler interceptors),如是须拦截的对象会被拦截,在拦截器中也可以设置释放或者不释放,如果不拦截则直接释放给后端处理器(controller),controller 与业务层及数据库相连接,产生 ModelAndView 对象,返回dispatcherServlet, 中间经过拦截器再次拦截处理,再由 dispatcherServlet 交与视图解析器viewResolver 进行试图解析,返回view对象给 dispatcherServlet, 从而发送浏览器进行页面展示,中途会再次经过 filter 过滤器进行过滤.这样就完成了一次请求响应的SpringMVC流程.
3. 面向对象编程的特点是什么?
面向对象编程的特点是比面向过程编程更具有人性化,更具备了人的思维,
4. 简述JAVA的垃圾回收机制?
5. public/protected/private的区别?
6. int和integer的区别?
7. 写出三种以上java常用的集合类型?
**collection**
**list**:接口,可重复集合,
**ArrayList** 实现方法:数组实现,具有空间连续性,查询速度快,可直接访问下标.增加删除比较慢,增删之后需要将后面的数据向后移或向前移
**LinkedList** 实现方法:链表实现,是节点关联,查询速度慢,需要通过上一个查询下一个,增加删除快,链表增加直接将上一个指向新数据,下一个也指向新数据
**set** :接口,不可重复集合,不是线性结构,没有下标,找元素是通过元素本身来找的
实现类:**HashSet** 散列存放元素且元素唯一,不允许重复.
**TreeSet** 不能存放重复对对象,但会自动排序,如果存放的对象不能排序则会报错,所以存放的对象必须指定排序规则。 排序规则包括自然排序和自定义排序
**Map** 接口,采用键值对的方式存放数据,能够通过键获取对应的值,Map<k,v>,必须有泛型:
**HashMap**内部由数组实现,是当前查询速度最快的数据结构.当key元素hashcode值相同,但是equals比较不同时就会在HashMap中产生链表,影响查询性能
如何尽可能的避免出现链表?重写hashCode和equals方法
**LinkedHashMap**有序的Map,使用Map接口的哈希表和链表实现,具有可预知的迭代顺序
**TreeMap** 所有的元素都保持着某种固定的顺序,自然顺序或自定义顺序遍历键,TreeMap没有调优选项,因为该树总处于平衡状态。