路漫漫其修远贫,吾将上下而求索
Java 语言
1)描述Java语言的特点,同C相比编程思维如何
2)Java内置的数据类型及其位数
3)char能否存储一个汉子?Unicode和utf-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内部有哪些方法?equals和hashcode的默认实现如何?有何用处?哪些场景会使用?
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)使用HashMap时Key和Value需要考虑什么?Key需要覆盖哪些方法?如果不覆盖会如何(性能、正确性?),HashMap内部如何实现的?HashMap的put、get方法复杂度如何?
15)HashMap和HashTable有何区别?各自扩展哪些类?什么场合会使用?还有一个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)以开源软件为例说明什么情况下要实现自定制的classloader?jdk内置的classloader有哪些?
25)ClassNotFoundException和NoClassDefFoundError有何区别
26)Java注解有哪几种生命周期?考虑Spring的自动装配模式,其如何实现注解模式的自动装配?都有哪些中注解?其在class字节码中保存位置如何?
27)描述Java的反射机制,在什么情况下会使用反射?Java为何设计反射的功能?
28)描述Java内置的动态代理实现原理?举个常见的使用动态代理的场景(RPC client)
29)Java创建线程使用什么方法?start和run有何区别?线程状态有哪些种?有哪些方式实现线程(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)ReentranLock和synchronized有何异同?适用场景如何?(从性能并发考虑)
33)描述一下Atomic原子类的实现机制?CAS算法原理、底层实现?CAS算法的ABA问题?
34)Volatile关键字的用途如何?什么是线程安全?什么是先行发生原则?从先行发生角度解释volatile的作用
35)描述一下多线程环境下的内存模型(工作内存、主内存),解释volatile的底层实现
36)描述一下阻塞队列的实现原理?适用场景?使用wait/notify实现简单的阻塞队列
37)描述线程池ThreadPool的实现原理?自己实现一个简单的线程池,实现可暂停功能
38)描述并发队列、并发HashMap的实现原理、描述写时复制链表的实现原理
39)HashMap的clone方法如何实现?使用时需要考虑哪些隐藏陷阱?
40)Wait/notify使用时有哪些陷阱?notify和notifyAll区别?
41)Wait、sleep语义?区别?使用场景?
42)**Stream和**Reader异同?适用场景?
相关推荐
Java Database Connectivity (JDBC) 是Java语言连接数据库的标准API。使用JDBC,Java程序可以连接到MySQL数据库,执行SQL语句并处理结果。这涉及到加载数据库驱动,建立连接,创建Statement或PreparedStatement对象...
ATM的Java实训项目设计报告书是一份详细记录了如何使用Java编程语言实现自动取款机(ATM)系统的设计报告。这份报告由何珍珍和张明月两位同学完成,他们在河南经贸职业学院信息管理系学习《Java程序设计》课程,并在...
本系统是一个基于Java语言开发的简单学生成绩管理系统,主要用于实现对学生信息的基本管理功能,包括学生信息的添加、查询、删除等操作。该系统利用了Java标准库中的多个类来完成文件读写、数据处理等功能。 #### ...
3. **JNI接口**:JNI是Java平台标准的一部分,允许Java代码和其他语言写的代码进行交互。RXTX库使用JNI技术调用了操作系统底层的串口和并口通信函数,从而实现了高效的通信。 4. **并口通信**:并口通信相比串口...
【Java聊天室】是一款利用Java编程语言开发的实时通信应用,它允许用户通过网络进行文本、语音甚至视频的交流。这个应用小程序展示了Java在构建分布式系统中的能力,特别是在网络编程和多线程处理方面。下面将详细...
2.1 Java Servlet:Servlet是Java语言对HTTP协议的封装,它是服务器端接收和响应请求的核心组件。 2.2 JSP(JavaServer Pages):JSP允许将HTML代码与Java代码混合编写,简化了视图层的开发,提高开发效率。 2.3 ...
2. **后端处理**:这通常涉及到服务器端语言,如PHP、Python、Java或.NET,用于接收前端提交的数据,验证输入,然后构造SMTP命令进行邮件发送。 3. **SMTP通信**:使用SMTP协议与邮件服务器进行通信。开发者可能...
管理信息系统课程设计是一项综合性的实践任务,旨在让学生掌握实际项目开发的技能,本项目以Java语言为开发工具,利用MySQL数据库,构建了一个教室预约管理系统。此系统不仅提供了基础的教室预约、查询、修改和删除...
这个系统采用Java语言进行开发,特别是在UI界面部分使用了`java.awt`库,它提供了丰富的图形用户界面组件,如按钮、文本框等,使得用户可以方便地与系统交互。在后端,系统利用MySQL数据库来存储和管理数据,实现了...
Apache Tomcat 6.0.30 是一个广泛使用的开源软件,它是一个符合Java Servlet和JavaServer Pages(JSP)规范的应用服务器,主要用于部署和运行Java Web应用程序。Tomcat是Apache软件基金会Jakarta项目的一部分,它以...
首先,我们要理解Java是一种广泛使用的编程语言,它具有跨平台性、面向对象以及丰富的库支持等特性,使得它成为开发这种业务管理系统理想的工具。在本系统中,Java的这些优点得以充分发挥,确保了系统在不同操作系统...
SDK通常会提供多种语言版本(如Java、Python、C#等),以满足不同开发环境的需求。 3. **示例代码**:开发包内可能包含了一些示例代码,这些代码展示了如何调用API接口,实现基本的设备控制和视频流处理。通过分析...