个人测试六

一、单选题

1.判断以下Teacher类的main方法的运行结果为( B )

public class Teacher extends Person3 {
	public Teacher() {
		super();
	}
	public Teacher(int a) {
		System.out.println(a);
	}
	public void func() {
		System.out.print("2, ");
	}
	public static void main(String[] args) {
		Teacher t1 = new Teacher();
		Teacher t2 = new Teacher(3);
	}
}
class Person3 {
	public Person3() {
		func();
	}
	public void func() {
		System.out.println("1, ");
	}
}

A. 1, 1, 3
B. 2, 2, 3
C. 1, 3
D. 2, 3

2.子类A继承父类B,A a = new A(); 则父类B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块 执行的先后顺序是( C )

A. 父类B静态代码块->父类B构造函数->子类A静态代码块->父类B非静态代码块->子类A构造函数->子类A非静态代码块

B. 父类B静态代码块->父类B构造函数->父类B非静态代码块->子类A静态代码块->子类A构造函数->子类A非静态代码块

C. 父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数

D. 父类B构造函数->父类B静态代码块->父类B非静态代码块->子类A静态代码块->子类A构造函数->子类A非静态代码块

3.java中下面哪个能创建并启动线程( C )

public class MyRunnable implements Runnable{
    public void run(){
           //some code here
    }
}

A.new Runnable(MyRunnable).start()
B.new Thread(MyRunnable).run()
C.new Thread(new MyRunnable()).start()
D.new MyRunnable().start()

如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法:
Thread(Runnable target)
Thread(Runnable target, String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
所以A、D的实例化线程错误。
启动线程: 在线程的Thread对象上调用start()方法,而不是run()或者别的方法。
所以B的启动线程方法错误。

4.关于wait()和sleep()说法正确的是(多选)( B C )

A.wait()和sleep()都会释放锁
B.sleep()可以在任何地方使用
C.wait()只能在方法或者语句块中使用
D.wait()和sleep()都是Thread类的方法

sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态)
wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的notify()方法(或notifyAll()方法)时才能唤醒等待池中的线程进入等锁池(lockpool),如果线程重新获得对象的锁就可以进入就绪状态

5.以下哪些类是线程安全的(多选)?(ADE )

A. Vector
B. HashMap
C. ArrayList
D. StringBuffer
E. Properties

A,Vector相当于一个线程安全的List
B,HashMap是非线程安全的,其对应的线程安全类是HashTable
C,Arraylist是非线程安全的,其对应的线程安全类是Vector
D,StringBuffer是线程安全的,相当于一个线程安全的StringBuilder
E,Properties实现了Map接口,是线程安全的

6.有关Cookie下列说法正确的是?( A )

A. Cookie是将会话数据保存在客户端来维护会话状态的一种方式。它是服务器发送给浏览器的体积 很小的纯文本信息
B. Cookie是服务器端状态管理机制
C. Cookie是相对安全的一种状态管理机制
D. Cookie可以保存任意对象数据

7.在Java EE中,以下对RequestDispatcher描述正确的是( C )

A. Jsp中有个隐含的对象diapatcher,它的类型是RequestDispatcher
B. ServletConfig有一个方法:getRequestDispatcher可以返RequestDipatcher对象
C. RequestDipatcher 有一个方法:forward可以把请求继续传递给别的Servlet或者JSP界面
D. JSP中有个隐含的默认对象request,它的类型是RequestDipatcher

8.下列关于Spring特性中IoC描述错误的是: ( A )

A. IoC就是指程序之间的关系由程序代码直接操控
B. 所谓“控制反转”是指控制权由应用代码转到外部容器,即控制权的转移
C. IoC将控制创建的职责搬进了框架中,从应用代码脱离开来
D. 使用Spring的IoC容器时只需指出组件需要的对象,在运行时Spring的IoC容器会根据XML配置数据提供给它

9.关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是(C )

A. 它负责处理HTTP请求
B. 加载配置文件
C. 实现业务操作
D. 初始化上下应用对象ApplicationContext

10.以下那种操作是专门用于完成对数据库数据的查询的?(D)

A.DCL
B.DDL
C.DML
D.DQL

