java错题集

下面程序执行的结果是?(B)

class  Test
{
public static  void  main(String[] args)
{
      System.out.println(“”+‘a’+1);
}
} 

A. 98
B. a1
C. 971
D. 197

下面数组定义错误的是(C)
A. int [] arr ={23,45,65,78,89};
B. int [] arr=new int[10] ;
C. int [] arr=new int[4]{3,4,5,6};
D. int [] arr={‘a’, 23 , 45 , 6};

下面程序执行的结果是?(D)

intx=2,y=3;
switch(x)
{
   default:  
      y++;   
   case 3:
      y++;
   case 4:
      y++;
}
Sysetem.out.println("y="+y);

A. 3
B. 4
C. 5
D. 6

classDemo
{
  public static void main (String[] args)
  {
      int[] arr = new int[10];
    System.out.println(arr[1]);
  }
}

执行结果正确的说法是(C )
A. 编译时将产生错误
B. 编译时正确,运行时将产生错误
C. 输出零
D. 输出空

下面程序执行的结果是( A )

classDemo
{
public static void main(String [] args)
{
   int a=10;
   if(a++>10)
{
   a=20;
}
   System.out.println(a);
}
} 

A. 11
B. 12
C. 20
D. 21

以下是static关键字的特点的有(ABCD)
A.随着类的加载而加载
B.优先于对象存在
C.被类的所有对象共享
D.可以通过类名调用

下面的说法正确的是(ACD)多选
A. byte ,short,char 数据类型可以自动转化为int

B. float 数据类型可以自动转换为long。

C. 在java语言中默认小数为double

D.byte a=23; byte b=12;

给定java 代码如下,编译运行后,输出结果是(C )(选择一项)。

public class test { 
static int i; 
public int aMethod() { 
i++; 
  return i; 
} 
public static void main (String args[]) {    
        Test test=new Test() ;  
test.aMethod () ; 
System.out.println (test.aMethod()) ; 
} }        

a) 0 b) 1 c) 2 d) 3

return语句(D)
A.不能用来返回对象 B.只可以返回数值
C.方法都必须含有 D.一个方法中可以有多个

下列二维数组的创建中错误的是 (D )
A.int a[][]=new int[3][] ;
B.int[][] a=new int[3][4] ;
C.int a[][]={{1,2},{3,4}} ;
D.int [][] a=new int[][];

下面执行顺序

class AA{
static{
system.out,println("静态代码块AA");
}
}
class BB{
static{
system.out,println("静态代码块BB");
}
public static void main(String[] args){
system.out.println("我是main方法");
}
}

结果是
静态代码块BB
我是main方法
静态代码块AA

class Zi{
	
	Zi(){
		System.out.println("子类构造方法");
	}
}

public class AA2{
	public static void main(String[] args){
		Zi zi=new Zi();
		zi=new Zi();
		zi=new Zi();
		zi=new Zi();
	}
}

结果是
子类构造方法
子类构造方法
子类构造方法
子类构造方法

class Zi{
	
	Zi(){
		System.out.println("子类构造方法");
	}
}

public class AA2{
	public static void main(String[] args){
	final	Zi zi=new Zi();
		zi=new Zi();
		zi=new Zi();
		zi=new Zi();
	}
}

结果报错 final修饰的Zi zi地址值不能变,不能再被重新new 对象

数组错集
        int a[][]=new int[][];//x
		int b[][]=new int[10][];
		int c[][]=new int[][10];//x
		int d[][]=new int[10][10];
		int []e[]=new int[10][];
		int [][]f=new int[10][];
		int[][] g=new int[10][];
		int aa[]=new int[];//x
		int[] bb=new int[10];
		//左边[]位置随意 ,右边靠类型要付长度
		int []cc=new int[]{1,2};
		int []dd=new int[2]{1,2};//x
		int [][]ee=new int[][]{{},{}};
		int [][]ff=new int[2][]{{},{}};//x
		int [][]gg=new int[][2]{{},{}};//x
		//有{}就不用再[]加长度

看程序写输出结果

class Aa {
	public void show() {
		show2();
	}
	public void show2() {
		System.out.println("我");
	}
}
class Bb extends Aa {
	/*
	public void show() {
		show2();
	}
	*/

	public void show2() {
		System.out.println("爱");
	}
}
class Cc extends Bb {
	public void show() {
		super.show();
	}
	public void show2() {
		System.out.println("你");
	}
}
public class KK {
	public static void main(String[] args) {
		Aa a = new Bb();
		a.show();//爱
		
		Bb b = new Cc();
		b.show();//你
	}
}

一个类如果没有抽象方法,可以不可以定义抽象类?如果可以有什么意义?
可以。
不让创建对象(你只能new他的子类)

abstract不能和哪些关键字共存
private 直接报错 非法组合
final 直接报错 非法组合
static 直接报错 非法组合(static 加载方法而抽象没有方法)

