题库 java_java题库
1.public class T {
int squares=81;
public static void main(String[] args) {
new T().go();
}
void go(){
incr(++squares);
System.out.println(squares);
}
void incr(int squares){
squares+=10;
}
返回值為82,沒有改變squares的值,不是引用傳遞不是c++
2.建個test類 在cmd中運行時輸入java test a b c,并且在你的main函數(shù)里面加這段話:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看輸出是什么?
是不是:
This is a simple Java program
arg is a b c
3.最后總結一下平常遇到的比較常見的將對象判定為可回收對象的情況:
1)顯示地將某個引用賦值為null或者將已經(jīng)指向某個對象的引用指向新的對象,比如下面的代碼:
Object obj = new Object();
obj = null;
Object obj1 = new Object();
Object obj2 = new Object();
obj1 = obj2;
2)局部引用所指向的對象,比如下面這段代碼:
void fun() {
.....
for(int i=0;i<10;i++) {
Object obj = new Object();
System.out.println(obj.getClass());
}
}
循環(huán)每執(zhí)行完一次,生成的Object對象都會成為可回收的對象。
3)只有弱引用與其關聯(lián)的對象,比如:
WeakReference wr = new WeakReference(new String("world"));
4.ArrayList x2=new ArrayList();編譯失敗
5. ? sacnaner scanner=new Scanner("one ,5,true,3,true,6,7,false");
scanner.useDelimiter(",");
while(scanner.hasNext()){
if(scanner.hasNextBoolean()){
system.out.print(scanner.next()+" ");
}else{
scanner.nextBoolean();}
6.java的this和super只能用在非靜態(tài)的方法
7.子類和父類有相同的成員變量時,存在兩個,用類名引用
8.成員變量可以被繼承,如果沒有同名的成員變量,子類.成員變量名 可以訪問父類的成員變量
9.實現(xiàn)接口也可以認為 cat ?implements jumper{} ?cat is-a jumper
10.
1. HashSet是通過HashMap實現(xiàn)的,TreeSet是通過TreeMap實現(xiàn)的,只不過Set用的只是Map的key
2. ?Map的key和Set都有一個共同的特性就是集合的唯一性.TreeMap更是多了一個排序的功能.
3. ?hashCode和equal()是HashMap用的, 因為無需排序所以只需要關注定位和唯一性即可.
a. hashCode是用來計算hash值的,hash值是用來確定hash表索引的.
b. hash表中的一個索引處存放的是一張鏈表, 所以還要通過equal方法循環(huán)比較鏈上的每一個對象 才可以真正定位到鍵值對應的Entry.
c. put時,如果hash表中沒定位到,就在鏈表前加一個Entry,如果定位到了,則更換Entry中的value,并返回舊value
4. 由于TreeMap需要排序,所以需要一個Comparator為鍵值進行大小比較.當然也是用Comparator定位的.
a. Comparator可以在創(chuàng)建TreeMap時指定
b. 如果創(chuàng)建時沒有確定,那么就會使用key.compareTo()方法,這就要求key必須實現(xiàn)Comparable接口.
TreeMap是使用Tree數(shù)據(jù)結構實現(xiàn)的,所以使用compare接口就可以完成定位了.
11.
WrappedString 的hashCode()是繼承自Object類,而String的hashCode()時重寫過的僅與字符串的內容有關。ws1 和ws2存儲地址不同,所以hashCode()的返回值不同,而s1和s2字符串的內容相同,哈希值相同。
12.
在實際開發(fā)過程中,我們經(jīng)常會遇到需要使用對象,而不是內置數(shù)據(jù)類型的情形。為了解決這個問題,Java語言為每一個內置數(shù)據(jù)類型提供了對應的包裝類。
所有的包裝類(Integer、Long、Byte、Double、Float、Short)都是抽象類Number的子類。
Integer也有doublevalue的值
13.List extends String> list ;list.add("foo")錯誤。
14.priorityqueue pq。pq.poll()獲取隊頭元素并移除。peek()獲取隊頭元素但是不移除。
15.enum中 ?ONE==ONE 和ONE.equals(ONE)都保證是true
16.
HashSet和HashMap的區(qū)別
HashMap**HashSet*
HashMap實現(xiàn)了Map接口HashSet實現(xiàn)了Set接口
HashMap儲存鍵值對HashSet僅僅存儲對象
使用put()方法將元素放入map中使用add()方法將元素放入set中
HashMap中使用鍵對象來計算hashcode值HashSet使用成員對象來計算hashcode值,對于兩個對象來說hashcode可能相同,所以equals()方法用來判斷對象的相等性,如果兩個對象不同的話,那么返回false
HashMap比較快,因為是使用唯一的鍵來獲取對象HashSet較HashMap來說比較慢
17.
TreeSet是依靠TreeMap來實現(xiàn)的,TreeMap是有平衡二叉樹來實現(xiàn)的
18
subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
返回此 set 的部分視圖,其元素范圍從 fromElement 到 toElement。
TreeSet s=new TreeSet();
TreeSet subs=new TreeSet();
for(int i=606;i<613;i++)
{
if(i%2==0)
s.add(i);
}
subs=(TreeSet)s.subSet(608, true,611,true);
s.add(609);
System.out.println(s+" "+subs);
[606, 608, 609, 610, 612] [608, 609, 610]
19.
Arrays.binarySearch()如果沒有查找到,返回最大長度
20.
sortedSet只是個接口,只有treeset可用
21.
總結
以上是生活随笔為你收集整理的题库 java_java题库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Less Css 教程
- 下一篇: 计算机专业必备基础知识500题,计算机基