- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
1、说出一些常用的类,包,接口,请各举5个
要让人家感觉你对JavaEE开发很熟,所以,不能仅仅只列corejava中的那些东西,要多列你在做ssh项目中涉及的那些东西。就写你最近写的那些程序中涉及的那些类。
常用的类:BufferedReader,BufferedWriter,FileReader,FileWirter,String,Integer,
java.util.Date,System,Class,List,HashMap
常用的包:java.lang,java.io,java.util,java.sql,javax.servlet,org.apache.strtuts.action,org.hibernate,org.springframework
常用的接口:List,Map,Document,NodeList,Servlet,HttpServletRequest,HttpServletResponse,HttpSession,Action(Struts),Transaction(Hibernate),Session(Hibernate),ApplicationContext(Spring),FactoryBean(Spring)
2、Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
字节流,字符流。字节流继承于InputStream、OutputStream,字符流继承于Reader、Writer。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
FileInputStream、FileReader、ByteArrayInputStream、CharArrayReader、BufferedInputStream、BufferedReader、ZipInputStream、PrintStream、StringReader、ObjectInputStream、RandomAccessFile(不属于流,但像流)
3、字节流与字符流的区别
字节流是按字节读取或写入设备,但字符流是以字符为单位读取或写入设备。
如果是二进制文件,需要用字节流读取。一般来说,字符流只处理文本文件。在设备中,大多数情况是以字节形式存储数据的,因此字符流通过需要传入字节流当参数。
4、什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。
序列化是把内存Java对象保存到存储介质中,反序列化就是把存储介质中的数据转化为Java对象。Java通过ObjectInputStream和ObjectOutputStream实现序列化和反序列化。需要进行序列化的对象的类必须实现Serializable接口,通常情况下需要满足以下条件:
1.强烈建议手动生成serialVersionUID常量
2.如果需要加解密的话,需要实现两个方法readObject和writeObject方法
3.如果使用Hibernate二级缓存或其它缓存服务器的话,对象必须是可序列化的
4.如果需要远程调用对象或传值的话,则对像需要序列化
5.序列化类的可序列化成员必须也是可序列化的,不需要序列化的属性用transient修饰
5、描述一下JVM加载class文件的原理机制
1.查找当前ClassLoader中是否有此class的类对象,有则返回
2.若没有的话,向上递归所有的父ClassLoader中有无此class类对象,有则返回
3.若还没有,查找BootstrapClassLoader中有无此class类对象,有则返回
4.若还没有的话,使用findClass或resolveClass加载类对象
a.读取class二进制文件
b.根据字节数组生成Class对象
c.缓存到当前ClassLoader中
JVM加载class对象是懒加载,按需加载
6、heap和stack有什么区别。
Java的内存分为两类,一类是栈内存,一类是堆内存。
栈中存储的是当前线程的方法调用、基本数据类型和对象的引用,栈是有序的。
堆中存储的是对象,堆是无序的。
方法中的局部变量使用final修饰后,放在堆中,而不是栈中。
7、GC是什么为什么要有GC
GC是垃圾回收的意思(GabageCollection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。线程对象在没有终止前,即使没有任何引用,也不会被垃圾回收。
只能建议JVM回收内存,不能强制,可以使用System.gc()建议执行。
文档评论(0)