java笔试题含答案总结五

这篇博客主要探讨了Java编程中的基础知识,包括集合框架的继承关系、线程状态管理以及HTTP响应码的含义。此外,还讲解了JSP和Servlet的区别、JSP内置对象的作用以及它们的四种作用域。在Web开发中,详细阐述了session在客户端禁用cookie情况下的处理方法,并对比了懒汉式和饿汉式单例模式的区别。
摘要由CSDN通过智能技术生成

1、正确的是()
A、LinkedList 继承自 List
B、TreeMap 继承自 HashMap
C、HashSet 继承自 AbstractSet
D、AbstractSet 继承自 Set

答案:C

LinkedList 实现 List 接口
TreeMap 继承自 AbstractMap
AbstractSet 实现 Set 接口

2、ArrayList list=new ArrayList(10);中的list扩容几次?
A、0
B、1
C、2
D、3

参考答案 答案:A

分析:

该语句只是申明和实例了一个 ArrayList,指定了容量为 10,未扩容。

3、哪种方式不会使线程进入阻塞状态()
A、sleep()
B、suspend()
C、wait()
D、yield()

参考答案 答案:D
yield() 方法会是线程进入就绪状态 suspend() 方法作用是挂起线程,但已作废

4、创建进程需要()
A、由调度程序为进程分配 CPU
B、建立一个进程控制块
C、分配内存
D、分配文件描述符

参考答案 答案:BC
任务调度的单位是线程
如果未涉及对文件的操作,可能不会分配文件描述符

5、jsp和servlet有什么区别?

Servlet

一种服务器端的Java应用程序
由 Web 容器加载和管理
用于生成动态 Web 内容
负责处理客户端请求

Jsp

是 Servlet 的扩展,本质上还是 Servlet
每个 Jsp 页面就是一个 Servlet 实例
Jsp 页面会被 Web 容器编译成 Servlet,Servlet 再负责响应用户请求

区别
Servlet 适合动态输出 Web 数据和业务逻辑处理,对于 html 页面内容的修改非常不方便;Jsp 是在 Html 代码中嵌入 Java 代码,适合页面的显示
内置对象不同,获取内置对象的方式不同

6、jsp有哪些内置对象?作用分别是什么?

request:;客户端的请求信息:Http协议头信息、Cookie、请求参数等
response:用于服务端响应客户端请求,返回信息
pageContext:页面的上下文 session:客户端与服务端之间的会话
application:用于获取服务端应用生命周期的信息
out:用于服务端传输内容到客户端的输出流
config:初始化时,Jsp 引擎向 Jsp 页面传递的信息
page:指向 Jsp 页面本身
exception:页面发生异常,产生的异常对象

7、jsp的4种作用域?

page (当前页面作用域):相当于 Java 关键字中 this。在这个作用域中存放的属性值,只能在当前页面中取出。对应PageContext 类

request (请求作用域):范围是从请求创建到请求消亡这段时间,一个请求可以涉及的多个页面。jsp:forward 和 jsp:include 跳转到其他页面,也在作用域范围。对应 ServletRequest 类 session (会话作用域):范围是一段客户端和服务端持续连接的时间,用户在会话有效期内多次请求所涉及的页面。

session会话器,服务端为第一次建立连接的客户端分配一段有效期内的属性内存空间。对应 HttpSession 类

application(全局作用域):范围是服务端Web应用启动到停止,整个Web应用中所有请求所涉及的页面。当服务器开启时,会创建一个公共内存区域,任何客户端都可以在这个公共内存区域存取值。对应 ServletContext 类

8、客户端禁止cookie,session还能用吗?

一般默认情况下,在会话中,服务器存储 session 的 sessionid 是通过 cookie 存到浏览器里。

如果浏览器禁用了 cookie,浏览器请求服务器无法携带 sessionid,服务器无法识别请求中的用户身份,session失效。

但是可以通过其他方法在禁用 cookie 的情况下,可以继续使用session。

通过url重写,把 sessionid 作为参数追加的原 url 中,后续的浏览器与服务器交互中携带 sessionid 参数。
服务器的返回数据中包含 sessionid,浏览器发送请求时,携带 sessionid 参数。
通过 Http 协议其他 header 字段,服务器每次返回时设置该 header 字段信息,浏览器中 js 读取该 header 字段,请求服务器时,js设置携带该 header 字段。

9、http响应码301和302代表的是什么?有什么区别?
301 表示被请求 url 永久转移到新的 url;302 表示被请求 url 临时转移到新的 url。
301 搜索引擎会索引新 url 和新 url 页面的内容;302 搜索引擎可能会索引旧 url 和 新 url 的页面内容。
302 的返回码可能被别人利用,劫持你的网址。因为搜索引擎索引他的网址,他返回 302 跳转到你的页面。

10、JavaScript中null、undefined有什么区别?

参考答案
赋值:null 表示定义了赋值为空值 null,undefined 表示未定义或者定义了未赋值
数据转换:null,在做数值转换时会被转换为 0,undefined 会被转换为 NaN

11、懒汉式和饿汉式的区别?

饿汉式与懒汉式的区别:

饿汉式是类一旦加载,就把单例初始化完成,保证 getInstance() 方法被调用时的时候,单例已经初始化完成,可以直接使用。
懒汉式比较懒,只有当被调用 getInstance() 方法时,才会去初始化这个单例。

1、饿汉式
public class TestSingleton {

    private static final TestSingleton instance = new TestSingleton();
    
    private TestSingleton() {
    }
    
    public static TestSingleton getInstance() {
        return instance;
    }
    
}



4、懒汉式:双重检查 + 对类加锁

public class TestSingleton {

    private static volatile TestSingleton instance;
    
    private TestSingleton() {
    }
    
    public static TestSingleton getInstance() {
        if (instance == null) {
            synchronized (TestSingleton.class) {
                if (instance == null) {
                    instance = new TestSingleton();
                }
            }
        }
        return instance;
    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值