/*
	面试题:
		要求请填空分别输出30,20,10。
		
	注意:
		1:内部类和外部类没有继承关系。
		2:通过外部类名限定this对象
			Outer.this
*/
class Outer {
	public int num = 10;
	class Inner {
		public int num = 20;
		public void show() {
			int num = 30;
			System.out.println();
			System.out.println(??);
			//System.out.println(new Outer().num);
			System.out.println(???);
		}
	}
}
class InnerClassTest {
	public static void main(String[] args) {
		Outer.Inner oi = new Outer().new Inner();
		oi.show();
	}	
}

问号处分别是num
this.num
Outer.this.num

看代码写输出结果

class Penguin {
 private String name=null; // 名字
 private int health=0; // 健康值
 private String sex=null; // 性别
public void Penguin() {//不是构造方法,构造方法要去掉void

       health = 10;
        sex = "雄";
        System.out.println("执行构造方法。");
 }
 public void print() {
        System.out.println("企鹅的名字是" + name +",健康值是" + health + ",性别是" + sex+ "。");
 }


}
 public class AA2{
	 public static void main(String[] args) {
     Penguin pgn = new Penguin();
     pgn.print();
     }
 }

企鹅的名字是null,健康值是0,性别是null

class A{
	public int i=10;
	public void shou(){}
}
class B extends A{
	public int i=20;
	public void shou(){
		System.out.println(super.i);
	}
	
}
public class AA2{
	public static void main(String[] args){
		B b=new B();
		System.out.println(b.i);
		b.shou();
		A a=new B();
		System.out.println(a.i);
		a.shou();
		A c=new A();
		System.out.println(c.i);
		c.shou();
	}
}
//20
//10

//10
//10

//10
//无结果

编译和运行以下代码的结果为(d)

public class MyMain{
  public static void main(String argv){
    System.out.println("Hello cruel world");
  }			
}

A.编译错误
B.运行输出 “Hello cruel world”
C.编译无错,但运行时指示没有定义构造方法
D.编译无错,但运行时指示没有正确定义main方法 []

关于java.lang.String类,以下描述正确的一项是( a)
A.String类是final类故不可以继承;//public final class Stringextends Objectimplements Serializable, Comparable, CharSequence
B.String类是final类故可以继承;
C.String类不是final类故不可以继承;
D.String类不是final类故可以继承;

下面可以删除list中所有的“java”的代码是:

 ArrayList list = new ArrayList();
      list.add("java");
      list.add("aaa");
      list.add("java");
      list.add("java");
      list.add("bbb");

A.for (int i = list.size() - 1; i >= 0; i–) {
if (“java”.equals(list.get(i))) {
list.remove(i);
}
}
size =5; =4;

B.for (int i = 0; i < list.size(); i++) {//多一个
if (“java”.equals(list.get(i))) {
list.remove(i);
}
}

C.list.remove(“java”);
D.list.removeAll(“java”);

关于sleep()和wait(),以下描述错误的一项是?( d)
A、sleep是线程类(Thread)的方法,wait是Object类的方法;
B、sleep不释放对象锁,wait放弃对象锁;
C、sleep暂停线程、但监控状态仍然保持,结束后会自动恢复;
D、wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态。
//就绪等待

请看一下代码:
Map map=new HashMap(a);
map.put(“tom”,123.6);
map.put(“jim”,234.5);
map.put(“terry”,45.3);
《插入代码》
《插入代码》处要实现的功能是把key为“jim”的value值在原有数字的基础上添加100
A.map.put(“jim”,map.get(“jim”)+100);

B.map.set(“jim”,map.get(“jim”)+100);

C.map.put(“jim”,334.5);

D.map.set(“jim”,234.5);

看程序,写结果(c)

public static void main(String[] args) {
		int a = 10;
		int[] arr = { 11, 22, 33, 44 };
		change(a);
		System.out.println(a);
		change(arr);
		System.out.println(Arrays.toString(arr));
	}

	public static void change(int a) {
		a *= 2;
	}

	public static void change(int[] arr) {
		arr[0] *= 2;
	}

A. 10 [11,22,33,44]
B. 20 [11,22,33,44]
C.10 [22,22,33,44]
D.20 [22,22,33,44]

下列说法不正确的是( bc)
A、IOException必须被捕获或抛出
B、java语言会自动初始化变量的值
C、java语言不允许同时继承一个类并实现一个接口
D、java语言会自动回收内存中的垃圾

理解jvm的运行原理具有以下几点充分作用:

1、针对系统进行内存和垃圾回收监控

2、解决因内存溢出和泄露的问题

3、对系统进行优化

4、提升jvm和系统性能

jvm的运行原理有主要有三方面,其实这也是jvm的主要工作:

1、内存管理

2、执行流程

3、垃圾回收

2.在Oracle中,关于锁,下列描述不正确的是(D)。
A. 锁用于在用户之间控制对数据的并发访问
B. 可以将锁归类为行级锁和表级锁

C. insert、update、delete语句自动获得行级锁
D. 同一时间只能有一个用户锁定一个特定的表

5.在Windows操作系统中,Oracle的(A)服务器监听并接受来自客户端应用程序的连接请求。(选择一项)
A. OracleHOME_NAMETNSListener
B. OracleServiceSID
C. OracleHOME_NAMEAgent
D. OracleHOME_NAMEHTTPServer

