html5中文学习网

您的位置: 首页 > 网络编程 > java教程 » 正文

15道非常经典的Java面试题 附详细答案_java_

[ ] 已经帮助:人解决问题

试题如下:sTDHTML5中文学习网 - HTML5先行者学习网

sTDHTML5中文学习网 - HTML5先行者学习网

sTDHTML5中文学习网 - HTML5先行者学习网

sTDHTML5中文学习网 - HTML5先行者学习网

sTDHTML5中文学习网 - HTML5先行者学习网

sTDHTML5中文学习网 - HTML5先行者学习网

参考答案:sTDHTML5中文学习网 - HTML5先行者学习网

import java.io.FileNotFoundException;import java.io.IOException;import java.util.ArrayList;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * Created by ysc on 7/26/16. */public class Interview { private static void one(){ String str1 = "hello"; String str2 = "he"+new String("llo"); System.err.println(str1==str2); System.out.println("1. false"); } private static void two(){ int i = Integer.MAX_VALUE; System.err.println((i+1)<i); System.out.println("2. 存在一个i, 使得(i+1)<i"); } private static void three(){ System.err.println("gc is not a Java Thread, it is a native thread"); Thread.getAllStackTraces().keySet().forEach(thread -> System.out.println(thread.getName()+"->"+thread.isDaemon()+" "+thread.getPriority())); System.out.println("3. gc线程是daemon线程"); } private static volatile int count = 0; private static void four(){ ExecutorService executorService = Executors.newCachedThreadPool(); for(int j=0; j<10; j++){  executorService.submit(()->{  for(int i=0; i<1000000; i++){   count++;  }  }); } System.out.println("count should be: "+10000000+", actual be: "+count); System.out.println("4. volatile不能保证线程安全"); } private static void five(){ ArrayList<Integer> list = new ArrayList<>(20); list.add(1); System.out.println("debug code, not execute grow method"); System.out.println("5. list grow 0 times"); } private static void six() { System.out.println("BufferedReader's constructor only accepts a Reader instance"); System.out.println("6. new BufferedReader(new FileInputStream(/"a.dat/")); is wrong"); } private static void seven() { try{  if(true){  throw new IOException();  } }catch (FileNotFoundException e){  System.out.print("FileNotFoundException!"); }catch (IOException e){  System.out.print("IOException!"); }catch (Exception e){  System.out.print("Exception!"); } System.out.println("/n7. IOException!"); } private static void eight() { System.out.println("String s;System.out.println(s); error: variable s might not have been initialized/nRecompile with -Xlint:unchecked for details."); System.out.println("8. 由于String s没有初始化, 代码不能编译通过"); } private static void nine() { System.out.println("5"+2); System.out.println("9. 52"); } private static void ten() { int i = 2; int result = 0; switch(i){  case 1:  result = result + i;  case 2:  result = result + i * 2;  case 3:  result = result + i * 3; } System.out.println("result="+result); System.out.println("10. 10"); } private static class Null{ public static void hello(){  System.out.println("hello"); } public static void main(String[] args) {  ((Null)null).hello();  Null _null = (Null)null;  _null.hello(); } } private static class StringExample1{ String str = new String("good"); char[] ch = {'a', 'b', 'c'}; public void change(String str, char[] ch){  str = "test ok";  ch[0] = 'g'; } public static void main(String[] args) {  StringExample1 ex = new StringExample1();  ex.change(ex.str, ex.ch);  System.out.print(ex.str+" and ");  System.out.print(ex.ch);  System.out.println(); } } private static class StringExample2{ public static void change(String str){  str = "welcome"; } public static void main(String[] args) {  String str = "1234";  change(str);  System.out.println(str); } } private static class ForLoop{ static boolean foo(char c){  System.out.print(c);  return true; } public static void main(String[] args) {  int i=0;  for(foo('A');foo('B')&&(i<2);foo('C')){  i++;  foo('D');  }  System.out.println(); } } private static class HelloA{ public HelloA(){  System.out.println("HelloA"); } { System.out.println("I'm A class"); } static {  System.out.println("static A"); } } private static class HelloB extends HelloA{ public HelloB(){  System.out.println("HelloB"); } { System.out.println("I'm B class"); } static {  System.out.println("static B"); } public static void main(String[] args) {  System.out.println("main start");  new HelloB();  new HelloB();  System.out.println("main end"); } } public static void main(String[] args) { one(); two(); three(); four(); five(); six(); seven(); eight(); nine(); ten(); Null.main(null); StringExample1.main(null); StringExample2.main(null); ForLoop.main(null); HelloB.main(null); }}

sTDHTML5中文学习网 - HTML5先行者学习网

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。sTDHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助