日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Stackoverflow上人氣最旺的10個(gè)Java問題

瀏覽:145日期:2022-09-05 17:50:37
1、 為什么兩個(gè)(1927年)時(shí)間相減得到一個(gè)奇怪的結(jié)果?

(3623個(gè)贊)

如果執(zhí)行下面的程序,程序解析兩個(gè)間隔1秒的日期字符串并比較:

public static void main(String[] args) throws ParseException { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str3 = "1927-12-31 23:54:07"; String str4 = "1927-12-31 23:54:08"; Date sDt3 = sf.parse(str3); Date sDt4 = sf.parse(str4); long ld3 = sDt3.getTime() /1000; long ld4 = sDt4.getTime() /1000; System.out.println(ld4-ld3);}

輸出是:

353

為什么 ld4-ld3 不是1(因?yàn)槲蚁M@兩個(gè)時(shí)間差是一秒),而是353?

如果將日期字符串各加一秒:

String str3 = "1927-12-31 23:54:08"; String str4 = "1927-12-31 23:54:09";

ld4-ld3 的結(jié)果是1.

sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]Locale(Locale.getDefault()): zh_CN

解決方案

這是上海時(shí)區(qū),在12月31日有一個(gè)變化。

查閱這個(gè)網(wǎng)址來(lái)了解上海在1927年時(shí)區(qū)變化的細(xì)節(jié)。基本上在1927年年底的午夜,始終會(huì)回?fù)?分52秒。所以“1927-12-31 23:54:08”實(shí)際上發(fā)生了兩次,看起來(lái)Java解析了后一次的時(shí)間作為當(dāng)?shù)氐娜掌诤蜁r(shí)間導(dǎo)致了差異。

2、Java是“引用傳遞”還是“值傳遞”?

(2480個(gè)贊)

我一直認(rèn)為Java是引用傳遞;然而,我看了一堆博客(例如這篇)聲稱不是這樣的。我認(rèn)為我沒有理解它們之間的區(qū)別。

給個(gè)解釋?

解決方案

Java一直是值傳遞。不幸的是,他們決定把指針叫做引用,因此新人總是被搞暈。因?yàn)檫@些引用也是通過值傳遞的。

3、一個(gè)關(guān)于Java += 操作符的問題

(2223贊)

直到今天我認(rèn)為這個(gè)例子:

i += j;

只是一個(gè)簡(jiǎn)寫的:

i = i + j;

但如果這樣做:

int i = 5;long j = 8;

然而 i = i + j; 沒法編譯,而 i += j; 就可以編譯。

這意味著i += j; 實(shí)際上是i = (type of i) (i + j)的簡(jiǎn)寫么?

解決方案

總有人問這類問題,JLS里有答案。參見 §15.26.2復(fù)合賦值運(yùn)算符。摘錄:

E1 op= E2 型的復(fù)合賦值表達(dá)式等價(jià)于 E1 = (T)((E1) op (E2)),這里 T 是 E1 的類型,不同的是 E1 只計(jì)算一次。

一個(gè)例子,引自 §15.26.2

[...] 下面的代碼是正確的:

short x = 3;x += 4.6;

x的結(jié)果等于7,因?yàn)樗葍r(jià)于:

short x = 3;x = (short)(x + 4.6);

換句話說(shuō),你的假設(shè)是正確的。

4、HashMap 和 Hashtable 之間的不同?

(1769個(gè)贊)

Java中 HashMap 和 Hashtable的不同是什么?

非多線程應(yīng)用中使用哪個(gè)更有效率?

解決方案

Java 中 HashMap 和 HashTable 有幾個(gè)不同點(diǎn):

Hashtable 是同步的,然而 HashMap不是。 這使得HashMap更適合非多線程應(yīng)用,因?yàn)榉峭綄?duì)象通常執(zhí)行效率優(yōu)于同步對(duì)象。Hashtable 不允許 null 值和鍵。HashMap允許有一個(gè) null 鍵和人一個(gè) NULL 值。HashMap的一個(gè)子類是LinkedHashMap。所以,如果想預(yù)知迭代順序(默認(rèn)的插入順序),只需將HashMap轉(zhuǎn)換成一個(gè)LinkedHashMap。用Hashtable就不會(huì)這么簡(jiǎn)單。

