2018/10/27习题整理

  1. 重写与重载的区别,重载的方法可以改变返回值类型吗?
    重写方法必须满足下列条件
    (1) 子类的方法的名称及参数必须和所覆盖的方法相同
    (2) 子类的方法返回类型必须和所覆盖的方法相同
    (3) 子类方法不能缩小所覆盖方法的访问权限
    (4) 子类方法不能抛出比所覆盖方法更多的异常

    重载方法必须满足下列条件
    (1) 方法名必须相同
    (2) 方法的参数签名必须相同
    (3) 方法的返回类型和方法的修饰符可以不相同
    方法的重载是可以改变返回值类型的。

  2. string,stringbuffer与StringBuilder的区别?
    1.首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String; String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。
    2.再来说线程安全;在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的

  3. 基本数据类型,还有与它们的包装类之间有什么区别?
    Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。
    包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示:在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一直,只是类名的第一个字母大写即可。
    对于包装类说,这些类的用途主要包含两种:
    a、作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。
    b、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。

  4. var a = new Array(5);与var a = new Array([5]);区别?
    var a = new Array(5);新建一个长度为5的数组
    var a = new Array([5]);新建一个长度为1的数组,值为[5]

  5. 为什么要使用框架?
    因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,你可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

  6. spring 的两大特性分别是什么?Spring的作用是什么?
    Spring 是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目的是简化企业开发。
    在项目中引入spring立即可以带来下面的好处
    a、降低组件之间的耦合度,实现软件各层之间的解耦。
    b、可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不需处理复杂的事务传播。
    c、容器提供单例模式支持,开发人员不再需要自己编写实现代码。
    d、容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。
    e、容器提供的众多辅作类,使用这些类能够加快应用的开发,如: JdbcTemplate、 HibernateTemplate。
    f、Spring对于主流的应用框架提供了集成支持,如:集成Mybatis、Hibernate、Struts等,这样更便于应用的开发。

  7. 谈谈你mvc的理解?
    MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。
    MVC中的模型、视图、控制器它们分别担负着不同的任务。

  1. 视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。
  2. 模型: 模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性
  3. 控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结果。

MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。
8. 判断 101-200 之间有多少个素数,并输出所有素数。

package test;

public class Tl3 {
	public static void main(String[] args) {
		int count = 0;

		for (int i = 101; i <= 200; i++) {
			int j;
			for (j = 2; j < i; j++) {
				// 如果j能被i整出在跳出循环
				if (i % j == 0) {
					break;
				}
			}
			// 判断循环是否提前跳出,如果j<i说明在2~j之间,i有可整除的数
			if (j >= i) {
				count++;
				System.out.print(i + "\t");
				// 换行,用count计数,每五个数换行
				if (count % 5 == 0) {
					System.out.print("\n");
				}
			}
		}
	}
}

  1. 如何用 JavaScript 编写九九乘法表,并显示到页面上?
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>九九乘法表</title>
	</head>
	<body>
		<div id="cf"></div>
		<script>
			function test() {
				var str = "";
				for(var x = 1; x <= 9; x++) {
					for(var y = 1; y <= x; y++) {
						str += y + "x" + x + "=" + y * x + " ";
						if(y == x) {
							str += "<br>";
						}
					}
				}
				document.getElementById("cf").innerHTML = str;
			}
			test();
		</script>
	</body>
</html>
  1. 一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第 10 次反弹多高?
package test;

public class Tl2 {

	public static void sumBallHeight(int initHeight, int times) {
		// 落地时经过多少米
		double sum = 0;
		// 反弹高度
		double height = 0;
		for (int i = 1; i <= times; i++) {
			if (i == 1) {
				height  = initHeight/2;
				sum += initHeight;
			} else {
				sum = sum + height * 2;
				height = height/2;
			}
		}
		System.out.println("第" + times + "次落地时,共经过" + sum + "米");
		System.out.println("第" + times + "次反弹" + height + "米");
	}

	public static void main(String[] args) {
		sumBallHeight(100, 10);
	}
}

猜你喜欢

转载自blog.csdn.net/Mantra86/article/details/83502588
今日推荐