本文收錄各種猥瑣的Java筆試/面試題,一些比較容易忘記的,不定期更新。也希望大家在底下留言,貼出自己碰到或看到的各種猥瑣筆試、面試題目。 J2EE基礎部分 1、運算子優先順序問題,下面代碼的結果是多少。(筆試) [java] view plain copy package test;
一。 java線程同步原理 java會為每個object對象分配一個monitor,當某個對象的同步方法(synchronized methods)被多個線程調用時,該對象的monitor將負責處理這些訪問的並發獨佔要求。 當一個線程調用一個對象的同步方法時,JVM會檢查該對象的monitor。如果monitor沒有被佔用,那麼這個線程就得到了monitor的佔有權,可以繼續執行該對象的同步方法;如果monitor被其他線程所佔用,那麼該線程將被掛起,直到monitor被釋放。
1.下載包,放在lib目錄下 2.在CLASSPATH下建立log4j.properties,內容如下 log4j.rootLogger=info,ROLLING_FILElog4j.appender.ROLLING_FILE = org.apache.log4j.RollingFileAppenderlog4j.appender.ROLLING_FILE.encoding=gbklog4j.appender.ROLLING_FILE.File =
/** * 將資訊寫入到日誌 * @param content * @return * @throws IOException */public static boolean writeLog(String className,String ErrorInfo,String ErrorContent){String content=info(className, ErrorInfo, ErrorContent);File fileName = new
Error類好Exception類都繼承自Throwable類。 Error類的繼承關係: java.lang.Object --java.lang.Throwable --java.lang.Error Exception的繼承關係: java.lang.Object --java.lang.Throwable --java.lang.Exception 二者不同之處: Exception:
第1個異常是java.net.BindException:Address already in use: JVM_Bind。該異常發生在伺服器端進行new ServerSocket(port)(port是一個0,65536的整型值)操作時。異常的原因是以為與port一樣的一個連接埠已經被啟動,並進行監聽。此時用netstat –an命令,可以看到一個Listending狀態的連接埠。只需要找一個沒有被佔用的連接埠就能解決這個問題。
這裡使用的版本為log4j-1.2.15,jar資源擷取移步下載。 一、引言 平常開發的過程中,有時不想把所有的日誌都列印到同一個log檔案中,除了Java工程整合log4J 1.x博文中介紹的使用一個logger,配置多個appender的log4j.appender.D.Threshold屬性外,還可以在設定檔log4j.properties中配置多個logger的方式實現。 二、具體配置
代碼: Calendar calendar = Calendar.getInstance();calendar.set(Calendar.MONTH, month-1 );calendar.set(Calendar.YEAR, year);System.out.println(calendar.get(Calendar.MONTH));return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
Arrays中提供了基礎資料型別 (Elementary Data Type)數組排序 String[] strs = new String[]{"abfds1", "advesd2", "dasfdsa3", "cdsaew1", "abbdsa3", "abbdsa2",
java程式違反java的語義規則時,java虛擬機器就會將發生的錯誤表示為一個異常 違反語義規則包括兩種情況: 一種是java類庫內建的語義檢查 比如 數組越界 引發IndexOutOfBoundsException;訪問NULL的對象時會引發NullPointerException 另外一種情況就是JAVA允許程式員擴充這種語法檢查,程式員可以自訂異常,並自由選擇在何時用throw關鍵字引發異常,所有的異常都是java.lang.Throwable的子類
舉個簡單了例子,在一個需要用於註冊登入的b/s模式的應用中,在瀏覽器驗證使用者註冊表單的合法性是必須的,但你為了防止hacker,在伺服器再驗證一次肯定也是必須的。 題目:在伺服器端驗證郵箱是否合法:通常你可能會這樣寫: public boolean checkEmailLegal(String temp){ //temp = "ddenfj#@fe_dw.comw"; return temp.matches("^([\\.a-zA-Z0-
在java中,你可以用 Collections.shuffle 取清洗或者重新隨機 a ArrayList TestApp.java package com.mkyong.utils;import java.util.Arrays;import java.util.Collections;import java.util.List;public class TestApp { public static void main(String[
在 Java 8, Stream 不能被重新使用, 一旦它被使用或者消費了, stream 將被關閉. 1. Example – Stream 已經被關閉! 查看下面的例子 , 它將被拋出一個 IllegalStateException, 說 “stream is closed”. TestJava8.java package com.mkyong.java8;import
在Java 8 中使用Stream 例子對一個 Map 進行按照keys或者values排序. 1. 快速入門 在java 8中按照此步驟對map進行排序. 將 Map 轉換為 Stream 對其進行排序 Collect and return a new LinkedHashMap (保持順序) Map result =
幾個對一個Map的keys或者values進行排序的java例子. 注意: 如果你使用的是 Java 8, 參考這篇文章 – Java 8 – 怎樣對Map排序 1. 按照key排序 1.1 用 java.util.TreeMap, 它將自動根據keys對Map進行排序. SortByKeyExample1.java package com.mkyong.test;import
需求:標題其實就很清楚了,具體點就是用HTTP請求Google天氣預報API,得到的是一個標準XML檔案,XML檔案中包含的就是我們所需要的天氣資料,這時我們就是解析這個XML文檔得到天氣資料了。 訪問Google天氣預報: http://www.google.com/ig/api?hl=zh-cn&weather=,,,30670000,104019996
首先要明確幾點: 第一:在記憶體回收行程回收垃圾之前,我們先來瞭解一下Java指派至的方式,Java的堆更像一個傳送帶,每分配一個新對象,它就往前移動一格。這意味著Object Storage Service空間的
mport java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public class format { double f = 111231.5585;
最近在做項目的時候遇到了較多的同步問題 。 JAVA 給我們提供了很方便的方法去解決多線程同步的問題 synchronized 關鍵字 一直很疑惑 synchronized 是怎麼來做同步的呢 實現 原理是什麼呢 ? 1 synchronized -- 對象加鎖 所有對象都自動含有單一的鎖,JVM負責跟蹤對象被加鎖的次數。 如果一個對象被解鎖,其計數變為0。 在任務(線程)
恩,又碰到個蛋疼的編碼轉換問題了:要把形如 \xE9\xBB 的字串轉成中文。。。 在python中我們直接 print "\xE9\xBB\x84" 即可, 在shell中我們直接 echo $'\xe9\xbb\x84' #echo -e '\xe9\xbb\x84'也行, 注意:不能直接 echo $'\xde\xab'|iconv -f gbk -t utf-8