因?yàn)橥綄?duì)你來(lái)說(shuō)不是個(gè)問題,我推薦使用HashMap。如果同步成為問題,你可能還要看看ConcurrentHashMap。

5、(如何) 讀取或者把一個(gè) InputStream 轉(zhuǎn)成一個(gè) String

(1724個(gè)贊)

如果你有一個(gè) java.io.InputStream 對(duì)象,如處理這個(gè)對(duì)象并生成一個(gè)字符串?

假定我有一個(gè) InputStream 對(duì)象,它包含文本數(shù)據(jù),我希望將它轉(zhuǎn)化成一個(gè)字符串(例如,這樣我可以將流的內(nèi)容寫到一個(gè)log文件中)。

InputStream 轉(zhuǎn)化成 String 最簡(jiǎn)單方法是什么?

解決方案

使用 Apache commons IOUtils庫(kù)來(lái)拷貝InputStream到StringWriter是一種不錯(cuò)的方式,類似這樣:

StringWriter writer = new StringWriter();IOUtils.copy(inputStream, writer, encoding);String theString = writer.toString();

甚至

// NB: does not close inputStream, you can use IOUtils.closeQuietly for that// 注意:不關(guān)閉inputStream,你可以使用 IOUtils.closeQuietlyString theString = IOUtils.toString(inputStream, encoding);

或者,如果不想混合Stream和Writer,可以使用 ByteArrayOutputStream。

6、為什么Java中的密碼優(yōu)先使用 char[] 而不是String?

(1574個(gè)贊)

在Swing中,密碼字段有一個(gè)getPassword()(返回 char數(shù)組)方法而不是通常的getText()(返回String)方法。同樣的,我遇到過一個(gè)建議,不要使用 String 來(lái)處理密碼。

為什么String涉及到密碼時(shí),它就成了一個(gè)安全威脅?感覺使用char數(shù)組不太方便。

解決方案

String是不可變的。這意味著一旦創(chuàng)建了字符串,如果另一個(gè)進(jìn)程可以進(jìn)行內(nèi)存轉(zhuǎn)儲(chǔ),在GC發(fā)生前,(除了反射)沒有方法可以清除字符串?dāng)?shù)據(jù)。

使用數(shù)組操作完之后,可以顯式地清除數(shù)據(jù):可以給數(shù)組賦任何值,密碼也不會(huì)存在系統(tǒng)中,甚至垃圾回收之前也是如此。

所以,是的,這是一個(gè)安全問題 – 但是即使使用了char數(shù)組,僅僅縮小了了攻擊者有機(jī)會(huì)獲得密碼的窗口,它值針對(duì)制定的攻擊類型。

7、遍歷HashMap的最佳方法

(1504個(gè)贊)

遍歷HashMap中元素的最佳方法是什么?

解決方案

這樣遍歷entrySet:

