个人测试三

选择题(不定项):

1.下面有关JVM内存,说法错误的是?( C )

A. 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
B. 虚拟机栈描述的是Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
C. 方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据,是线程隔离的
D. 原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的

2.下面有关jdbc statement的说法错误的是?( C )

A. JDBC提供了Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程
B. 对于PreparedStatement来说,数据库可以使用已经编译过及定义好的执行计划,由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象”
C. PreparedStatement中,“?” 叫做占位符,一个占位符可以有一个或者多个值
D. PreparedStatement可以阻止常见的SQL注入式攻击

3.下面有关SPRING的事务传播特性,说法错误的是?( B )

A. PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行
B. PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就抛出异常
C. PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起
D. PROPAGATION_NESTED:支持当前事务,新增Savepoint点,与当前事务同步提交或回滚

4.下面有关servlet和cgi的描述,说法错误的是?( D )

A. servlet处于服务器进程中,它通过多线程方式运行其service方法
B. CGI对每个请求都产生新的进程,服务完成后就销毁
C. servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等
D. cgi在移植性上高于servlet,几乎所有的主流服务器都直接或通过插件支持cgi

5.下面有关servlet service描述错误的是?( B )

A.不管是post还是get方法提交过来的连接,都会在service中处理
B.doGet/doPost 则是在 javax.servlet.GenericServlet 中实现的
C.service()是在javax.servlet.Servlet接口中定义的
D.service判断请求类型,决定是调用doGet还是doPost方法

6.下列有关Servlet的生命周期,说法不正确的是?( A )

A. 在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例
B. 在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法
C. 在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源
D. destroy()方法仅执行一次,即在服务器停止且卸载Servlet时执行该方法

7.下面有关servlet中init,service,destroy方法描述错误的是?( D )

A. init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法
B. service()方法处理客户机发出的所有请求
C. destroy()方法标志servlet生命周期的结束
D. servlet在多线程下使用了同步机制,因此,在并发编程下servlet是线程安全的在并发编程下是线程不安全的

8.下面有关struts1和struts2的区别,描述错误的是?( B )

A. Struts1要求Action类继承一个抽象基类。Struts 2 Action类可以实现一个Action接口
B. Struts1 Action对象为每一个请求产生一个实例。Struts2 Action是单例模式并且必须是线程安全的
C. Struts1 Action 依赖于Servlet API,Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试
D. Struts1 整合了JSTL,Struts2可以使用JSTL,但是也支持OGNL

9.关于AWT和Swing说法正确的是?( D )

A. Swing是AWT的子类
B. AWT在不同操作系统中显示相同的风格
C. AWT不支持事件类型,Swing支持事件模型
D. Swing在不同的操作系统中显示相同的风格

10.看以下代码:
文件名称:forward.jsp

 <html>  
     <head><title> 跳转  </title> </head> 
     <body>  
         <jsp:forward page="index.htm"/>     
     </body>
 </html> 

如果运行以上jsp文件,地址栏的内容为( A )

A. http://127.0.0.1:8080/myjsp/forward.jsp
B. http://127.0.0.1:8080/myjsp/index.jsp
C. http://127.0.0.1:8080/myjsp/index.htm
D. http://127.0.0.1:8080/myjsp/forward.htm

11.下面哪一项不是加载驱动程序的方法?( A )

A. 通过DriverManager.getConnection方法加载 它是获取链接
B. 调用方法 Class.forName
C. 通过添加系统的jdbc.drivers属性
D. 通过registerDriver方法注册

12.关于sleep()和wait(),以下描述错误的一项是( D )。

A. sleep是线程类(Thread)的方法,wait是Object类的方法;
B. sleep不释放对象锁,wait放弃对象锁
C. sleep暂停线程、但监控状态仍然保持,结束后会自动恢复
D. wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态

13.根据下面的程序代码,哪些选项的值返回true?( C )。

 public class Square {  
    long width;  
    public Square(long l) {   
        width = l;  
    }  
    public static void main(String arg[]) {   
        Square a, b, c;  
        a = new Square(42L);   
        b = new Square(42L);   
        c = b;   
        long s = 42L;  
    } 
}

A. a == b
B. s == a
C. b == c
D. a.equals(s)

14.14.在jdk1.5的环境下,有如下4条语句:

Integer i01 = 59;
int i02 = 59;
Integer i03 =Integer.valueOf(59);
Integer i04 =new Integer(59);

以下输出结果为false的是:( C )

A. System.out.println(i01 == i02);true Integer跟一个值比较会自动拆箱
B. System.out.println(i01 == i03);true
C. System.out.println(i03 == i04);false
D. System.out.println(i02 == i04);true

15.下面哪个不对?( C )

A.RuntimeException is the superclass of those exceptions that can be thrown during the normal operation of the Java Virtual Machine.
RuntimeException是Java虚拟机正常运行期间可以抛出的异常的超类。

B.A method is not required to declare in its throws clause any subclasses of RuntimeExeption that might be thrown during the execution of the method but not caught方法不需要在其throws子句中声明RuntimeExeption的任何子类,这些子类可能在方法执行期间抛出,但未被捕获

