class StringEqualTest { public static void main(String[] args) { String s1 = "Programming";//直接從常量池中取值,s1爲常量池的地址值 String s2 = new String("Programming");//s2爲new出來對象(堆內存)的地址值 String s3 = "Program" + "ming";//在編譯的時候已經自動編譯爲String s3 = "Programming";所以也是隻想常量池中的地址值 System.out.println(s1 == s2); System.out.println(s1 == s3); System.out.println(s1 == s1.intern());//s1.intern()對應的是常量池中該對象的引用,所以一致,若是左右均改成s2則爲false } }
2.``` class Outer {java
class Inner {}服務器
public static void foo() { new Inner(); }//由於是靜態類,Outer尚未被實例化,不能實例化Inner(內部類)ide
public void bar() { new Inner(); }//該方法爲普通方法,要調用該方法確定要先實例化Outer,所以能夠在方法內實例化Inner性能
public static void main(String[] args) { new Inner();//main方法也是靜態方法,在靜態中,要建立內部類對象,能夠用new Outer().new Inner(); } }.net
3.有關便利一個文件夾以及下面的全部子文件的目錄
class ShowFileTest {線程
public static void main(String[] args) throws IOException { //PATH類是javaNIO.APi的新出的類,是File的升級版本。而PATHS.get(String path)方法是得到path類的方法 Path initPath = Paths.get("/Users/Hao/Downloads"); // Files.walkFileTree()是遍歷文件夾下的文件的,此方法須要指定根路徑或起始路徑。以及要重寫SimpleFileVisitor的實現類的兩個方法:preVisitDirectory和visitFile。兩個方法定義了在訪問目錄和文件期間想作的事。 Files.walkFileTree(initPath, new SimpleFileVisitor<Path>() {code
@Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {//訪問文件 System.out.println(file.getFileName().toString()); return FileVisitResult.CONTINUE; } //之因此註釋掉是由於咱們目前只要文件名,不要對文件夾進行操做。當咱們須要對子文件夾進行操做的時候麼就能夠重寫這個方法了對象
/* @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs){ //訪問文件 System.out.println(">>>>Dir : " + dir); return FileVisitResult.CONTINUE; } */
}); } }接口
4.如何實現JSP或Servlet的單線程模式? 答: 對於JSP頁面,能夠經過page指令進行設置。 <%[@page](https://my.oschina.net/u/937418) isThreadSafe=」false」%> 對於Servlet,可讓自定義的Servlet實現SingleThreadModel標識接口。 說明:若是將JSP或Servlet設置成單線程工做模式,會致使每一個請求建立一個Servlet實例,這種實踐將致使嚴重的性能問題(服務器的內存壓力很大,還會致使頻繁的垃圾回收),因此一般狀況下並不會這麼作。