public static void printMap(Map mp) { Iterator it = mp.entrySet().iterator(); while (it.hasNext()) {Map.Entry pair = (Map.Entry)it.next();System.out.println(pair.getKey() + " = " + pair.getValue());it.remove(); // avoids a ConcurrentModificationException }}

更多請(qǐng)查閱Map。

8、(如何)從數(shù)組創(chuàng)建ArrayList

(1468個(gè)贊)

我有一個(gè)數(shù)組,初始化如下:

Element[] array = {new Element(1), new Element(2), new Element(3)};

我希望將這個(gè)數(shù)組轉(zhuǎn)化成一個(gè)ArrayList類的對(duì)象。

解決方案

new ArrayList<Element>(Arrays.asList(array))9、產(chǎn)生一個(gè)Java的內(nèi)存泄露

(1478個(gè)贊)

我有過一個(gè)面試,被問到如何產(chǎn)生一個(gè)Java內(nèi)存泄露。不用說(shuō),我感到相當(dāng)傻,甚至如何產(chǎn)生一個(gè)的線索都沒有。

那么怎么才能產(chǎn)生一個(gè)內(nèi)存泄露呢?

解決方案

在純Java中,有一個(gè)很好的方式可以產(chǎn)生真正的內(nèi)存泄露(通過執(zhí)行代碼使對(duì)象不可訪問但仍存在于內(nèi)存中):

應(yīng)用產(chǎn)生一個(gè)長(zhǎng)時(shí)間運(yùn)行的線程(或者使用一個(gè)線程池加速泄露)。線程通過一個(gè)(可選的自定義)類加載器加載一個(gè)類。該類分配大內(nèi)存(例如,new byte[1000000]),賦值給一個(gè)強(qiáng)引用存儲(chǔ)在靜態(tài)字段中,再將它自身的引用存儲(chǔ)到ThreadLocal中。分配額外的內(nèi)存是可選的(泄露類實(shí)例就夠了),但是這樣將加速泄露工作。線程清除所有自定義類的或者類加載器載入的引用。重復(fù)上面步驟。

這樣是有效的,因?yàn)門hreadLocal持有對(duì)象的引用,對(duì)象持有類的引用,接著類持有類加載器的引用。反過來(lái),類加載器持有所有已加載類的引用。這會(huì)使泄露變得更加嚴(yán)重,因?yàn)楹芏郕VM實(shí)現(xiàn)的類和類加載都直接從持久帶(permgen)分配內(nèi)存,因而不會(huì)被GC回收。

10、使用Java在一個(gè)區(qū)間內(nèi)產(chǎn)生隨機(jī)整數(shù)數(shù)

(1422個(gè)贊)

我試著使用Java生成一個(gè)隨機(jī)整數(shù),但是隨機(jī)被指定在一個(gè)范圍里。例如,整數(shù)范圍是5~10,就是說(shuō)5是最小的隨機(jī)值,10是最大的。5到10之間的書也可以是生成的隨機(jī)數(shù)。

解決方案

標(biāo)準(zhǔn)的解決方式(Java1.7 之前)如下:

import java.util.Random;public static int randInt(int min, int max) { Random rand; int randomNum = rand.nextInt((max - min) + 1) + min; return randomNum;}

請(qǐng)查看相關(guān)的JavaDoc。在實(shí)踐中,java.util.Random 類總是優(yōu)于 java.lang.Math.random()。

特別是當(dāng)標(biāo)準(zhǔn)庫(kù)里有一個(gè)直接的API來(lái)完成這個(gè)工作,就沒有必要重復(fù)制造輪子了。

