Java语言铭记录(1)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java语言铭记录(1)

Java语言铭记录(1)

 2014/7/11 12:42:38  dingchd  程序员俱乐部  我要评论(0)
  • 摘要:路漫漫其修远贫,吾将上下而求索Java语言1)描述Java语言的特点,同C相比编程思维如何2)Java内置的数据类型及其位数3)char能否存储一个汉子?Unicode和utf-8的编码是什么?4)引用同对象的区别?引用和对象通常在哪块内存?5)判断一个对象是否应当回收的算法如何?哪些是Root对象?6)以下创建多少对象?newInteger[10];7)以下打印如何?ClassA{IntI;PublicstaticAtest(Aa){a.i=20;returna;
  • 标签:

路漫漫其修远贫,吾将上下而求索

?

class="MsoNormal">Java 语言

?

1)描述Java语言的特点,同C相比编程思维如何

2)Java内置的数据类型及其位数

3)char能否存储一个汉子?Unicodeutf-8编码是什么?

4)引用同对象的区别?引用和对象通常在哪块内存

5)判断一个对象是否应当回收的算法如何?哪些是Root对象?

6)以下创建多少对象? new Integer[10];

7)以下打印如何?

Class A{
Int I;
Public static A test(A a){
a.i = 20;
return a;
}
 
Public static void main(String[] args){
A a = new A();
System.out.println(a.i);
            A b = test(a);
       System.out.println(a.i+””+b.i);
}
}

?

8)Object内部有哪些方法?equalshashcode的默认实现如何?有何用处?哪些场景会使用?

9)== equals方法有何异同?

10)以下打印如何?

Public static void main(String[] args){
String s =”helloworld”;
String s1= “hello”;
String s2=”world”;
System.out.println(s1+s2==s);
S1= new String(“helloworld”);
S2= new String(“helloworld”);
System.out.println(s1==s2);
}
 
Public static void main(String[] args){
Integer i1= Integer.values(10);
Integer i2= Integer.values(10);
System.out.println(i1==i2);
I1 = Integer.values(300);
I2 = Integer.values(300);
System.out.println(i1==i2);
}

?

11)JVM的内存布局如何设计?类的元数据存储在哪里?字符串及常量存储在哪里?

12)什么是OOM?有哪些情况会触发?

13)以SunSpot为例,简单描述一个对象的内存布局,有什么方法可以查看内存的详细数据?有什么方法实现c中的sizeof方法

14)使用HashMapKeyValue需要考虑什么?Key需要覆盖哪些方法?如果不覆盖会如何(性能、正确性?),HashMap内部如何实现的?HashMapputget方法复杂度如何?

15)HashMapHashTable有何区别?各自扩展哪些类?什么场合会使用?还有一个Properties类,内部如何实现

16)ArrayList内部实现机制如何?什么情况会发生内存拷贝?

17)遍历集合时有哪些方法?有何异同?(从读写场景考虑)

18)简单描述ClassLoader的作用,描述初始加载器和定义加载器的区别;从当前类new一个对象使用默认使用哪个加载器?

19)

Class A{
Public void test(){
   B b = new B(); // b的初始加载器是什么?
}
}

?

20)类加载器使用委托策略,JVM规范为何如此设计?JVM内部定义一个类使用其定义加载器和fqcn,如何实现将同一个类使用不同的类加载器加载?(考虑child-load-first技术)

21)常见的运行时异常有哪些?运行时异常和捕获异常有何区别?Java语言为何设计异常?

22)什么情况下发生ClassCastException?(从classloader类型转换考虑)

23)详细描述classloader加载一个类的全部过程,实现一个classloader,让其能够扫描d/固定目录下的class

24)以开源软件为例说明什么情况下要实现自定制的classloaderjdk内置的classloader有哪些?

25)ClassNotFoundExceptionNoClassDefFoundError有何区别

26)Java注解有哪几种生命周期?考虑Spring的自动装配模式,其如何实现注解模式的自动装配?都有哪些中注解?其在class字节码中保存位置如何?

27)描述Java反射机制,在什么情况下会使用反射?Java为何设计反射的功能?

28)描述Java内置的动态代理实现原理?举个常见的使用动态代理的场景(RPC client

29)Java创建线程使用什么方法?startrun有何区别?线程状态有哪些种?有哪些方式实现线程(extends Thread/implements Runnable/implements Callable,适用场景?)

30)Synchronized的原理如何(从编译后的指令和JVM运行原理考虑)

31)Synchronized向对象和方法加锁有何区别?以下运行结果如何?

public synchronized static void main(String[] args){
new Thread(new Runnable(){
public void run(){
System.out.println(“Pang”);
}
}).run(); // 换成start又是什么?
test();
}
Public synchronized static void test(){
System.out.println(“Ping”);
}

?

32)ReentranLocksynchronized有何异同?适用场景如何?(从性能并发考虑)

33)描述一下Atomic原子类的实现机制?CAS算法原理、底层实现?CAS算法的ABA问题?

34)Volatile关键字的用途如何?什么是线程安全?什么是先行发生原则?从先行发生角度解释volatile的作用

35)描述一下多线程环境下的内存模型(工作内存、主内存),解释volatile的底层实现

36)描述一下阻塞队列的实现原理?适用场景?使用wait/notify实现简单的阻塞队列

37)描述线程池ThreadPool的实现原理?自己实现一个简单的线程池,实现可暂停功能

38)描述并发队列、并发HashMap的实现原理、描述写时复制链表的实现原理

39)HashMapclone方法如何实现?使用时需要考虑哪些隐藏陷阱

40)Wait/notify使用时有哪些陷阱?notifynotifyAll区别?

41)Waitsleep语义?区别?使用场景?

?

42)**Stream**Reader异同?适用场景?

上一篇: Java开发者需知道的性能小技巧 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名