试题如下:
参考答案:
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); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍15个顶级Java多线程面试题(附答案),包括了15个顶级Java多线程面试题(附答案)的使用技巧和注意事项,需要的朋友参考一下 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题。在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的。他们会问面试者很多令人混淆的
1.Java基础篇(阿里、蚂蚁、字节、携程、快手、杭州银行等) 问题:HashMap的底层实现原理 答案: 在jdk1.8之前,hashmap由 数组-链表数据结构组成,在jdk1.8之后hashmap由 数组-链表-红黑树数据结构组成;当我们创建hashmap对象的时候,jdk1.8以前会创建一个长度为16的Entry数组,jdk1.8以后就不是初始化对象的时候创建数组了,而是在第一次put元素
本文向大家介绍Javascript前端经典的面试题及答案,包括了Javascript前端经典的面试题及答案的使用技巧和注意事项,需要的朋友参考一下 前言 如果面试题按类型来分,主要涉及到“技术”与“非技术”两大类,技术类别下涉及到的子类别有: 移动 & PC端布局类 JavaScript 核心基础类 衍生框架类 项目应用类 这四大类别的面试题若按出现频率来划分,则面试时 100% 会问到的题型有:
主要内容:1.什么是Nginx?,2. 为什么要用Nginx,3.为什么Nginx性能这么高?,4.Nginx怎么处理请求的?,5.什么是正向代理和反向代理?,6.使用“反向代理服务器的优点是什么?,7.Nginx的优缺点?,8.Nginx应用场景?,9.Nginx目录结构有哪些?,10.Nginx配置文件nginx.conf有哪些属性模块?,11.location的作用是什么?,12.location的语法,,,,1.什么是Nginx? Nginx是一个 轻量级/高性能的反向代理Web服务器,
美团136道软件测试经典面试题及答案汇总 以下是软件测试相关的面试题及答案,欢迎大家参考! 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据; 如果没有文档依据,可以根据类似软件的一
本文向大家介绍33道php常见面试题及答案,包括了33道php常见面试题及答案的使用技巧和注意事项,需要的朋友参考一下 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的URL记录在预定义变量(2)中。 2.执行程序段将输出(3)。 3.在HTTP 1.0中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header 函数,