原文鏈接: nolsit 翻譯: ImportNew

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美女在线视频一区| 欧美精品不卡| 麻豆成人91精品二区三区| 日韩三级久久| 中文字幕av亚洲精品一部二部| 在线综合视频| 亚洲国产专区校园欧美| 久久在线视频免费观看| 欧美91福利在线观看| 妖精视频成人观看www| 日韩视频在线一区二区三区 | 国产精品美女| 蜜臀久久99精品久久久久宅男| 日韩在线播放一区二区| 色综合视频一区二区三区日韩| 色8久久久久| 日韩激情精品| 在线一区二区三区视频| 亚洲日本欧美| 国产精品久久| 成人日韩精品| 黄色免费成人| 欧美在线不卡| 高清av不卡| 日韩中文字幕麻豆| 欧美国产精品| 九一精品国产| 亚洲一级大片| 久久精品国产99国产| 久久精品1区| 亚洲精品国产日韩| 麻豆视频一区| 久久在线免费| 日本大胆欧美人术艺术动态| 国产精品久久久久av蜜臀| 日本在线高清| 欧美亚洲三级| 91精品久久久久久久久久不卡| 在线精品一区二区| 久久伊人久久| 夜夜嗨av一区二区三区网站四季av| 欧美一级网址| 久久精品中文| 久久国产精品色av免费看| 久久91导航| 青青在线精品| 免费国产自久久久久三四区久久 | 视频一区视频二区中文| 国产精品午夜av| 国产精品av一区二区| 日本三级亚洲精品| 香蕉久久精品| 久久国产视频网| 女人av一区| 麻豆视频观看网址久久| 久久不射网站| 亚洲深夜视频| 欧美在线91| 亚洲少妇一区| 国产白浆在线免费观看| 四虎国产精品免费久久| 樱桃视频成人在线观看| 91福利精品在线观看| 一区在线视频观看| 91嫩草亚洲精品| 欧美永久精品| 亚洲综合二区| 91精品久久久久久久久久不卡| 青草av.久久免费一区| 亚洲午夜视频| 日本黄色精品| 国产伦乱精品| 亚洲三级毛片| 尤物精品在线| 日韩欧美自拍| 国产精品亚洲片在线播放| 国产精品嫩草99av在线| 激情国产在线| 欧美aa在线视频| 亚洲bt欧美bt精品777| 不卡中文字幕| 日韩欧美午夜| 日韩av有码| 欧美激情在线精品一区二区三区| 美国三级日本三级久久99| 91精品国产乱码久久久久久久| 九九久久国产| 国产色99精品9i| 亚洲97av| 蜜臀久久99精品久久久久久9| 久久三级视频| 麻豆视频在线看| 精品国产午夜| 国产精品一区二区三区www| 蜜桃视频第一区免费观看| 国产在线成人| 99久久亚洲精品| 夜鲁夜鲁夜鲁视频在线播放| 精品日产乱码久久久久久仙踪林| 国产欧美一区二区三区米奇| 亚洲精品中文字幕99999| 久久国产主播| 日韩精品导航| 欧美午夜不卡影院在线观看完整版免费| 欧美丰满日韩| 久久精品国产亚洲aⅴ| 尤物在线精品| 美女少妇全过程你懂的久久| 日韩啪啪电影网| 午夜av成人| 久久99精品久久久久久园产越南 | 亚洲另类黄色| 亚洲欧美视频| 在线国产日韩| 亚洲三级在线| 日本aⅴ精品一区二区三区 | 国产精品黄色| 国产精品久久久一区二区| 欧美精品国产一区| 欧美亚洲自偷自偷| 国产精品最新| 久久久国产精品网站| 麻豆高清免费国产一区| 久久一区精品| 91欧美国产| 亚洲v在线看| 激情综合网五月| 亚洲综合不卡| 日本亚洲最大的色成网站www| 亚洲人www| 91精品国产自产精品男人的天堂| 婷婷精品久久久久久久久久不卡| 日本在线不卡视频| 国产精品色婷婷在线观看| 久久国产精品美女| 岛国av免费在线观看| 蜜桃精品在线| 午夜免费一区| 亚洲欧美在线综合| 国产精品尤物| 福利精品在线| 1000部精品久久久久久久久| 欧美日韩国产综合网| 喷白浆一区二区| 日本aⅴ亚洲精品中文乱码| 国产精品日韩精品中文字幕| 欧美aa在线视频| 日韩中文在线电影| 亚洲中午字幕| 国产情侣久久| 国产va在线视频| 欧美特黄a级高清免费大片a级| 免费成人在线影院| 国产精品久久久一区二区| 最近高清中文在线字幕在线观看1| 久久网站免费观看| 亚洲精品免费观看| 老司机精品视频网| 欧美/亚洲一区| 免费成人在线影院| 欧美国产极品| 成人久久久久| 亚洲制服一区| 国产伊人久久| 香蕉成人久久| 精品一区二区男人吃奶| 999国产精品| 日本不卡一二三区黄网| 欧美aaaaaa午夜精品| 久久久久国产一区二区| 亚洲一区二区三区中文字幕在线观看 | 精品国模一区二区三区| 性色一区二区| 国产精品tv| 久久久噜噜噜| 日韩国产一区二| a日韩av网址| 天堂va欧美ⅴa亚洲va一国产| 老司机精品视频网| 国产精品婷婷| 国产精品成人一区二区不卡| 久久香蕉精品| 韩国久久久久久| 日韩一区中文| 亚洲天堂成人| 美腿丝袜亚洲一区| 视频一区欧美精品| 中文在线免费视频| 日韩黄色免费网站| 亚洲v在线看| 国产伦理一区| 老司机久久99久久精品播放免费| 国产黄色一区| 亚洲视频二区| 精品捆绑调教一区二区三区| 91成人在线网站| 中文国产一区| 欧美二三四区| 国产精品第十页| 国产精品婷婷|