0074 幾道面試題

昨天參加了惠裝網的面試,有些題不會做的,記錄下來

switch語句能否作用在byte、long、String上

Java1.7以前:byte、short、int、char
Java1.7開始:新增String
因此switch語句不能作用在long上,看下面代碼:

public class Test {public static void main(String[] args)  {long b=126L;                            //將b的類型改為byte、short、int、char都可以正常執行switch(b){                              //b類型為long時,提示編譯錯誤:Incompatible Types,Found"long", required "byte、short、int、char"case 125:System.out.println("A");break;case 126:System.out.println("B");break;case 127:System.out.println("C");break;}}
}

Java中如何跳出當前的多重嵌套循環

先看代碼:

public class Test {public static void main(String[] args)  {lable1:for(int i=0;i<8;i++) {                                   //循環1System.out.println("i= "+i);    lable2:for(int j=0;j<5;j++) {                               //循環2System.out.println("    j= " + j);  lable3:for(int m=0;m<2;m++) {                           //循環3if (j == 2) {System.out.println("    j==2  break lable2;");break lable2;                                   //j==2時,退出循環2,也就是上層循環}System.out.println("        m= " + m);}}}}
}

break語句一般只能退出當前循環
嵌套循環中如果要退出上面幾層的循環,那得先給該層循環定義一個標簽,在break語句處指定標簽名即可
注意的是,break只能退出包含了這個break語句的代碼塊,包括直接和間接的
break除了可用于退出嵌套循環,實際上可用于用標簽定義的代碼塊,比如下面這樣

public class Test {public static void main(String[] args)  {lable1:{lable2:{lable3:{for(int i=0;i<=3;i++) {if (i==2) {break lable2;}else{System.out.println("i=  " + i);}}}System.out.println("lable2的輸出,不會被執行");}System.out.println("lable3的i==2,終止lable2的執行");}}
}

HashTable與HashMap的區別

同步:HashTable的方法是同步的,而HashMap不是
null:HashTable的key和value都不能有null,而HashMap的key可以有一個null,value可以有多個null
遍歷:HashTable和HashMap都有values()、entrySet()、keySet()方法返回key的集合進行遍歷,但HashTable多了個elements()方法,可以返回Enumeration對象進行遍歷
hash值:HashTable直接使用Object的hashCode()的返回值,但HashMap還要進行一番計算
數組大小:HashTable默認大小是11,增加方式是2*old+1; 而HashMap默認是16,成倍增加
參考:http://blog.csdn.net/tianfeng701/article/details/7588091

hashCode()方法的作用

在HashMap、HashTable等集合類中,用于確定元素的存放位置,可以實現快速查找

其他: 兩個對象equals那么其hashCode一定要想等,反過來,hashCode相等,不一定equals,一個桶里可以放多個不equals的對象

序列化接口的id有什么用

可以將一個對象保存到硬盤或者在網絡上傳輸,這就需要對象的序列化。
查看Java標準庫中的類,很多都有一個“serialVersionUID”的屬性,比如HashMap是這樣的:

private static final long serialVersionUID = 362498820763181265L;

這個serialVersionUID的作用是什么呢?
就是為了保證對象在反序列化后的類跟序列化前的類能夠兼容。誰知道一個對象序列化后多久會反序列化呢,幾秒、幾天還是幾年,萬一反序列化的時候,原來的那個類進行了很多修改呢,還能反序列化為那個類型嗎?
簡單的說,這個id就是為了版本的兼容性。
那么如何指定這個id呢?
如果不特別指定,那系統會根據這個類的成員變量等信息計算一個hash。這種情況下,如果一個類后來增加刪除了幾個屬性,就很可能導致反序列化的失敗。因此最好還是自己指定一個id。
是不是id相同,就一定能反序列化成功呢?不是。如果那個類進行了一些非兼容性改動,那即使id相同,也會失敗。

構造器是否能被重寫

不能。構造器不能被繼承,不能被重寫。可以重載

Java中是否存在內存泄漏

Java有垃圾回收機制,不可達對象都會被垃圾回收器自動回收,一般而言,不會出現內存泄漏,但還是有可能的。
如果內存中存在大量的無用但可達的對象、長生命周期對象持有短生命周期對象,內存就可能會爆掉。考慮這兩種情況

