1. 程式人生 > >2018/10/27習題整理

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);
	}
}