coreJava面试题

1.异常处理机制的简单原理和应用
2.垃圾回收的优点和原理,并考虑2种回收机制
3.线程同步的方法
4.Error与Exception有什么区别
5.java中一个类被声明为final类型.
6.heap和stack有什么区别
7.系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算
8.设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现
9.final, finally, finalize的区别
10.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)
11.Static Nested Class 和 Inner Class的不同
12.&和&&区别
13.HashMap和Hashtable的区别
14.Collection 和 Collections的区别
15.GC是什么? 为什么要有GC
16.String s = new String("xyz");创建了几个String Object
17.sleep() 和 wait() 有什么区别
18.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
19.Java有没有goto?
20.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
21.最常见到的runtime exception
22.abstract class和interface有什么区别?
23.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
24.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 
25.构造器Constructor是否可被override
26.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法
27.用最有效率的方法算出2乘以8等於几
28.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
29.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
30.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上(int、short、char、byte)
31.Singleton
32.Hashtable和HashMap区别
33.JVM加载class文件的原理机制
    在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,其中链接又可以分成校验、准备、解析
        装载:查找和导入类或接口的二进制数据; 
        链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 
             校验:检查导入类或接口的二进制数据的正确性; 
             准备:给类的静态变量分配并初始化存储空间; 
             解析:将符号引用转成直接引用;
        初始化:激活类的静态变量,初始化Java代码和静态Java代码块
34.举例说明一个典型的垃圾回收算法
          1) 引用计数
         要求堆中的每个对象实例都有一个称为引用计数的字段,当分配时计数+1、超出或销毁时-1,当引用计数为0时其空间可回收。
          引用计数优点:回收速度快;
          缺点:引起运行时系统性能下降。
          2) 标记并清除
          要求每个对象都包含一个位字段,称为标记位,或在算法运行时建立一个外部数组以存放标记位。该算法从遍历堆中所有已分配的内存块开始,重新设置块的标记位,检查所有指向堆中对象的字段和变量,将被引用对象的标记位设置为真,然后找出所有未标记对象,将其放到自由块列表中来回收空间。
          标记并清除优点:存储开销较低且不会影响运行时的执行性能;
          缺点:当内存垃圾收集器运行时可能会占用很长时间。
35.请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来
36.写一个java程序实现线程连接池功能
流程如下:先启动若干个线程,并让这些线程处于睡眠状态,当有客户请求时,就会唤醒池中的一个睡眠线程,来处理用户请求。处理完成以后,线程又处于睡眠状态。
37.数据库连接池原理
数据库连接是关键的有限的昂贵的资源,每个数据库连接对象都对应一个物理数据库连接,每次打开一个物理连接使用后都得关闭这个连接,这就造成了性能底下
解决方案:在应用程序启动时,建立足够多的数据库连接,并将这些连接组成一个连接池,由应用程序对池中的连接动态的申请、分配、释放。
对于多于池中连接数的并发请求、应该在请求队列中排队等待,并且应用程序可以根据池中连接的使用率,动态地增加或者减少池中的连接数
(最大连接数、最小连接数)
38.给定一个C语言函数,要求实现在java类中进行调用
39.编一段代码,实现在控制台输入一组数字后,排序后在控制台输出
40.列出某文件夹下的所有文件
41.调用系统命令实现删除文件的操作
42.实现从文件中一次读出一个字符的操作
43.列出一些控制流程的方法
44.多线程有哪些状态
45.编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的程序
46.作用域public,private,protected,以及不写时的区别 
47.ArrayList和Vector的区别,HashMap和Hashtable的区别 
48.char型变量中能不能存贮一个中文汉字?为什么?
49.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 
50.垃圾回收机制,如何优化程序
51.float型float f=3.4是否正确
52.介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)? 
53.Java中异常处理机制,事件机制
54.JAVA中的多态与继承
55.现在输入n个数字,以逗号,选择升序、降序排列。
56.Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
57.在COLLECTION框架中,实现比较要实现什么样的接口
58.JAVA多线程编程。 用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。
59.STRING与STRINGBUFFER的区别
60.hashmap的内部实现机制,hash是怎样实现的,什么时候rehash 

62.java的内存管理 
63.分布式缓存的内存管理,如何管理和释放不断膨胀的session,memcache是否熟悉 
64.oralce的底层管理(怎样让查询快,插入慢) 
65.java底层是怎样对文件操作的 

66.研究了哪些框架的源码 
67.并发问题,锁,怎么处理死锁,脏数据处理 
68.性能问题 

69.equals和hashcode这些方法怎么使用的 
70.java的NIO 

你可能感兴趣的:(面试)