第一章:JAVA概述练习

一、 选择题:

  1. 有关内存回收的说明正确的是: b
    a. 内存回收程序允许程序员直接释放内存
    b. 内存回收程序负责释放无用内存
    c. 内存回收程序可以在指定时间释放内存对象
    d. 程序员必须创建一个线程来施放内存
  2. 那个反映了java程序并行机制的特点: b
    a. 安全性 b.多线程 c.跨平台 d.可移植
  3. 属于垃圾回收机制的是: d
    a. 语法检查 b.字节编码 c.异常处理 d.内存跟踪
  4. java的特点中,那个不是c++所不具备的: a
    a. 跨平台 b.面向对象 c.有类库 d.高性能
  5. 在java中,负责对字节代码解释执行的是: b
    a. 垃圾回收器 b.虚拟机 c.编译器 d.多线程机制
    5.那个是Java编译器:b
    a. javap(java反汇编器) b.javac c.java d.javadoc
    6.关于java语言,正确的是: b
    a.java是不区分大小写的 b.源文件名与public类型的类名必须相同
    c.源文件其扩展名为.jar d.源文件中public类的数目不限
    7.Which statement about the garbage collection are true?b
    a. The program developer must create a thread to be responsible for free the memory.
    b.The garbage collection will check for and free memory no longer needed.
    c.The garbage collection allow the program developer to explicity and
    immediately free the memory//允许程序员明确指定并释放内存
    d.The garbage collection can free the memory used java object at expect time //垃圾收集能在期望时间释放被java对象占用的内存