6.Oracle数据库中,下面(C)可以作为有效的列名。
A. Column
B. 123_NUM
C. NUM_#123
D. #NUM123

7.在Oracle中,以下工具可以逻辑备份数据库对象或整个数据库(B)。(选择一项)
A. SQLPlus
B. 导出实用程序 IMPORT
C. 导入实用程序
D. SQL
Loader


8.在Oracle中,语句(B)将ORDER_DATE日期值’2000年3月18日’显示为‘2000年1月1日’。(选择一项) ROUND
A. SELECT ROUND(order_date,’day’)FROM inventory
B. SELECT ROUND(order_date,’YEAR’)FROM inventory
C.SELECT ROUND(order_date,’month’)FROM inventory
D.SELECT ROUND(to_char(order_date,’yyyy’))FROM inventory

9.在Oracle中,用下列语句定义了一个过程:
CREATE PROCEDURE proc(value1 IN VARCHAR2,value2 OUT NUMBER,value3 IN OUT VARCHAR2)
IS
BEGIN
……
END;
假定使用的变量都已定义,下面对过程proc的调用语法正确的是(B)。
A. proc(‘tt’,10,v3)
B. proc(‘tt’,v2,v3)
C. proc(v1,v2,v3)
D. proc(‘tt’,10,’dd’)

10.在Oracle中,使用以下语句创建视图:(B)
CREATE OR REPLACE VIEW MyView
AS SELECT * FROM orders
Where status=’p’;
假定orders表中包含10条status=’p’的记录,当用户试图执行以下语句:
UPDATE MyView SET status=’o’ WHERE status=’p’;
下列描述正确的是()。
A. Oracle不执行更新操作,并返回错误信息
B. Oracle成功执行更新操作,再次查看视图时返回0行记录
C.Oracle成功执行更新操作,再次查看视图时返回10行记录
D.Oracle执行更新操作,但提示错误信息

2.使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当使用_having_____子句。

4.在Oracle数据库中,数据文件的扩展名是 .dbf______。

5.在Oracle数据库中,控制文件的扩展名是 __.ctl ______。

一个基本的PL/SQL语句块由三部分组成,分别为 _声明部分、可执行部分和异常处理部分

4、学生表(id自增,姓名,性别,年龄),数据库中总量100条,获取学生表中第10-20行的数据的SQL语句___select * from (select rownum rid, s* from student s) where rid between 10 and 20;____________________________________

在这里插入图片描述
规范
在这里插入图片描述
在这里插入图片描述
结果132

update ad set  user='123' and pwd='123' where user='12' and pwd='12'//报错!!!!
update ad set  user='123' , pwd='123' where user='12' and pwd='12'//正确

3、用于声明当前页为error页?正确的选择是(D)。
A.<%@ page errorPage=“true” %>
B.<%@ page info=“error” %>
C.<%@ page pageEndcoding=“error” %>
D.<%@ page isErrorPage=“true” %>

4、用什么方法可以从一个HTTP会话中获得对象?正确的选择是(B)。
A.getAttribute method of javax.servlet.Session
B.getAttribute method of javax.servlet.http.HttpSession
C.getAttribute method of javax.servlet.http.Session
D.getAttribute method of javax.servlet.HttpSession

5、以下关于C/S与B/S模式的描述,(D)是对的
A.C/S为浏览器与服务器模式
B.B/S为客户端与服务器模式
C.C/S模式的可维护性比B/S高
D.B/S模式的可维护性比C/S高

6、HTTP协议是一种(B)的()层协议。
A.有状态、应用
B.无状态、应用
C.有状态、传输
D.无状态、传输

8、为了使Tomcat服务器正常运行,一般需要在系统中建立JAVA_HOME和(A)的环境变量,分别指向JDK的展开目录和Tomcat的展开目录。
A.CATALINA_HOME
B.JASPER_HOME
C.TOMCAT_HOME
D.WEBAPPS_HOME

9、现在我们为MyWebApp开发了一些Servlet,应该将这些Servlet发布于(C)文件夹中
A. /(根目录)
B./WEB-INF/
C./WEB-INF/classes
D./WEB-INF/lib

10、下面哪项内容使用request对象无法实现?选择是(A)。
A.将页面重定向至index.jsp页。
B.获取表单提交的信息
C.定义属性
D.获取浏览器的版本号

11、下面哪一个选项不是http响应的一部分?选择是(C)。
A.响应头
B.响应正文
C.协议版本号
D.状态行

12、下面(C)的说法是错的
A.使用request.getParameter可以获得由表单提交的数据
B.session.getAttribute()方法返回的为一个对象
C.使用application.getInitParameter()将获得当前版本Servlet编译器的信息
D.可以使用request.getCookie获得客户端的cookie值。

13、当多个用户请求同一个JSP页面时,Tomcat服务器为每个客户启动一个(B)。
A.进程
B.线程
C.程序
D.服务
15、在JSP页面中,保存数据的范围由小到大依次是(C)
A.pageContext,request,application,session
B.pageContext,application,session,request
C.pageContext,request,session,application
D.pageContext,session,request,application