数据库定义语言: DDL,数据库定义语言用于创建、修改和删除数据库内的数据结构。
数据库查询语言:DQL,数据查询语言用于从数据库中的一个或多个表中查询指定的数据。
数据操作语言:DML,用与修改数据库中的数据,包括插入、更新和删除数据。
数据控制语言:DCL,用于控制对数据库的访问。

二、填空题

1.JAVA的JVM的内存可分为3个区: 堆(heap)栈(tack)方法区(method)

2.线程的优先级在 110 之间, 数值越大优先级 越高

3.Java 集合可分为 CollectionMap 两种体系。其中Collection接口是list和set的顶层父接口。

4.List 接口的特点是元素 (有|无)顺序, 可以(可以|不可以)重复;Set 接口的特点是元素 (有|无)顺序,不可以(可以|不可以)重复。

5.Map 接口的特点是元素为<key, value>,其中 value (key|value)可以重复, key(key|value)不可以重复。

三、简答题

1.Spring中事务管理支持哪几种方式以及每种方式的具体使用方法?

实现方式两种:

  • 编码方式

  • 声明式事务管理方式

声明式事务管理是通过AOP技术实现的,实质就是:在方法执行前后进行拦截,然后在目标方法开始之前创建并加入事务,执行完成目标方法后根据执行情况提交后回滚事务。
声明式事务管理有两种方式:基于XML配置文件(拦截器 AOP),通过标签@Transaction注解

2.Spring AOP 是什么?

AOP是面向切面编程,就是将那些与业务需求无关,但对多个对象产生影响的公共行为和逻辑抽取并封装成一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,提高系统的可维护性。可用于权限认证、日志、事务处理

3.Spring AOP的相关注解有哪些?

@Aspect(切面类)
@Before(前置通知)
@AfterRetuning(返回后通知)
@After(后置通知)
@AterThrowing(异常通知)

4.Spring AOP的相关术语有什么?

  • joinPoint(连接点)
  • pointCut(切点)
  • weaving(织入点)
  • Aspect(切面类)
  • Proxy(代理类)
  • Target(目标对象)
  • Introduction(引介)

5.Spring MVC 的执行流程?

1. 用户发送请求到前端控制器DispatcherServlet
2. 前端控制器收到请求后调用处理器映射器HandlerMapping,请求获取Handler
3. 处理器映射器根据具体url生成处理器以及处理器拦截器,一并返回给前端控制器
4. 前端控制器通过处理器适配器HandlerAdapt请求执行Handler
5. 执行处理器
6. 返回ModelAndView到处理器适配器
7. 处理器适配器传ModelAndView给前端控制器
8. 前端控制器将ModelAndView传给视图解析器ViewResolver进行视图解析
9. 视图解析器返回view对象给前端控制器
10. 前端控制器再渲染视图 
11. 前端控制器响应用户

五、编程题

1.用Java实现一个冒泡排序算法 ,对10个数进行排序。

/**
*冒泡排序:即从第一个数开始轮番和后面的数比较
*/
public class MainTest{
	
	public static void main(String args[]){
		int a[]=new int[]{3,6,9,11,4,5,43,14,22,17};	
		sort(a);
		System.out.println(Arrays.toString(a));
	}
	public static void sort(int a[]){
		int len=a.lenth;
		for(int i=0;i<len;i++){
			for(int j=0;j<len-i-1;j++){
				if(a[j]>a[j+1]){
					int temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
		}
	}
}

2.用Java实现一个选择排序(直接排序)算法 ,对10个数进行排序。

/*
*直接排序:从所有的序列中找出最小值,然后放在第一个位置
*/
public class MainTest{
	
	public static void main(String []args){
		int a[]=new int[]{3,6,9,11,4,5,43,14,22,17};
		sort(a);
		System.out.println(Arrays.toString(a));
	}

	public static void sort(int a[]){
		int len=a.lenth;
		for(int i=0;i<len-1;i++){
			int min=i;
			for(int j=i+1;j<len;j++){
				if(a[j]<a[min]){
					min=j;
				}
			}
			if(min!=i){
				int temp=a[i];
				a[i]=a[min];
				a[min]=temp;
			}
		}
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值