1. 程式人生 > 其它 >java基礎4.19

java基礎4.19

1.JAVA 的反射機制的原理。
JAVA反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠調用它的任意一個方法;這種動態獲取的資訊以動態呼叫物件的方法的功能稱為java語言的反射機制。

Java反射機制主要提供了以下功能: 在執行時判斷任意一個物件所屬的類;在執行時構造任意一個類的物件;在執行時判斷任意一個類所具有的成員變數和方法;在運行時呼叫任意一個物件的方法;生成動態代理。
2.靜態巢狀類(Static Nested Class)和內部類(Inner Class)的不同?
內部類類中類(內部類不為同一包的其他類可見,具有很好的封裝性),分為靜態內部類

成員內部類區域性內部類以及匿名內部類區域性內部類寫在方法裡面用到最多的就是匿名內部類
一. 靜態的內部類稱為巢狀類,巢狀類不能直接引用外部類的non-static屬性和方法,建立巢狀類物件時不依賴外部類物件;
二. 靜態內部類沒有了指向外部的引用,和C++的巢狀類很相像了,Java內部類和C++巢狀類最大的不同在於是否具有指向外部引用這點;
三. 在任何非靜態內部類中,都不能有靜態資料、靜態方法或者又一個靜態內部類(也就是不止一層),然後靜態內部類可以擁有這一切。
3.如何將String型別轉化成Number型別。
Integer類valueOf方法可以將String轉成Number
4.什麼是值傳遞和引用傳遞?
物件被值傳遞
,意味著傳遞了物件的一個副本。因此,就算改變了物件副本也不會影響源物件的值。
物件被引用傳遞,意味著傳遞的並不是實際的物件,而是物件的引用。因此,外部對引用物件所做的改變會反映到所有的物件上
5.Java的訪問修飾符是什麼?
在Java程式語言中有四種許可權訪問控制符,這四種訪問許可權的控制符能夠控制類中成員的可見性
public是公共的,被public所修飾的成員可以在任何類中都能被訪問到。
protected是受保護的,受到該類所在的包所保護
friendly是友好的,即在成員的前面不寫任何的訪問修飾符的時候,預設就是友好的。所謂友好的,是對同一package的類友好。 **
private是
私有的,即只能在當前類中被訪問到,它的作用域最小。**
6.Java 基礎資料型別有哪些?
byte(位元組) short(短整型) int(整型) long(長整型) float(浮點型) double(雙精度) char(字元型) boolean(布林型)
7.hashCode()和equals()方法的重要性體現在什麼地方?
Java中的HashMap使用hashCode()和equals()方法確定鍵值對的索引,當根據鍵獲取值的時候也會用到這兩個方法。如果沒有正確的實現這兩個方法,兩個不同的鍵可能會有相同的hash值,因此,可能會被集合認為是相等的。而且,這兩個方法也用來發現重複元素。所以這兩個方法的實現對HashMap的精確性和正確性是至關重要的
8.switch 中用於判斷的表示式,可以用哪些資料型別?
一. int
二.char
三.byte
四.short
五.列舉
六. String: PS:對JDK版本有要求,必須為1.7及以上版本
9.char型變數中能不能存貯一箇中文漢字?為什麼?
Java裡採用了Unicode編碼格式,Unicode編碼中一個char型佔用2個位元組,而一個漢字也是佔用2個位元組,所以可以儲存中文漢字
備註:C語言裡,char佔用1個位元組,不用存漢字。
10.靜態變數和例項變數的區別?
在語法定義上的區別:靜態變數前要加static關鍵字,而例項變數前則不加
在程式執行時的區別:例項變數屬於某個物件的屬性,必須建立了例項物件,其中的例項變數才會被分配空間,才能使用這個例項變數。靜態變數不屬於某個例項物件,而是屬於類,所以也稱為類變數,不用建立任何例項物件,靜態變數就會被分配空間,靜態變數就可以被使用了。總之,例項變數必須建立物件後才可以通過這個物件來使用,靜態變數則可以直接使用類名來引用。