1、在Web应用程序中有以下的程序代码,执行后转发至某个JSP网页:
List names = new ArrayList();
names.add(“caterpillar”);
request.setAttribute(“names”, names);
以下哪个选项可以正确地使用EL取得List中的值?BD
A. n a m e s . 0 B . {names.0} B. names.0B.{names[0]}
C. n a m e s . [ 0 ] D . {names.[0]} D. names.[0]D.{names[“0”]}

3、以下哪些是JAVA EE框架的服务技术?选择是(ABCD)
A.Web服务技术
B.安全技术
C.持久化技术
D.数据连接技术

4、在web.xml中有以下的设定:

<web-app ..><listener>
  <listener-class>cc.openhome.SomeListener</listener-class>
    </listener>
..
<web-app>

以下哪些说法正确?(AC)
A.SomeListener类别要实作ServletContextListener接口
B.每生成一个Servlet实例就会呼叫ServletContextListener的init()方法
C.Web应用程序初始化之后,会呼叫ServletContextListener的contextInitialized()方法
D.不需要这个标签

5、如果要设置响应的内容类型标头,哪几个选项是正确的作法?(ABC)
A.response.setHeader(“Content-Type”, “text/html”);
B.response.setContentType(“text/html”);
C.response.addHeader(“Content-Type”, “text/html”);
D.response.setContentHeader(“text/html”);

6、有两个Servlet:servlet1和servlet2,servlet1把HttpServletRequest和HttpServletResponse成功发送到servlet2,在servlet1中有如下代码:
Integer I=new Integer(10);
request.setAttribute(“x”,I);
以下是在servlet2中对属性x操作的代码,正确的是:(BCD)
A.Integer y=request.getAttribute(“x”);
B.Object y=request.getAttribute(“x”);
C.int y= ((Integer)request.getAttribute(“x”)).intValue();
D.Integer y=(Integer)request.getAttribute(x);
E.request.removeAttribute(“x”);

7、对于自己编写的Servlet1,以下对Servlet1的定义正确的是:(ABC)
A.class Servlet1 implements javax.servlet.Servlet
B.class Servlet1 extends javax.servlet.GenericServlet
C.class Servlet1 extends javax.servlet.http.HttpServlet
D.class Servlet1 extends javax.servlet.ServletRequest

8、在J2EE中,对于HttpServlet类的描述,正确的是(ABD)。
A.我们自己编写的Servlet继承了HttpServlet类,一般只需要覆盖doPost或者doGet方法,不必覆盖service()方法。因为一个service()方法是空的
B.HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法service()
C.HttpServlet类有两个service()方法
D.我们自己编写的Servlet继承了HttpServlet类,一般只需要覆盖doPost或者doGet方法,不必覆盖service()方法。因为一个service()方法会调用doPost或者doGet方法

9、下面那些是 Ajax 应用程序所用到的基本技术?(ABCD)
A.HTML用于建立Web表单并确定应用程序其他部分使用的字段。
B.JavaScript代码是运行Ajax应用程序的核心代码,帮助改进与服务器应用程序的通信。
C.DHTML 或Dynamic HTML,用于静态更新表单,我们将使用div、span和其他静态HTML元素来标记HTML。
D.文档对象模型DOM用于(通过JavaScript代码)处理HTML结构和(某些情况下)服务器返回的XML。

1、javax.servlet.Servlet接口定义了三个用于Servlet生命周期的方法,它们是___init()___service()、____destroy()

2、Filter接口中最主要的方法是___doFilter()____方法。

3、有很多种方式都能发起GET请求:例如___地址栏输入_____、点击超链接___、表单get方式提交___、ajax get方式提交

4、在jQuery中被誉为工厂函数的是___$()______。

5、jQuery中封装的用于Ajax的常用方法有:___KaTeX parse error: Expected group after '_' at position 7: .get()_̲_____、___.post()______、___$.ajax()______。

6、“<%!”和“%>”之间声明的方法在整个页面内有效,称为___jsp声明______。

7、Ajax中作为数据交换格式用的最多的两种是:JSON___、XML___。

8、在Servlet容器中,一个Servlet会创建__1___个实例。

9、Java中XML文件最经典的解析方式有__SAX___,DOM___等,平时用的最多的是__DOM4J__,这种解析方式不仅用在Hibernate等框架中,也经常用于我们的实际开发中。

10、Cookie中的内容__不一定___(填一定或不一定)只能通过服务端进行获取。

