一、题目

选自牛客网

1.后端获取数据,向前端输出过程中,以下描述正确的是
A.对于前端过滤过的参数,属于可信数据,可以直接输出到前端页面
B.对于从数据库获得的数据,属于可信数据,可以直接输出到前端页面
C.对于从用户上传的Excel等文件解析出的数据,属于可信数据,可以直接输出到前端页面
D.其它选项都不属于可信数据,输出前应该采用信息安全部发布的XSSFilter做进行相应编码


2.Which method you define as the starting point of new thread in a class from which n thread can be execution?
下列哪一个方法你认为是新线程开始执行的点,也就是从该点开始线程n被执行。
A.public void start()
B.public void run()
C.public void int()
D.public static void main(String args[])
E.public void runnable()


3.Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,以下过程属于初始化阶段是()。
A.加载Servlet类及.class对应的数据
B.创建servletRequest和servletResponse对象
C.创建ServletConfig对象
D.创建Servlet对象


  1. 装箱、拆箱操作发生在: ()
    A.类与对象之间
    B.对象与对象之间
    C.引用类型与值类型之间
    D.引用类型与引用类型之间

5.Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( )
A.Java反射主要涉及的类如Class, Method, Filed,等,他们都在java.lang.reflet包下
B.通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法
C.通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员
D.Java反射机制提供了字节码修改的技术,可以动态的修剪一个类
E.Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多
F.Java反射机制一般会带来效率问题,效率问题主要发生在查找类的方法和字段对象,因此通过缓存需要反射类的字段和方法就能达到与之间调用类的方法和访问类的字段一样的效率
正确答案:ADF
对于给出的选项,A、D、F描述存在错误,解释如下:

A. Class 类位于 java.lang 包,而不是 java.lang.reflect 包。java.lang 包是 Java 的基础包,包含了 Java 语言的核心类。

D. 字节码修改通常涉及到类加载之前的操作,这可能通过使用如 ASM、Javassist 或 CGLIB 等字节码操作库来实现。这些库可以在类加载到 JVM 之前读取、修改和生成新的字节码。而 Java 反射是在类已经被加载之后进行操作的,因此它不涉及对已加载类字节码的修改。

F. 反射带来的效率问题主要是动态解析类,JVM没法对反射代码优化


知识点

java中有两种方式实现线程

java中有两种方式实现线程:

1.class A继承Thread,并重写run方法,new A().start(),就执行了线程

2.class A实现Runnable,实现run方法,new Thread(new A()).start()

当然以上方式run方法都是无返回值的,如果需要返回值,需要Callable接口。

Servlet生命周期

Java高手之路:每日一练,技能精进秘籍-LMLPHP

总结

7月快结束了,我的粉丝也突破1000,我很开心。

07-31 13:34