Tips:预约卓跃免费试听课程,点击文末“
JAVA精选每周一练
1.什么是值传递和引用传递?
点击下方空白处获得答案
▼
【解析】
对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。
对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。
2.概括的解释下线程的几种可用状态
点击下方空白处获得答案
▼
【解析】
线程在执行过程中,可以处于下面几种状态:
就绪(Runnable):线程准备运行,不一定立马就能开始执行。
运行中(Running):进程正在执行线程的代码。
等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
睡眠中(Sleeping):线程被强制睡眠。
I/O 阻塞(Blocked on I/O):等待 I/O 操作完成。
同步阻塞(Blocked on Synchronization):等待获取锁。
死亡(Dead):线程完成了执行。
3.Java 中的 HashMap 的工作原理是什么?
点击下方空白处获得答案
▼
【解析】
Java 中的 HashMap 是以键值对(key-value)的形式存储元素的。HashMap 需要一个 hash 函数,它使用 hashCode()和 equals()方法来向集合/从集合添加和检索元素。当调用 put()方法的时候, HashMap 会计算 key 的 hash 值,然后把键值对存储在集合中合适的索引上。
如果 key已经存在了, value 会被更新成新值。HashMap 的一些重要的特性是它的容量(capacity),负载因子(load factor)和扩容极限(threshold resizing).
4.HashMap 和 Hashtable 有什么区别?
点击下方空白处获得答案
▼
【解析】
HashMap 和 Hashtable 都实现了 Map 接口,因此很多特性非常相似。但是,他们有以下不同点:
HashMap 允许键和值是 null,而 Hashtable 不允许键或者值是 null。
Hashtable 是同步的,而 HashMap 不是。因此, HashMap 更适合于单线程环境,而 Hashtable适合于多线程环境。
HashMap 提供了可供应用迭代的键的集合,因此, HashMap 是快速失败的。另一方面,Hashtable 提供了对键的列举(Enumeration)。
一般认为 Hashtable 是一个遗留的类。
5.简述 AOP 和 IOC 概念
点击下方空白处获得答案
▼
【解析】
AOP: Aspect Oriented Program, 面向(方面)切面的编程;Filter(过滤器)也是一种 AOP. AOP 是一种新的 方法论, 是对传统 OOP(Object-Oriented Programming, 面向对象编程) 的补充. AOP 的主要编程对象是切面(aspect),而切面模块化横切关注点.可以举例通过事务说明.
IOC: Invert Of Control, 控制反转. 也成为 DI(依赖注入)其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源.作为回应, 容器适时的返回资源. 而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源. 这种行为也被称为查找的被动形式.
6.Spring MVC 比较 Struts2
点击下方空白处获得答案
▼
【解析】
①. Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter
②. Spring MVC 会稍微比 Struts2 快些. Spring MVC 是基于方法设计,而 Sturts2 是基于类, 每次发一次请求都会实例一个 Action.
③. Spring MVC 使用更加简洁, 开发效率 Spring MVC 确实比 struts2 高:支持 JSR303, 处理 ajax 的请求更方便
④. Struts2 的 OGNL 表达式使页面的开发效率相比 Spring MVC 更高些
7.Struts2 中的默认包 struts-default 有什么作用?
点击下方空白处获得答案
▼
【解析】
①. struts-default 包是 struts2 内置的,它定义了 struts2 内部的众多拦截器和 Result 类型,而 Struts2 很多核心的功能都是通过这些内置的拦截器实现,如:从请求中把请求参数封装到 action、文件上传和数据验证等等都是通过拦截器实现的。当包继承了 struts-default 包才能使用 struts2 为我们提供的这些功能。
② .struts-default 包 是 在 struts-default.xml 中 定 义 ,
struts-default.xml 也是 Struts2 默认配置文件。Struts2 每次都会自动加载 struts-default.xml 文件。
③. 通常每个包都应该继承 struts-default 包。
8.Struts2拦截器的生命周期与工作过程 ?
点击下方空白处获得答案
▼
【解析】
每个拦截器都是需要实现 Interceptor 接口
> init():在拦截器被创建后立即被调用, 它在拦截器的生命周期内只被调用一次. 可以在该方法中对相关资源进行必要的初始化;
> intercept(ActionInvocation invocation):每拦截一个动作请求,
该方法就会被调用一次;
> destroy:该方法将在拦截器被销毁之前被调用, 它在拦截器的生命周期内也只被调用一次;
9.jquery 对象和 dom 对象如何转换?
点击下方空白处获得答案
▼
【解析】
1. jquery 转 DOM 对象:
jQuery 对象是一个数组对象,可以通过[index]的丰富得到 DOM 对象还可以通过 get[index]去得到相应的 DOM 对象。
2. DOM 对象转 jQuery 对象:
$(DOM 对象)
10.HTTP 请求的 GET 与 POST 方式的区别。
点击下方空白处获得答案
▼
【解析】
可以从以下几个方面去回答:
1. 携带请求参数的方式
GET: 通过请求行携带参数, 参数会显示在地址栏
POST: 通过请求体来携带参数, 参数不会显示在地址栏
2. 服务器端处理请求的方法
GET: 会调用 Servlet 的 doGet()来处理请求
POST: 会调用 Servlet 的 doPost()来处理请求
3. 数据大小与安全性
GET: 大小有限制(小于 2k), 不安全
POST: 大小没有限制, 安全