1、描述MVC设计思想的概念及工作原理。
MVC是model、view、controller的简称。它是一中软件的设计思想,将应用的一个输入、处理、输出按照模型层,视图层,控制层进行分层设计
1、springmvc框架
在这里插入图片描述
2、jsp+servlet
在这里插入图片描述
在这里插入图片描述
1、关于String类,下面描述正确的是ACD
A、String类以final进行修饰,所以不可被继承
B、String的常量池原理说明无论通过何种何种方式创建的String对象都会被保存在常量池中
C、String中的replaceAll方法是将字符串中满足正则表达式部分的内容替换为新的内容
D、对字符串进行频繁拼接使用StringBuilder或StringBuffer对象
方式一:String a = “aaa” ;
方式二:String b = new String(“aaa”);
两种方式都能创建字符串对象,但方式一要比方式二更优。
因为字符串是保存在常量池中的,而通过new创建的对象会存放在堆内存中。
常量池中已经有字符串常量”aaa”
通过方式一创建对象,程序运行时会在常量池中查找”aaa”字符串,将找到的”aaa”字符串的地址赋给a。
通过方式二创建对象,无论常量池中有没有”aaa”字符串,程序都会在堆内存中开辟一片新空间存放新对象。
常量池中没有字符串常量”aaa”
通过方式一创建对象,程序运行时会将”aaa”字符串放进常量池,再将其地址赋给a。
通过方式二创建对象,程序会在堆内存中开辟一片新空间存放新对象,同时会将”aaa”字符串放入常量池,相当于创建了两个对象。

2、如下代码在JDK1.8中没有编译错误的是ABCD
A、List list=new ArrayList();
B、List list=new ArrayList<>();
C、List list=new ArrayList();
D、List list=new ArrayList();

3、下面关于接口和抽象类中说法错误的是abd
A、抽象类和接口中都需要有抽象方法
B、接口只能声明没有方法体的抽象方法
C、抽象类和接口都不能被实例化
D、一个类只能继承一个抽象类,也只能实现一个接口
E、一个接口可以继承多个其它的接口

5、关于集合框架的描述正确的是ac
A、Java集合框架可以分为以Collection作为顶级接口的单列集合和以Map作为顶级接口的双列集合
B、Collection中包含了List和Map两个子接口 //(List和set)
C、List中的元素是有序可重复的,Set中的元素是无序不可重复的
D、List集合的底层是通过动态数组实现的

6、关于Set集合及其实现类说法错误的是:abd
A、TreeSet集合可以保证元素的存入顺序和遍历顺序一致
B、HashSet中元素判断重复的依据是equals方法比较的结果是否相等
C、LinkedHashSet继承自HashSet
D、HashSet中存入的元素的顺序一定和遍历时候的元素顺序是不一样的

7、关于字节流和字符流说法正确的是A
A、字符流是通过字节流封装而来的
B、字节流只能操作图片、视频等非文本文件,而字符流只能操作文本文件
C、字节输入流的顶级父类是Reader
D、字符流中带有自动行刷新功能的输出流叫做OutputStreamWriter

8、下列关于static关键字的说法,正确的有ACD
A、类中的静态代码块比构造方法先执行
B、一个类中只能存在一个静态代码块
C、通过一个类的实例对象可以调用类中以static修饰的方法
D、static关键字可以用来修饰属性、方法、类

9、下面数组的定义中,正确的有BD
A、 String strs[] = { ‘a’ ‘b’ ‘c’};
B、String[] strs = {“a”, “b”, “c”};
C、 String[] strs = new String{“a” “b” “c”};
D、String strs[] = new String[]{“a”, “b”, “c”};
E、String[] strs = new String[3]{“a”, “b”, “c”};

、关于break和continue语句,下面说法错误的有( AD )。
A、 break只能用于循环语句中。
B、 continue只能用于循环语句中。
C、 在循环语句中,break语句将终止循环;而continue是略过当前循环中剩余的语
句进入下一次循环。
D、 在循环语句中,continue语句将终止循环;而break是略过当前循环中剩余的语
句进入下一次循环。

12、下列遍历集合的方法中,哪些不能用于Set集合AD
A、for(int i=0;i<set.size;i++){}
B、for(Object obj : set){}
C、Iterator it = set.iterator();
D、Set set = set.EntrySet();

13、下列声明语句中,正确启动线程的是哪项C
A、public class Demo extends Thread{}
new Demo().run();
B、new Runnable(){
public void run(){}
}.start();
C、new Thread(new Runnable(){
public void run(){}
}).start();
D、Runnable r = new Runnable();
r.start();

14、下列关于File的说法正确的是(CD)
A、无论文件的路径存不存在,实例化File类对象都可以自动创建该文件
B、实例化File类时,会自动抛出FileNotFoundException异常
C、文件的路径可以使用绝对路径和相对路径
D、File类是在java.io包下

15、新建一个流对象,下面哪个选项的代码是正确的?ACD
A、new BufferedWriter(new FileWriter(“a.txt”));
B、new BufferedReader(new FileInputStream(“a.dat”));
C、new BufferedOutputStream(new FileOutputStream(“a.zip”));
D、new ObjectInputStream(new FileInputStream(“a.dat”));

16、下面关于泛型的说法正确的是(B)
A、泛型是在运行时期,对程序的一种检测机制
B、泛型是在编译期对程序的一种检测机制
C、使用泛型可以在程序运行时期帮我们快速找到代码的问题
D、泛型只能约束基本数据类型

17、下列程序的执行,说法错误的是ABC

public class MultiCatch   {
    public static void main(String args[]){
        try{
            int a=args.length;
            int b=42/a;        //10行
            int c[]={1};
            c[42]=99;
            System.out.println("b="+b);
        }catch(ArithmeticException e){                     
            System.out.println("除0异常:"+e);              // 15行
        }catch(ArrayIndexOutOfBoundsException e) {
            System.out.println("数组超越边界异常:"+e);     //  19行
        }
    }
}