C.An RuntimeException is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch.
RuntimeException是Throwable的一个子类,它表示一个合理的应用程序不应该试图捕获的严重问题。

D.NullPointerException is one kind of RuntimeException

16.关于以下程序代码的说明正确的是?( D )

public class HasStatic{
     private static int x=100;
     public static void main(String args[]){
          HasStatic hs1=new HasStatic();
          hs1.x++;
          HasStatic  hs2=new HasStatic();
          hs2.x++;
          hs1=new HasStatic();
          hs1.x++;
        HasStatic.x--;
        System.out.println("x="+x);
     }
   } 

A. 程序通过编译,输出结果为:x=103
B. 10行不能通过编译,因为x是私有静态变量
C. 5行不能通过编译,因为引用了私有静态变量
D. 程序通过编译,输出结果为:x=102

17.关于struts项目中的类与MVC模式的对应关系,说法错误的是( D )

A. Jsp文件实现视图View的功能
B. ActionServlet这一个类是整个struts项目的控制器
C. ActionForm、Action都属于Model部分
D. 一个struts项目只能有一个Servlet

18.下面有关jsp中静态include和动态include的区别,说法错误的是?( D )

A. 动态INCLUDE:用jsp:include动作实现
B. 静态INCLUDE:用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file=“included.htm” %>
C. 静态include的结果是把其他jsp引入当前jsp,两者合为一体;动态include的结构是两者独立,直到输出时才合并
D. 静态include和动态include都可以允许变量同名的冲突.页面设置也可以借用主文件的

19.给定以下JAVA代码,这段代码运行后输出的结果是( B )

 public class Test{
    public static int aMethod(int i)throws Exception{
        try{
            return i / 10;
        }
        catch (Exception ex)
        {
            throw new Exception("exception in a Method");
        } finally{
            System.out.printf("finally");
        }
    }
 
    public static void main(String [] args){
        try
        {
            aMethod(0);
        }
        catch (Exception ex)
        {
            System.out.printf("exception in main");
        }
        System.out.printf("finished");
    }
}

A. exception in main finished
B. finally finished
C. exception in main finally
D. finally exception in main finished

20.对于JVM内存配置参数:
-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3
,其最小内存值和Survivor区总大小分别是( D )

A. 5120m,1024m
B. 5120m,2048m
C. 10240m,1024m
D. 10240m,2048m

简答题:

1.什么是事务,事务的特性,什么叫ACID。

事务是数据库操作的最小工作逻辑单元,是作为单个工作逻辑单元执行的一系列操作,是一组不可再分割的操作集合

  1. 原子性( Atomicity ) 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做
  2. 一致性( Consistency ) 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是 不一致的状态。
  3. 隔离性( Isolation ) 一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
  4. 持续性( Durability ) 也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。

2.多线程同步有几种方法。

多线程的实现方法有继承Thread类,实现Runnable接口,实现Callable接口。
同步可以使用Synchronized关键字,也可以使用可重入锁ReentrantLock,ThreadLocal同步机制也可以实现同步。

3.TCP和UDP协议的区别,什么是三次握手。

1. 基于连接与无连接;
2. 对系统资源的要求(TCP较多,UDP少);
3. UDP程序结构较简单;
4. 流模式与数据报模式 ;
5. TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

所谓的“三次握手”:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。
为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。

编程题:

1.输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

import java.util.*;
public class test {
	public static void main (String[]args){ 
		int day=0;
		int month=0;
		int year=0;
		int sum=0;
		int leap;   
		System.out.print("请输入年,月,日\n");   
		Scanner input = new Scanner(System.in);
		year=input.nextInt();
		month=input.nextInt();
		day=input.nextInt();
		switch(month) /*先计算某月以前月份的总天数*/  
		{   
		case 1:
			sum=0;break;   
		case 2:
			sum=31;break;   
		case 3:
			sum=59;break;   
		case 4:
			sum=90;break;   
		case 5:
			sum=120;break;   
		case 6:
			sum=151;break;   
		case 7:
			sum=181;break;   
		case 8:
			sum=212;break;   
		case 9:
			sum=243;break;   
		case 10:
			sum=273;break;   
		case 11:
			sum=304;break;   
		case 12:
			sum=334;break;   
		default:
			System.out.println("data error");break;
		}   
		sum=sum+day; /*再加上某天的天数*/  
		if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/  
			leap=1;   
		else  
			leap=0;   
		if(leap==1 && month>2)/*如果是闰年且月份大于2,总天数应该加一天*/  
			sum++;   
		System.out.println("It is the the day:"+sum);
		}
}

2.输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,这样能使x最小。

import java.util.*;
public class test {
	public static void main (String[]args){ 
		int i=0;
		int j=0;
		int k=0;
		int x=0;
		System.out.print("请输入三个数\n");   
		Scanner input = new Scanner(System.in);
		i=input.nextInt();
		j=input.nextInt();
		k=input.nextInt();
        if(i>j)
        {
          x=i;
          i=j;
          j=x;
        }
        if(i>k)
        {
          x=i;
          i=k;
          k=x;
        }
        if(j>k)
        {
          x=j;
          j=k;
          k=x;
        }
		System.out.println(i+", "+j+", "+k);
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值