本文收錄各種猥瑣的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的子類
inkfish翻譯,請勿商業性質轉載,轉載請註明來源(http://blog.csdn.net/inkfish )。本文是我學習JUEL同時,對原網站進行的簡單的翻譯,原網站地址:http://juel.sourceforge.net/guide/basic/factory.html 。說實話,這篇翻譯的的確不怎樣。 運算式工廠(Expression Factory) 如果要使用EL ,就必須要有一個javax.el.ExpressionFactory
inkfish原創,請勿商業性質轉載,轉載請註明來源(http://blog.csdn.net/inkfish )。 Java Collections Framework(JCF) 是Java SE中一個基本的類集,幾乎所有的項目都會用到,其中的List 則是JCF中最最常用的一個介面。圍繞List 介面,有很多實現,諸如常用的ArrayList 、LinkedList 、Vector 、Stack ,還有Java5之後引入的CopyOnWriteArrayList
舉個簡單了例子,在一個需要用於註冊登入的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 =
首先要明確幾點: 第一:在記憶體回收行程回收垃圾之前,我們先來瞭解一下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