A、程序将输出第15行的异常信息
B、程序第10行出错
C、程序将输出”b=42”
D、程序将输出第15或者19行的异常信息

18、对于catch子句的排列,下列哪种是正确的bd
A、父类在先,子类在后
B、子类在先,父类在后
C、有继承关系的异常不能在同一个try程序段内
D、先有子类,其他如何排列都无关

9、一般使用匿名内部类便捷地去__继承类_____和____实现接口_____。
10、要进行序列化的对象对应的类型必须实现___Serializable______接口,该接口是一个___标记___接口,其中没有任何具体的方法。

下面关于spring描述错误的是:(c )
A、Spring支持可插入的事务管理器,使事务划分更轻松,同时无需处理底层的问题。
B、Spring事务管理的通用抽象层还包括JTA策略和一个JDBC DataSource策略。
C、Spring的事务支持依赖于Java EE环境。
D、Spring事务语义通过AOP应用于 POJO,通过XML或注解进行配置。

3、下列关于Spring特性中IoC描述错误的是:(a)
A、IoC就是指程序之间的关系由程序代码直接操控。
B、所谓“控制反转”,是指控制权由应用代码转到外部容器,控制权的转移,
C、IoC将控制创建的职责搬进了框架中;并把它从应用代码脱离开来
D、当使用Spring的IoC容器时只需指出组件需要的对象,在运行时Spring的IoC容器会根据XML配置数据提供给它。

4、事务隔离级别是由谁实现的?c
A、Java应用程序
B、Spring
C、数据库系统
D、JDBC驱动程序

5、以下哪个不是SpringAOP中的通知类型(c)
A、前置通知
B、环绕通知
C、代理通知
D、引介通知

7、下面关于Spring中配置bean初始化方法正确的是(c)
A、初始化方法在最前面执行
B、初始化方法在构造方法后,依赖注入前执行
C、初始化方法在依赖注入后执行
D、初始化方法在依赖注入后,构造函数之前执行

12、ModelAndView类中addObject方法相当于执行的是(a)
A、request.setAttribute()
B、session.setAttribute()
C、servletContext.setAttriute()
D、pageContext.setAttribute()

13、现使用Maven管理一依赖,这个依赖在容器中有提供,但是在编译期间需要依赖它里边的类,那么它的作用域范围应该是(d)
A、runtime
B、system
C、compile
D、provided
14、如果要将传递的控制器方法参数直接写入模型对象中,应该使用哪个注解(b)
A、@PathVariable
B、@ModelAttribute
C、@RequestParam
D、@RequestBody

17、关于SpringMVC中入参为集合或数组的情况,说法不正确的是(d)
A、可以使用Integer[] ids作为控制器方法参数接收前端传递过来的ids=1&ids=2请求参数
B、可以使用Emp[] emps 作为pojo的属性,控制器方法中如果使用该pojo作为入参,可以接收前端emps[0].id=1&emps[1].id=2这样的参数
C、可以使用List emps 作为pojo的属性,控制器方法中如果使用该pojo作为入参,可以接收前端emps[0].id=1&emps[1].id=2这样的参数
D、如果使用ArrayList emps作为控制器方法的参数,可以接收前端emps[0].id=1&emps[1].id=2这样的参数

1、以下属于MyBatis的核心对象的是(ac)
A、SqlSessionFactory
B、Sql
C、SqlSession
D、Factory

2、如果MyBatis进行查询时实体类的属性名和数据库字段不一致怎么办?(bcd)
A、做注释声明
B、修改数据库字段名
C、用resultmap配置映射关系
D、对查询语句字段添加别名

4、前后端分离架构中,前后端之间交互必须用到的技术有哪些?(abd)
A、JavaScript
B、Ajax
C、jQuery
D、JSON

5、Spring框架中用到的设计模式有哪些?()
A、单例模式
B、工厂模式
C、适配器模式
D、模板方法模式

6、MySQL数据库中用来表示整数的数据类型有哪些?()
A、int
B、tinyint
C、bigint
D、bit

7、Oracle中表示字符(串)类型的数据类型有哪些?()
A、char
B、varchar
C、varchar2
D、long
8、数据库并发操作可能会带来哪些数据不一致性?()
A、脏读
B、幻读
C、不可重复读
D、死锁

9、MyBatis中哪一个对象的最佳使用范围是代码块中的局部变量()
A、SqlSessionFactoryBuilder
B、SqlSessionFactory
C、SqlSession
D、Mapper对象

10、关于Spring框架整合MyBatis框架,下面说法正确的是()
A、此时的数据源可以直接由Spring容器管理并提供
B、原来的SqlSessionFactory对象变成了SqlSessionFactoryBean对象
C、此时不可以将mapper文件的路径继续配置在主配置文件中
D、对于Mapper接口的扫描可以在Spring配置文件中进行配置

3.下面哪些赋值语句是正确的?(ABD)