  1. 一個類的靜態屬性指向了一個集合對象,而這個對象還會持續增大。
  2. 一個單例類持有外部對象的引用,這些外部對象在這個單例類的生命期內都是可達的,如果這些外部對象特別大或者持續增長而不能減小。

轉載于:https://www.cnblogs.com/sonng/p/7246238.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252218.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252218.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252218.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot入門之內嵌Tomcat配置

spring boot默認web程序啟用tomcat內嵌容器tomcat&#xff0c;監聽8080端口,servletPath默認為 / 。需要用到的就是端口、上下文路徑的修改&#xff0c;在spring boot中其修改方法極其簡單&#xff0c;實例如下&#xff1a; server.port8088 server.context-path/test 啟動程序…

第二十二章:動畫(六)

復合動畫您可以混合等待和未等待的調用來創建復合動畫。 例如&#xff0c;假設您希望按鈕在大小擴展的同時旋轉360度然后收縮。ViewExtensions類定義一個方法名稱ScaleTo&#xff0c;它為Scale屬性設置動畫&#xff0c;就像RotateTo為Rotate屬性設置動畫一樣。 Button大小的擴展…

C#操作Excel總結

0. 導入命名空間&#xff1a; 1234using Microsoft.Office.Core;using Microsoft.Office.Interop.Excel;using System.IO;using System.Reflection;1. 如何打開已有excel文檔&#xff0c;或者創建一個新的excel文檔 123Application app new Application();Workbooks wbks app…

Ubuntu16.04用源安裝Nginx+PHP5.6+MySQL5.6

安裝Nginx 1、首先添加nginx_signing.key(必須&#xff0c;否則出錯) $ wget http://nginx.org/keys/nginx_signing.key$ sudo apt-key add nginx_signing.key 2、添加]Nginx](http://nginx.org/)官方提供的源 $ echo "deb http://nginx.org/packages/ubuntu/ trusty ngin…

leetcode -39組合總數

搜就完事了&#xff0c;沒想著優化。唉~太菜&#xff0c;給一個位置標記位置&#xff0c;然后通過該位置向該位置及該位置以下尋找&#xff0c;這樣不存在什么重復回去查找問題。 如果總結大于目標值&#xff0c;回溯一下&#xff0c;如果不大于繼續。 class Solution { public…

避免某個子窗體重復運行的方法(showdialog、show)

在C#中窗口的顯示有兩種方式&#xff1a;模態顯示&#xff08;showdialog&#xff09;和非模態顯示&#xff08;show&#xff09;。 二者最常見的區別是&#xff1a;模態顯示后&#xff0c;彈出窗口阻止調用窗口的所有消息響應。只有在彈出窗口結束后調用窗口才能繼續。在模態窗…

ubantu之Git使用

本文講述在Ubuntu 14.04 x64環境下&#xff0c;如何安裝Git&#xff0c;配置連接GitHub&#xff0c;并且上傳本地代碼到github。 一. 注冊Git賬戶以及創建倉庫 要想使用github第一步當然是注冊github賬號了。之后就可以創建倉庫了&#xff08;免費用戶只能建公共倉庫&#xff0…

Java中基礎數據類型分類

Java中的四類八種基本數據類型 第一類&#xff1a;整數類型 byte short int long &#xff08;int是整形&#xff0c;也屬于整數類型&#xff09; 第二類&#xff1a;浮點型 float double 第三類&#xff1a;邏輯型 boolean(它只有兩個值可取true false) 第四類&#xff1…

C#如何打包EXE程序生成setup安裝文件

C#如何打包EXE程序生成setup安裝文件作為研發人員&#xff0c;在本機上開發的winform wpf或者控制臺程序需要發給其他人測試時候&#xff0c;一般需要對其進行打包生成setup安裝文件&#xff0c;今天第一次&#xff0c;搜了下資料&#xff0c;記錄如下&#xff1a;注&#xff1…

PHP正則表達式

php正則表達示的定界符 PHP的正則表達示定界符的規定如下&#xff1a; 定界符&#xff0c;不能用a-z A-Z 0-9 其他的都可以用。必須成對出現&#xff0c;有開始就有結束。 我們來例幾個例子&#xff1a; /中間寫正則/ 正確%中間寫正則% 正確^中間寫正則^ 正確中間寫正則 正確(…

最具戲劇性的分析診斷案例——十分鐘鎖定數據庫性能“元兇”

昨天&#xff0c;正好有點空時間想看看書&#xff0c;結果&#xff0c;剛打開書&#xff0c;沒看幾個字兒&#xff0c;接到用戶電話說&#xff1a;一個庫有問題&#xff0c;希望能幫忙看下。因為我知道他們那邊也有自己的專職DBA&#xff0c;于是問&#xff1a;沒讓人給看看嗎&…

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

有時候需要遠程家里的臺式機使用&#xff0c;因為我平時都是用 MAC 多&#xff0c;但是遠程喚醒只能針對局域網&#xff0c;比較麻煩&#xff0c;于是我想用微信實現遠程喚醒機器。 *注意&#xff1a;全文代碼可左右滑動查看 準備工作 本程序主要是實現遠程管理 Windows10操作系…

c#通過app.manifest使程序以管理員身份運行

通常我們使用c#編寫的程序不會彈出這個提示&#xff0c;也就無法以管理員身分運行。微軟的操作系統使用微軟的產品方法當然是有的&#xff0c;通過app.manifest配置可以使程序打開的時候&#xff0c;彈出UAC提示需要得到允許才可以繼續&#xff0c;這樣就獲得了管理員的權限來執…

Oracle 作業

Oracle 作業 dbms_job與 dbms_scheduler 用于安排和管理作業隊列,通過使用作業,可以使ORACLE數據庫定期執行特定的任務。 一. dbms_job 1.1. 創建 variable jobno number; begin dbms_job.submit(:jobno,proce_t;, sysdate, sysdate1/24/60); commit; end; / 1.2. 參數 Job 輸出…

企業級 Spring Boot 教程 (十四)用restTemplate消費服務

構架工程 創建一個springboot工程&#xff0c;去消費RESTFUL的服務。這個服務是 http: ///gturnquist-quoters.cfapps.io/api/random &#xff0c;它會隨機返回Json字符串。 Spring Cloud大型企業分布式微服務云架構源碼請加一七九一七四三三八零 在Spring項目中&#xff0c;它…

MOS管基本認識(快速入門)

1. 三個極的判定G極(gate)—柵極&#xff0c;不用說比較好認 S極(source)—源極&#xff0c;不論是P溝道還是N溝道&#xff0c;兩根線相交的就是 D極(drain)—漏極&#xff0c;不論是P溝道還是N溝道&#xff0c;是單獨引線的那邊2. N溝道與P溝道判別箭頭指向G極的是N溝道 箭頭背…

基礎構建模塊

5 基礎構建模塊 Java平臺類庫包含了豐富的并發基礎構建模塊&#xff0c;例如線程安全的容器類以及各種用于協調多個相互協作的線程控制流的同步工具類(Synchronizer)。本章將介紹其中一些最有用的并發構建模塊。 5.1同步容器類 同步容器類包括Vector和Hashtable&#xff0c;二者…

TCP定時器

1. TCP中7種定時器 TCP中有7中定時器 &#xff08;1&#xff09;建立連接定時器(connection-establishment timer) &#xff08;2&#xff09;重傳定時器(retransmission timer) &#xff08;3&#xff09;延遲應答定時器(delayed ACK timer) &#xff08;4&#xff09;堅持定時…

sql優化大全

1. 優化SQL步驟 1. 通過 show status和應用特點了解各種 SQL的執行頻率 通過 SHOW STATUS 可以提供服務器狀態信息&#xff0c;也可以使用 mysqladmin extende d-status 命令獲得。 SHOW STATUS 可以根據需要顯示 session 級別的統計結果和 global級別的統計結果。 如顯示當前s…

Halcon實現邊緣提取

一、邊緣提取 1、設置ROI興趣區域 2、快速二值化&#xff0c;并連接相鄰區域。 這樣做的目的是進一步減少目標區域&#xff0c;通過二值化將目標區域大概輪廓提取出來 3、提取最接近目標區域的輪廓 常用函數有boundary&#xff0c;gen_contour_region_xld 4、根據自己的需求提取…