架构师面试笔试题.docx

  1. 1、本文档共126页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

JDK1.7新增的功能,1.6和1.7的不同之处

首先是模块化特性:现在的Java7也是采用了模块的划分方式来提速,一些不是必须的模块并没有下载和安装,因此在使用全新的Java7的虚拟机的时候会发现真的很快,当虚拟机需要用到某些功能的时候,再下载和启用相应的模块,这样使得最初需要下载的虚拟机大小得到了有效的控制。同时对启动速度也有了很大的改善。如果你对OpenJDK的架构比拟熟悉,你甚至可以定制JDK的模块。

其次是多语言支持:这里的多语言不是指中文英文之类的语言,而是说Java7的虚拟机对多种动态程序语言增加了支持,比方:Rubby、Python等等。对这些动态语言的支持极大地扩展了Java虚拟机的能力。对于那些熟悉这些动态语言的程序员而言,在使用Java虚拟机的过程中同样可以使用它们熟悉的语言进行功能的编写,而这些语言是跑在功能强大的JVM之上的。

再有是开发者的开发效率得到了改善:Java7通过多种特性来增强开发效率。比方对语言本身做了一些细小的改变来简化程序的编写,在多线程并发与控制方面:轻量级的别离与合并框架,一个支持并发访问的HashMap等等。通过注解增强程序的静态检查。提供了一些新的API用于文件系统的访问、异步的输入输出操作、Socket通道的配置与绑定、多点数据包的传送等等。

最后是执行效率的提高,也是给人感觉最真切体验的特性:压缩了64位的对象指针,Java7通过对对象指针由64位压缩到与32位指针相匹配的技术使得内存和内存带块的消耗得到了很大的降低因而提高了执行效率。此外还提供了新的垃圾回收机制〔G1〕来降低垃圾回收的负载和增强垃圾回收的效果。G1垃圾回收机制拥有更低的暂停率和更好的可预测性。

字符流和字节流的区别,使用场景,相关类

Java流在处理上分为字符流和字节流。字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。

Java内用Unicode编码存储字符,字符流处理类负责将外部的其他编码的字符流和java内Unicode字符流之间的转换。而类InputStreamReader和OutputStreamWriter处理字符流和字节流的转换。字符流〔一次可以处理一个缓冲区〕一次操作比字节流〔一次一个字节〕效率高。

(一)以字节为导向的streamInputStream/OutputStream

InputStream和OutputStream是两个abstact类,对于字节为导向的stream都扩展这两个鸡肋〔基类^_^〕;

1、InputStream

1.1

ByteArrayInputStream--把内存中的一个缓冲区作为InputStream使用.

construct

(A)ByteArrayInputStream(byte[])创立一个新字节数组输入流〔ByteArrayInputStream〕,它从指定字节数组中读取数据〔使用byte作为其缓冲区数组〕

(B)ByteArrayInputStream(byte[],int,int)创立一个新字节数组输入流,它从指定字节数组中读取数据。

mark::该字节数组未被复制。

1.2

StringBufferInputStream--把一个String对象作为InputStream.

construct

StringBufferInputStream(String)据指定串创立一个读取数据的输入流串。

注释:不推荐使用StringBufferInputStream方法。此类不能将字符正确的转换为字节。

同JDK1.1版中的类似,从一个串创立一个流的最正确方法是采用StringReader类。

1.3

FileInputStream--把一个文件作为InputStream,实现对文件的读取操作

construct

(A)FileInputStream(Filename)创立一个输入文件流,从指定的File对象读取数据。

(B)FileInputStream(FileDescriptor)创立一个输入文件流,从指定的文件描述器读取数据。

(C)-FileInputStream(String?name)创立一个输入文件流,从指定名称的文件读取数据。

methodread()从当前输入流中读取一字节数据。

read(byte[])将当前输入流中b.length个字节数据读到一个字节数组中。

read(byte[],int,int)将输入流中len个字节数据读入一个字节数组中。

1.4

PipedInputStre

文档评论(0)

199****4744 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7002121022000045

1亿VIP精品文档

相关文档