A. long test = 012; //正确

B. float f = -412; //正确

C. int other = (int) true;//布尔型不能强转成整型

D. double d = 0x12345678;//正确,在double的范围内

E. byte b = 128; //错误,-128~127

4.在Java中,下列语句不能通过编译的有( BD)

A. String s= “join”+ 3; //正确,整型可以通过这种方式转换成字符串类型

B. int a= “join”+3;//错误,字符串类型不能这样转换成整型

C. int a= ‘a’+5;//正确,字符型可以转换成整型

D. float f=5+5.5;//错误,5.5的默认类型为double类型,转换成float类型需要进行强转

7.尝试运行下面的代码会发生什么?( B )

public class Test {

public static void main(String[] args) {

		boolean m = true;
		
			if (m = false) {
			
			System.out.println("true");
			
			} else {
			
			System.out.println("false");
			
			}

		}

}

A.输出字符串”true”

B.输出字符串”false”

C.编译时错误

D.运行时错误
此题主要问题在if(m = false),很多人可能选C,觉得 “=” 是赋值符,如果将“=”改成“==”这个题目就选B 了,不然编译不能通过。其实我们忽略了m本身声明时就说boolean型,所以这里可以用“=”对m进行赋值。

7.尝试运行下面的代码会发生什么?( B )

public class Test {
	public static void main(String[] args) {
		boolean m = true;
		if (m = false) {
			System.out.println("true");
		} else {
			System.out.println("false");
		}
	}
}

A.输出字符串”true”

B.输出字符串”false”

C.编译时错误

D.运行时错误

此题主要问题在if(m = false),很多人可能选C,觉得 “=” 是赋值符,如果将“=”改成“==”这个题目就选B 了,不然编译不能通过。其实我们忽略了m本身声明时就说boolean型,所以这里可以用“=”对m进行赋值。

.编译并运行以下代码将发生什么? ( E )

