本帖最后由 ameanboy 于 2016-4-6 22:35 编辑
//4.6更新一些答案
J2SE基础
1. 九种基本数据类型的大小,以及他们的封装类。//byte - 2字节 char - 4字节, short - 4字节, int - 8字节, long - 16字节, float - 32字节浮点数, double, boolean, 还有一个是啥?还有一个是void
2. Switch能否用string做参数? //不能?答案是可以,反编译显示会将String转换成hash值,如果hash冲突再比较equal
3. equals与==的区别。 //使用自定义代码比较,比较地址值或值
4. Object有哪些公用方法? //wait,notify,notifyall, hash, tostring, finalize, getClass,其他想不起来了; clone()深度拷贝
5. Java的四种引用,强弱软虚,用到的场景。
6. Hashcode的作用。
7. ArrayList、LinkedList、Vector的区别。 //队列,链表,队列
8. String、StringBuffer与StringBuilder的区别。//String是不可变字符序列,StringBuffer与StringBuilder是可变字符序列,StringBuilder线程不安全
9. Map、Set、List、Queue、Stack的特点与用法。//双列键值对,元素唯一,队列,有序队列,栈
10. HashMap和HashTable的区别。 //键的存储算法为哈希算法;元素的存储算法为哈希算法
11. HashMap和ConcurrentHashMap的区别,HashMap的底层源码。
12. TreeMap、HashMap、LindedHashMap的区别。
13. Collection包结构,与Collections的区别。//Collection: List, ArrayList, LinkedList, Vector; Set: HashSet, LinkedHashSet, TreeSet;Collections是工具类
14. try catch finally,try里有return,finally还执行么?//除非退出java虚拟机,否则会执行
15. Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。
16. Java面向对象的三个特征与含义。//继承,多态,封装
17. Override和Overload的含义去区别。//如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载.
18. Interface与abstract类的区别。
19. Static class 与non static class的区别。//求大神解释
20. java多态的实现原理。
21. 实现多线程的两种方法:Thread与Runable。
22. 线程同步的方法:sychronized、lock、reentrantLock等。//就知道怎么用,具体原理区别有些懵逼,synchronized使用对象作为监视器,所有的线程通讯操作都是监视器级别的,reentrantLock可以实现监视器上的指定线程通讯
23. 锁的等级:方法锁、对象锁、类锁。//方法锁的对象是this,对象锁可以指定任意对象,类锁是类的字节码文件,所以锁的等级是对象锁,方法锁,类锁?
24. 写出生产者消费者模式。 //oracle多线程课程里的例题之一
25. ThreadLocal的设计理念与作用。
26. ThreadPool用法与优势。
27. Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。
28. wait()和sleep()的区别。 // wait()会释放锁并让线程进入阻塞状态,sleep不会释放锁
29. foreach与正常for循环效率对比。//不懂。。对于数组应该是一样的吧?对于实现了Iterable接口的集合类,要看底层怎么设计了
30. Java IO与NIO。 //nio是什么不懂啊。。。
31. 反射的作用于原理。 //运行时获取对象的class对象?
32. 泛型常用特点,List<String>能否转为List<Object>。 //测试了一下是可以的,编译也没有报错
33. 解析XML的几种方式的原理与特点:DOM、SAX、PULL。 //只使用过SAXParser。。。其他两种主流的不了解
34. Java与C++对比。 //内存管理:java没有析构函数;
35. Java1.7与1.8新特性。
36. 设计模式:单例、工厂、适配器、责任链、观察者等等。 //单例 工厂 适配器都有讲,其他两种酒不了解了。。。
37. JNI的使用。//这是啥
原文标题:BAT面试经验谈
作者:匿名用户
链接:https://www.zhihu.com/question/30070178/answer/92849985
来源:知乎感觉除了语言的基础知识之外,算法能力是这些大公司着重考察的部分
|
|