java在集合中的方法变动的类_java中级面试题 之基础篇
一、Java基礎
1. 實例方法和靜態方法有什么不一樣?
1、在外部調用靜態方法時,可以使用"類名.方法名"的方式,也可以使用"對象名.方法名"的方式。而實例方法只有后面這種方式。也就是說,調用靜態方法可以無需創建對象。
2、靜態方法在訪問本類的成員時,只允許訪問靜態成員(即靜態成員變量和靜態方法),而不允許訪問實例成員變量和實例方法;實例方法則無此限制。
2. Java中的異常有哪幾類?分別怎么使用?
編譯時異常,運行時異常。編譯時異常需要try...catch才能編譯通過。運行時異常不用try...catch也能編譯通過。
RuntimeException是非檢出異常,不需要try...catch也能編譯通過。
IoException,SQLException等等其他所有異常都是檢出異常,必須要try...catach才能編譯通過。
3. 常用的集合類有哪些?比如List如何排序?
分兩種,一種實現Set接口,一種是實現List接口的。
Set:TreeSet,HashSet.
List:ArrayList,LinkedList,Vector(線程安全)。
JDK7以前用collections.sort(list,Comparator).
JDK8直接用List.sort(Comparator).
4. ArrayList和LinkedList內部的實現大致是怎樣的?他們之間的區別和各自適應的場景是什么?
ArrayList,是數組結構:查詢快,增刪慢
LinkedList,是鏈表結構:查詢慢,增刪快
6. ClassLoader有什么用?
類加載器:所有類都需要Classloader來加載。
7. ==和equals的區別?
==判斷對象物理地址。
equals判斷對象Value是否相等。
8. hashCode方法的作用?
在hashMap中使用,把一個對象變成一個整型。hashCode規范,如果兩個對象的equals返回true,那他們的hashCode必須相等,但是hashCode相等,不一定equals不一定相等。
9. Object類中有哪些方法?列舉3個以上。
構造方法,toString(),equals,hashCode,getClass,finalize,clone,三個wait(),notify,notifyAll.
10.?NIO是什么?適用于何種場景?
NIO是newIO,接口都是異步的,非阻塞的。
16. Java中一個字符占多少個字節,擴展再問int,?long,?double占多少字節
一個字符兩個字節,int 4 , long double 8
17. 創建一個類的實例都有哪些辦法?
new ,反射。
19. LinkingBlockingQueue與ArrayBlockingQueue的區別,他們的適用場景?
LinkingBlockQueue 鏈表實現的阻塞隊列,適合一個一個放,一個一個取。
ArrayBlocakingQueue數組實現的阻塞隊列,適合三個放,多個放,只適合多個取,不適合單個取。
20. Session/Cookie的區別?
Session存在服務器端。
Cookie存在客戶端(瀏覽器上)。
21. String/StringBuffer/StringBuilder的區別,擴展再問他們的實現?
String 值不可變
StringBuffer 值可變,線程安全
StringBuilder 值可變,線程不安全
二、JVM
1、JVM的基本結構
堆 棧 方法區
幾乎所有的對象都存放在堆上,并且java堆是完全自動化管理的,通過垃圾回收機制;
每次函數調用的數據都是通過java棧傳遞的。
2、JVM有哪些常用啟動參數可以調整?
-Xms:設置jvm內存的初始大小
-Xmx:設置jvm內存的最大值
我們會遇到內存溢出,java.lang.OutOfMemoryError 就是需要配置jvm
3、如何查看JVM的內存使用情況?
有一些工具 JMap JMap是JDK中自帶的一個用于分析JVM內存狀況的工具,
也可以通過代碼去查看
Runtime run =Runtime.getRuntime();long max = run.maxMemory()/(1024*1024);long total = run.totalMemory()/(1024*1024);long free = run.freeMemory()/(1024*1024);long usable = max - total +free;
System.out.println("最大內存 = " +max);
System.out.println("已分配內存 = " +total);
System.out.println("已分配內存中的剩余空間 = " +free);
System.out.println("最大可用內存 = " + usable);
https://www.cnblogs.com/tietazhan/articles/5771886.html
https://blog.csdn.net/yy251066394/article/details/78469270
總結
以上是生活随笔為你收集整理的java在集合中的方法变动的类_java中级面试题 之基础篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无冬镇物语有哪些攻略
- 下一篇: Java接口能不能有静态方法_接口可以在