public static void main(String args[]){
    	char digit = 'a';
    	for (int i = 0; i < 10; i++){
      		switch (digit)
      		{
        			case 'x' :
        			{
        				int j = 0;
						System.out.println(j);		
        			}
        			default :
        			{
        				int j = 100;
						System.out.println(j);		
        			}
      		}
   	}

A.输出11次100

B.输出10次100,然后抛出运行期异常

C.编译错误,因为变量i不能在main()方法中被声明2次

D.编译错误,因为变量j不能在main()方法中被声明2次

E.以上都不对

此题是编译无法通过,因为变量j在main()中没有声明,而switch里面的j只能在各自的case里面有效

11.在java中,关于数组描述正确的是( BD )

A.数组中的索引下标从1开始//从0开始

B.存储在数组当中的数据都属于同一数据类型//正确

C.通过数组名.length()能获得数组的长度//错误,length是数组的属性,是String的方法

D.数组的最大索引下标是数组的长度减1//正确
数组长度一般写成:数组名.length
而字符串长度:字符串名.length()

下面程序的输出结果是什么(D )

int[] arr = new int[10];

System.out.println(arr[0]);

A.编译不通过

B.运行时出错

C.输出null

D.输出0

数组通过new关键字开辟内存空间后没有赋初值,会自动被赋成0.

下列有关类、对象和实例的叙述,正确的是哪一项?( D )

A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别

B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称

C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称

D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称//正确

17.下面关于java中包的说法正确的是(ACD )

A.在java中可以使用import语句导入包

B.在java中可以使用package语句导入包

C.位于同一个包中的类,不需要导包就可以直接访问

D.不同的包中可以出现类名相同的类

下列有关接口的叙述错误的是哪项?( D )

A.接口中只能包含抽象方法和常量

B.一个类可以实现多个接口

C.类实现接口时必须实现其中的方法

D.接口不能被继承//接口能被继承,也能被实现

20.运行以下代码片段,输出结果是?( c)

class X {
	Y b = new Y();
	X() {
			System.out.print("X");
	}
}

class Y {
	Y() {
			System.out.print("Y");
	}
}

public class Z extends X {
	Y y = new Y();
	Z() {
			System.out.print("Z");
	}

	public static void main(String[] args) {
			new Z();
	}
}

A. Z
B. YZ
C. XYZ
D. YXYZ
main函数中,new Z(),访问类 Z,由于 Z 继承了 X,又转向去访问类X,类X里面又创建了类Y的对象,又转向了Y,所以第一步是打印Y ,再回到类X中构造函数,打印X,再返回到类Z中,由于类Z中也有类Y 的对象,又要返回类Y调用一次类Y 的构造函数,打印Y,最后回到类Z中,打印Z

下列选项中关于java中this关键字的说法错误的有( ABD )

A. this关键字是一个对象的引用//错误,应该是本类对象对自身的引用

B. this关键字可以用于引用当前类以外其他类型的对象//错误,应该是本类

C. this可用于构造函数中,调用类本身重载的构造函数,但是必须写在首行//正确

D. this可用于静态方法中//错误。静态方法与对象无关,this与对象有关

下列关于构造函数的说法正确的是( ABD )

A.方法名必须与类名相同

B.使用new关键字创建对象时,java虚拟机会自动调用构造函数

C.我们在定义一个类时,必须要声明至少一个构造函数 //当没有声明构造函数是,会有一个默认的无参构造函数

D.构造函数中不能使用return语句

34.运行以下的main()方法,结果是?( c )错ac
1 public static void main(String[] args)
2 {
3 String myString;
4 int x = 100;
5
6 if (x < 100) myString = “x is less than 100”;
7 if (x > 100) myString = “x is greater than 100”;
8 System.out.println(myString.length());
9 }
A. 编译时报出错误提示信息“变量myString没有被初始化”
B. 编译通过
C. 编译未能通过。但如果变量myString在第8行前的代码中被初始化,代码可以编译通过,运行时可以输出字符串myString的长度
D. 以上都不对

局部变量没有被初始化,编译不能通过;初始化后能正常执行。

有如下代码,请问哪些是正确的?( ACD )

class ClassA{}

class ClassB extends ClassA{}

class ClassC extends ClassA{}

以及

ClassA p0 = new ClassA();

ClassB p1 = new ClassB();

ClassC p2 = new ClassC();

ClassA p3 = new ClassB();

ClassA p4 = new ClassC();

A.p0 = p1;//正确,类型自动向上提升

B.p1 = p2;//错误,类型转换异常

C.p1 = (ClassB)p3;//正确,类型强制向下转型

D.p2 = (ClassC)p4;//正确,类型强制向下转型

关于继承,以下说法正确的是: ( AD )

A.Java中只支持单继承,一个类只能继承一个类,但是可以有多个子类

B.一个类如果没有自己写无参构造方法,那么子类将无法继承//错误,如果自己没有写构造方法,会有默认的隐式的无参构造方法

C.子类可以当父类用,父类不可以当子类用//父类强转之后也可当之类使用

D.子类重写父类方法时访问权限不能更低

.编译并运行以下代码的输出结果是?( A )

String s1 = new String(“amit”);

System.out.println(s1.replace(‘m’,‘r’));//输出arit

System.out.println(s1);//输出amit

String s3 = “arit”;//s3和s4都指向字符串常量池里面的同一个"arit"

String s4 = “arit”;

String s2 = s1.replace(‘m’,‘r’);//s2指向堆内存中的"arit"

System.out.println(s2 == s3);//输出false

System.out.println(s3 == s4);//输出true

A. arit

amit

false

true

B. arit

arit

false

true

C. amit

amit

false

true

D. arit

amit

true

true

.下列哪些代码可以顺利通过编译和运行? ( ABD )

A.Integer i = new Integer(‘A’);//可以

B.Integer i = new Integer(“7”);//可以

C.Character c = new Character(“A”);//编译不通过,没有这个类型的构造器

D.Boolean b = new Boolean(null);//可以

E.Integer i = new Integer(“0x10”);//编译能通过,运行时报java.lang.NumberFormatException异常

.在Java中,如果要在字符串类型对象s="java"中,得到字符’v’出现的位置,可使用下面的那个方法?( C )

A. s.matches(‘v’);// 告知此字符串是否匹配给定的正则表达式。

B. s.charAt(‘v’);//返回指定索引处的char 值。

C. s.indexOf(‘v’);// 返回指定字符在此字符串中第一次出现处的索引。

D. s.substring(‘v’);// 返回一个新的字符串,它是此字符串的一个子字符串。

31.下列关于ArrayList、Vector和LinkedList集合的说法正确是有( ACD )

A. ArrayList集合底层是数组实现,该集合线程不安全

B. Vector集合元素的存放是无序的

C. LinkedList集合底层是链表结构,适合做元素的增删操作

D.这三个集合都是List接口的实现类

ArrayList、Vector、LinkedList三个集合都是List接口的实现类,都是可变长度的集合,元素有序。其中ArrayList和Vector底层数据结构为数组,适合做查询查找;LinkedList底层数据结构为双向链表,适合做元素的增删。ArrayList线程不安全,Vector线程安全。

下列哪些方法是ArrayList和LinkedList集合中都定义的( ACD )

A. add(Object o)

B. removeFirst()

C. remove(Object o)

D. add(int index,Object o)
此题可以自己查JDK API。LinkedList可以利用removeFirst、removeLast等方法实现队列、栈等数据结构。

40.关于泛型的说法正确的是( ABC )

A.泛型是JDK1.5出现的新特性

B.泛型是一种安全机制

C.使用泛型避免了强制类型转换

D.使用泛型必须进行强制类型转换

泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。

关于方法的递归算法,说法正确的是( AB )

A.递归就是方法自己调用自己

B.递归的次数不能过大,否则会导致栈内存溢出

C.使用递归算法,方法必须有返回值

D.构造方法不可以使用递归算法

递归,就是在运行的过程中调用自己。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。递归次数过多容易造成栈溢出。

47.下面哪项不是TCP的特点? ( BD)

A.面向连接

B.数据不可靠

C.传输速度慢

D.对数据大小无限制

TCP是面向连接的可靠传输,由于需要校验数据,速度要比UDP慢,数据传输有MTU(最大传输单位)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值