Java软件开发工程师笔试题(答案)
Java工程师笔试题
1,填空(此大题10项,每空1分,共20分)
1。Java语言的三个特性是继承性、封装性和多态性2.在Java中,char使用_ _ _ _ Unicode _ _ _ _ _ _编码方案,因此中文字符和英文字符都占用__2__字节的内存空间
3。当方法由_ _定义时,形参指的是参数行,当方法由_ _调用时,实际参数是传入的变量或值。
4。JSP内置对象,应用程序对象代表应用程序上下文,它允许JSP页面与包含在同一应用程序中的任何网络组件共享信息,而会话对象是特定于每个客户的
5。如果你想把一个对象写到一个流中,这个类必须实现Seralizable接口
6。在程序中实现多线程有两种方法:继承线程类和实现_ _ Runable _ interface
7。在多线程中,线程的相对优先级可以通过调用相应的setPriority()方法来修改
8。面向对象编程的五个设计原则是单一责任、开放和封闭、里氏尺度替换、依赖倒置、接口分离。通过Ajax,客户端获取的数据主要有两种类型:文本类型和xml 10。Socket通常也叫socket,用来描述__ ip和_ _ interface
2,多项选择题(这个大题20项,每项2分,共40分)
1。在JAVA中,如果父类中的一些方法不包含任何逻辑并且需要被子类重写,那么父类的这些方法应该使用()关键字来声明:a)final b)static c)abstract d)void
2。在JAVA中,已经定义了两个接口b和c。要定义实现这两个接口的类,下面的语句是正确的()
a)接口aextend b,c b)接口a implements b,c c)类a mplements b,c d)类a mplements b,实现c 3。可以在JAVA接口()中定义
A)静态方法b)常量c)构造函数d)抽象方法
4。假设A有构造函数A (int a),那么在A类的其他构造函数中调用的构造函数和语句格式应该是() a)a(x)b)this . a(x)c)this(x)d)super(x)
5。如果x = 1,y = 2,z = 3,表达式y+= z-/++x的值为()a)3b)3.5°c)4d)5 6。下列关于继承的陈述中哪一个是正确的?( )a)子类只继承父类的公共方法和属性:b)子类继承父类的非私有属性和方法:
C)子类继承父类的方法,但不继承父类的属性:d)子类继承所有的属性和方法。
7。在爪哇。使用JDBC时对于对同一个SQL语句的多次调用,使用()通常会提高效率
a)语句b)可调用语句c)准备语句d)prarmeters语句8。以下方法无法控制Servlet的生命周期:a)服务b)销毁c) dopost d) init9。可以分配给字节变量的值的范围是()0 ~ 65535 b) (-128) ~ 127 c) (-32,768) ~ 32,
767 d) (-256) ~ 255在10.java语言中,整型数据占用多少位?( )A) 32 b) 64 c) 16 d) 20 11。servletcontext对象是如何创建的?( )
A)由Servlet容器创建。对于每个HTTP请求,Servlet容器创建一个Servlet上下文对象
b)Java web应用程序本身创建一个Servlet上下文对象
c)Servlet容器为每个JaveWeb应用程序创建,在启动时,Servlet容器将创建一个Servlet上下文对象
12。JSP中不同用户之间不共享数据的方法是()a)通过cookie B)通过文件系统
C)通过数据库d)通过服务上下文对象13。以下哪一项不是集合的子界面?( )a)列表B)集合C)映射D)排序集合14。创建套接字的正确语句是()
A) Socket a =新Soeket(80): B) Socket b =新Socket(\\
c)server Socket c = newsocket(80)d)server Socket d = newsocket(\\ 15)。以下陈述是正确的()
A)具有页面范围的对象存在于网络应用程序的每个JSP中。b)指令指定与特定JSP请求无关的全局信息
C)当JSP容器遇到开始自定义标记和结束自定义标记时,分别调用doInitBody方法和doAfterBody方法d)该动作在翻译过程中仅被处理一次。
16。为了区分重载多态中不同的同名方法,需求: ()A)不同的参数名称B)不同形式的参数列表C)不同类型的返回值d)选项A、B、C都是
17。下面是调用父类构造函数的子类的描述。它是正确的: ()a)子类定义它们自己的构造函数。b)子类必须用参数
C)调用父类的构造函数。如果子类的构造函数没有通过Super调用父类的构造函数,子类将首先调用子类的构造函数,然后调用没有参数的父类的构造函数
D)创建子类对象时,首先调用子类的构造函数,然后调用父类 18的构造函数。在Java中,它是()a)垃圾收集器b)虚拟机c)编译器d)多线程机制19。java程序按照环境()的顺序从上到下运行 A)操作系统,Java程序,jvm,硬件B)jvm,Java程序,硬件,操作系统
C) java程序,jvm,操作系统,硬件D) java程序,操作系统,JVM,硬件
20。对于从Employee表中选择的以下代码段,请确定缺少的代码行( )连接con = null: Class。ForName(\\
con = Drivermanager . GetConnection(\\ ResultSet RS = stat . ExecuteQuery(\\ A)语句stat = CreateStatement();语句状态= con . CreateStatement();c)PreparedStatement stat = con . CreateStatement(): D)PreparedStatement stat = CreatePreparedStatement(); 3、问答(本大题6项,共40分)
1。请说明数组列表、矢量列表、链表的存储性能和特点(6分) 2。什么是单例模式?请在下面写一个单例模式类,并支持多线程调
用(6分)
3。请描述一下JVM加载类文件的机制。(6分)
4。请谈谈你对SQL注入的理解,并给出你知道的防止SQL注入的方法。(6分)5。请谈谈对Hibernate的理解,并简要描述Hibernate的一级缓存和二级缓存(8分)6.请写下你知道的排序方法,并用Java语言写下其中一种(8分) 3,简答题(参考答案)
1。数组列表和向量都使用数组来存储数据。此数组中的元素数量大于实际存储的数据,因此
可以添加和插入元素。它们都允许元素直接通过序列号进行索引,但是插入元素涉及内存操作,如数组元素移动。因此,索引数据很快,插入数据很慢。由于向量的同步方法(线程安全),向量的性能通常比数组列表差。LinkedList使用双链表来存储数据,并且需要向前或向后遍历序列号索引数据。但是,插入数据只需要记录该项目的前后项,所以插入速度更快。
2。当一个类对象被创建时,不管它被创建了多少次,在内存中只存储了类对象的一个副本,这是单例模式支持多线程调用,考虑线程安全,只需要锁定公共类Singleton {
私有静态Singleton实例= nullprivate Singleton(){ }
private静态同步void syncInit(){ if(实例= = null){ instance = new Singleton();} }
公共静态Singleton GetInstance(){ if(instance = = null){ SyncInit();}