二、填空题
1.Java的源程序应保存为以(java)为扩展名的文件。编译好的文件,其扩展名为.class,称为(字节码或类)文件,再由java(虚拟机)解释执行,以实现虚拟机功能。
2.Java编写好的程序首先由编译器转换为(字节码),然后由(虚拟机)去解释执行。
3.Java源文件中最多只有一个(public)类,其它类的个数(不限).
4.在JDK工具库中,java编译器是(javac),java解释器是(java).
三、简答题
【1】 JDK目录中主要包括那些目录,及有什么用处?
bin目录:包括编译器、解释器和其它工具
lib目录:包含库文件
jre目录:是java程序运行环境的根目录
demo目录:包含源代码的程序示例
include目录:包含本地方法的文件
【2】Java语言是如何产生和发展的?Android和java有什么关系?
Java是由sun公司于1995年5月推出的Java程序设计语言和java平台的总称。
1991年,美国sun公司的某个研究小组为了能够在消费电子产品上开发应用程序,积极寻找合适的编程语言。消费电子产品种类繁多,包括PDA、机顶盒、手机等,即使同一类消费电子产品所采用的处理芯片和操作系统也不同,还存在跨平台的问题。当时流行的语言是C和C++,sun研究人员就考虑是否可以采用C++语言来编写消费电子产品的应用程序。但是研究表明,对于消费电子产品而言C++语言过于复杂和庞大,并不适用,安全性也无法令人满意。于是研究小组就着手设计一种称为Oak的语言,该语言采用了C语言的语法,提高了安全性,是一种面向对象语言,但是Oak语言在当时商业环境中并未获得成功。
1995年,随着互联网的迅速发展,sun公司发现oak语言具有跨平台、面向对象、安全性等特点非常符合互联网的需要,于是改进了语言的设计,并取名java.
Java语言从产生到现在已经经历了10多年的完善和发展,目前已经非常成熟,其应用范围也非常广泛,在应用软件、手机软件、企业应用都能捕捉到它的身影。Java语言以其特有的魅力和优势,赢得众多IT公司和程序开发者的认可和追随,就连google公司最近推出的Android手机开发平台也采用 java开发语言。随着3G业务在中国的不断发展,android平台开发已经吸引越来越多IT企业和编程爱好者的参与。
Android一词意思是“机器人”是google公司于2007年11月15日宣布的基于linux平台的开源手机操作系统。该平台由操作系统、中间件、用户界面和应用软件组成
2008年9月22日,美国运营商T-Mobile USA在纽约正式发布第一款google 手机,该款手机为台湾宏达电子(HTC)代工制造,是世界第一部使用android操作系统的手机,支持WCDMA/HSPA网络,理论下载速度7.2Mbit/s,并支持WiFi(一种无线网技术)。
Android平台是google 公司和“开放手机联盟”合作开发的,这个联盟由包括中国移动、摩托罗拉、高通、宏达电子、和T-Mobile在内的30多家技术和无线应用的领军企业组成。
Google公司推出的android是一款手机平台,其功能等价于java平台,它不仅使用了java语言,而且使用了核心的javaAPI。但是andoid的可执行形式与java平台的字节码形式不同,同时android使用的虚拟机和java平台的JVM也是不一样的
Google公司没有使用标准的JME(Java Monkey Engine,一款Java 3D游戏引擎)作为java应用软件的引擎,而是为android配备了名为Dalvik的虚拟机,这样做可以避免因使用JME所带来的与Sun公司之间的纷争问题。Dalvik的字节码和java字节码不同
【3】 JavaSE、JavaEE、JavaME、有什么区别?
Java现在不仅仅是一种语言,从广义上说它代表了一个技术体系,该体系根据应用方向的不同主要分为JavaSE 、JavaEE、JavaMe三部分。javaSE英文全称为Java Standard Edition、JavaEE英文全称为Java Enterprise、javaME 为Java Micro Edition
1998年12月sun公司发布java1.2版本,同时将他的名字改为“java 2软件开发工具箱1.2(JDK1.2)”它和它的后继版本也通常称为“java2标准版(j2se)”,在j2se推出的同时,还推出了“java2微缩版(j2me)”和“java2 企业版(j2ee)”
(1) J2SE为创建和运行java程序提供基本的环境,是java技术的核心和基础。J2ee和j2se都建立在j2se基础上
(2) J2ee为基于服务器的分布式企业应用提供开发和运行环境,是目前java技术应用最广泛的部分。J2ee不仅集成j2se很多优点,还提供了jsp,servlet以及xml技术的全面支持,降低了企业级开发的复杂度
(3) J2me为嵌入式应用提供开发和运行环境,例如手机程序和PDA程序等
【4】 Java语言的运行机制是什么?
计算机高级语言按照其执行分为编译型和解释型
编译语言是指使用专门的编译器,针对特定的操作系统将源程序代码一次性翻译成计算机能够识别的指令。例如C、C++等属于编译型语言
解释型语言是指使用专门的解释器,将程序源代码逐条的解释成特定平台的机器指令,解释一句执行一句,类似于同声传译,利于asp,php 都属于解释型语言
Java语言既不是编译型和解释型,而是两者的结合体。首先采用通用的java编译器对java源程序编译成与平台无关的字节码(.class文件),然后由java虚拟机对字节码文件解释执行。
编译型语言和解释型语言各有优缺点,比如编译型语言会在第一次执行时候将其全部编译成与当前系统平台相对应的机器指令,在后继运行时候直接运行第一次编译结果,减少了编译次数,提高了程序运行效率,但是程序第一次编译的时候与系统平台相互对应,因此可移植性比较差。而解释型语言在程序每次运行的时都将源程序解释成当前系统平台相对应的机器指令,因此每次运行都要解释并执行,运行效率较低,但是可移植性好
Java语言综合了编译型和解释型的优点,采取一种折中方案,即java语言首次运行的时候采取编译机制将java源程序编译成java字节码文件,该字节码与系统平台无关,是介于源代码和机器码之间的一种状态,然后采用解释器机制将java字节码解释成与操作系统无关的机器指令,这样既减少了编译次数,又增强了程序可移植性,因此被称为“一次编译,到处执行”
Java字节码具有与平台无关性,可以在不同系统平台中运行,但是,需要有不同版本的java虚拟机,不同系统平台的java虚拟机是不一样的
【5】 什么是JVM?有什么作用?工作机制如何?
(1)JVM定义:意思是java 虚拟机,即java virtual machine。它是一个虚拟出来的计算机,可在实际计算机上模拟各种计算机功能。JVM有自己完善的硬件架构,例如处理器、堆栈和寄存器等,还具有相应的指令系统
(2)JVM的作用:它是java字节码执行的引擎,为java程序执行提供必要的支持,它还能优化java字节码,使之转化为效率更高的机器指令。程序员编写的程序最终要在jvm上执行,jvm中的类的装载有类加载器(ClassLoader)和它的子类来实现的。ClassLoader是java运行的一个重要组件,负责在运行时候查找和装入类文件的类
JVM屏蔽了与具体操纵系统平台相关的信息,从而实现java程序只需要生成在jvm上运行的字节码,在执行字节码时候,jvm负责将每一条要执行的字节码送给解释器,解释器将其翻译成特定平台的机器指令再执行。Java语言的重要特点是扩平台,使用java虚拟机就是为了支持与操作系统无关,实现跨平台运行
(3)JVM的工作原理
JVM在整个JDK中处于最底层,负责与操作系统交互,用来屏蔽操作系统,提供一个完整的java运行环境,因此也称为虚拟计算机,操作系统装入jvm是通过JDK中的java.exe来实现
【6】 什么是JRE?
JRE是Java Runtime Environment 的简称,即java运行时环境,它是java程序运行所必须的环境集合,主要有java虚拟机、java平台核心类和若干支持文件组成。Jre不包含开发工具、编译器、调试器以及其它工具
【7】 什么是JDK?
JDK是Java Development Kit的简称,即java工具开发包。JDK是sun公司针对java开发者的产品,提供了java的开发环境和运行环境。自从java推出以来,JDK已经成为使用广泛的JavaSDK(Software development kit)。
JDK是整个java的核心,它包括了java运行时环境、java工具盒java基础类库(rt…jar)。最主流的是sun公司发布的jdk,除此之外,还有很多公司和组织都开发自己的jdk,例如ibm公司、BEA公司以及GNU组织开发的jdk等
JDK常用工具介绍:
javac.exe:编译器,将java程序编译成字节码
jar.exe:打包工具,用于将相关类文件打包成一个文件
javadoc.exe:文档生成器,从源代码注释中提取文档
jdb.exe:查错工具
appletviewer.exe:小程序浏览器,一种执行html文件上的java小程序的java浏览器
javah.exe:建立能够被java调用的C过程的头文件
javap.exe:java反编译器。显示编译类文件中的可访问功能和数据,同时显示字节代码含义
【8】 JDK、JRE、JVM之间有什么区别?
JDK、JRE、JVM之间是一种包含关系,范围由大到小依次为:JDK、JRE和JVM。JDK中包含JRE,JRE中包含JVM
【9】 什么是GC? GC的工作原理如何?
Garbage Collection简称GC,是垃圾回收的意思。
内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或者系统的不稳定甚至崩溃。Java语言提供的GC功能可以自动监测对象是否超过作用域,从而达到自动回收内存的目的,java语言没有提供释放已经分配内存的显示操作方法,资源回收工作全部交由GC来完成,程序员不能精确控制垃圾回收的时机。
Java的内存管理实际就是对象的管理,其中包括对象的分配和释放。对于程序员来说,分配对象就是使用new关键字,释放对象时只是将对象赋值为空,让程序不能够访问到这个对象,该对象称为“不可达”。GC将负责回收所有“不可达”对象的内存空间
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小和使用情况。当程序有一定的等待时间,程序员可以手动执行System.gc(),通知GC运行,但是java语言规范并不保证GC一定能执行。
Java与C、C++相比在内存回收方面做了很大的改进,简化了开发者对内存资源的分配和回收。

【10】 为什么在JDK安装路径下有两个JRE?
在安装JDK后,在JDK安装目录下会发现两个JRE目录。以JDK6.0为例,按照默认的安装后,一个是“c:\program files\java\jdk1.6.0_01\jre”,另外一个是“c:\program files\java\jre1.6.0_01”
第一个JRE用于为JDK自带的开发工具提供运行环境,在JDK中有很多用java编写的开发工具(例如 javac.exe、jar.exe等),这些工具实现的源代码都放在“c:\program files\java\jdk1.6.0_01\lib\tools.jar”里面,这些代码运行也需要一套JRE
第二个JRE用于为开发者编写代码提供的运行环境

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值