基础1 JavaSe基础

JavaSe基础

1. 九种基本数据类型的大小,以及他们的封装类

  boolean 无明确指定 Boolean

  char 16bits Character

  byte 8bits Byte

  short 16bits Short

  int 32bits Integer

  long 64bits Long

  float 32bits Float

  double 64bits Double

  void Void

2. switch能否用string做参数?

  参数必须是int或char那样的整数值 字符串或浮点数不可以

3. equals与==的区别。

4. Object有哪些公用方法?

  equals()

  getClass()

  hashCode()

  notify()

5. Java的四种引用,强弱软虚,用到的场景。

强引用
   程序代码中普遍存在 类似Object obj = new Object() 这类引用
   只要强引用还存在 垃圾回收器永远不会回收掉
软引用
   描述一些还有用但非必须的对象 SoftReference
弱引用
   描述非必须对象 强度比软引用更弱
   垃圾回收器工作时 无论当前内存是否足够 都会回收掉 WeakReference
虚引用
   最弱的一种引用关系
   设置虚引用的唯一目的就是能在这个对象被收集器回收时收到一个系统通知

6. Hashcode的作用。

  Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值

  http://www.cnblogs.com/dolphin0520/p/3681042.html

7. ArrayList、LinkedList、Vector的区别。

  ArrayList 随机访问元素较快 插入和移除较慢

  LinkedList 随机访问元素较慢 插入和移除较快

  Vector 过时 Java1.0/1.1的容器

8. String、StringBuffer与StringBuilder的区别。

  String 对象不可变

  StringBuffer 线程安全

  StringBuilder JavaSE5引入

9. Map、Set、List、Queue、Stack的特点与用法。

  Map 一组成对的键值对对象

  Set 不保存重复的元素

  Queue 先进先出的容器

  Stack 后进先出

10. HashMap和Hashtable的区别。

  HashMap Map基于散列表的实现 取代了Hashtable 插入和查询键值对的开销是固定的

11. HashMap和ConcurrentHashMap的区别,HashMap的底层源码。

  ConcurrentHashMap 一种线程安全的Map 它不涉及同步加锁

12. TreeMap、HashMap、LindedHashMap的区别。

  TreeMap 基于红黑树的实现 查看键或键值对时 他们会被排序

  HashMap Map基于散列表的实现

  LindedHashMap 使用链表维护内部次序

13. Collection包结构,与Collections的区别。

14. try catch finally,try里有return,finally还执行么?

  finally子句总是会执行

15. Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。

16. Java面向对象的三个特征与含义。

  封装

  继承

  多态

17. Override和Overload的含义去区别。

  Override 重写就是子类重写了父类的方法

  Overload 重载 同一个类中,允许存在同名函数,但它们的参数个数或者参数类型不同

18. interface与abstract类的区别。

  1 接口可以多重继承,抽象类不可以

  2 接口定义方法,不给实现 而抽象类可以实现部分方法

  3 接口中基本数据类型的数据成员,都默认为static和final 抽象类则不是

19. static class 与non static class的区别。

20. java多态的实现原理。

21. 实现多线程的两种方法:Thread与Runable。

22. 线程同步的方法:sychronized、lock、reentrantLock等。

23. 锁的等级:方法锁、对象锁、类锁。

24. 写出生产者消费者模式。

25. ThreadLocal的设计理念与作用。 线程本地变量 为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量

26. ThreadPool用法与优势。

27. Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。

28. wait()和sleep()的区别。

29. foreach与正常for循环效率对比。

30. Java IO与NIO。

31. 反射的作用于原理。

32. 泛型常用特点,List<String>能否转为List<Object>。

33. 解析XML的几种方式的原理与特点:DOM、SAX、PULL。

34. Java与C++对比。

35. Java1.7与1.8新特性。

36. 设计模式:单例、工厂、适配器、责任链、观察者等等。

37. JNI的使用。

Java里有很多很杂的东西,有时候需要你阅读源码,大多数可能书里面讲的不是太清楚,需要你在网上寻找答案。

推荐书籍:《java核心技术卷I》《Thinking in java》《java并发编程》《effictive java》《大话设计模式》

上一篇:假设result 是一个float型变量,value是一个int型变量。执行以下赋值语句以后,变量value将是什么类型?为什么?


下一篇:Android4.0新控件