java简答题答案_第1页
java简答题答案_第2页
java简答题答案_第3页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章:1. 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。2. JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。JDK(JavaDevelopment Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时

2、,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。3. path:path环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。classpath:classpath环境变量也是系统环境变量中的一种,它用于保存一系列类(.class)文件的路径。当Java虚拟机需要运行一个类时,会先在classpath环境变量中所定义的路径下去寻找所需

3、的class文件。如果classpath的路径最后有分号,则在classpath中找不到时,再到当前路径查找;如果最后无分号,则只在classpath设置的路径中查找。4. JVM是JavaVirtual Machine的缩写,全称是Java虚拟机。Java语言的一个非常重要的特性就是跨平台性,而Java虚拟机是实现这一特性的关键。不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行

4、。第二章:1. Java语言的八种基本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型,占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double双精度浮点型,占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,有true和false两个值,分别占一个字节。2. 如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false时,就不会执行其右边的表达式。例如:定义int x 

5、;= 2,y=0;执行输出表达式 boolean b = x<y&x/y>0;的值时,会发生被0除的异常,因为“&”右边的表达式x/y>0的表达式执行了;而boolean b = x<y&&x/y>0;是不会出现这种异常的,因为“&&”左边的表达式x<y为false,右边的表达式x/y>0就不会被执行。3. 方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM会根据

6、实际参数的不同绑定到不同的方法。4. char型变量是用来存储Unicode编码的字符的,Unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在Unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:Unicode编码占用两个字节,所以char类型的变量也是占用两个字节。5. break语句:在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。contin

7、ue语句:continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。return语句:return语句可以用于从当前的方法中退出,返回到该调用的方法的语句处,继续执行。return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。第三章:1. 构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值。2. 单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。3. J

8、ava语言中一个显著的特点就是引入了垃圾回收机制,使得Java程序员在编写程序的时候不再需要考虑内存管理。垃圾回收可以有效的防止内存泄露,有效地利用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。4. 在Java中共有四种代码块,它们分别是静态代码块、构造代码块、普通代码块和同步代码块。静态代码块:在Java类中,使用一对大括号包围起来的若干行代码被称为一个代码块,用static关键字修饰的代码块称为静态代码块。当类被加载时,静态代码块会执

9、行,由于类只加载一次,因此静态代码块只执行一次。在程序中,通常会使用静态代码块来对类的成员变量进行初始化。构造代码块:直接在类中定义的没有加static关键字的代码块称为构造代码块。构造代码块在每次创建对象时都会执行。普通代码块:在方法或语句中出现的代码块就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定,即“先出现先执行”。同步代码块:Java对于多线程的安全问题提供了专业的解决方式,就是同步代码块。synchronized(对象)/这个对象可以为任意对象需要被同步的代码对象如同锁,持有锁的线程可以在同步中执行,没持有锁的线程即使获取CPU的执行权,也进不去。第四章

10、:1. 在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。2. 多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。3. 在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在

11、定义时需要使用interface关键字。4. 方法重写(Overriding)和方法重载(Overloading)是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在同一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。5. Error表示恢复不是不可能但很困

12、难的情况下的一种严重问题,比如说内存溢出,仅靠修改程序本身是不能处理这样的情况的。Exception表示程序本身可以处理的错误,在开发Java程序中进行的异常处理,都是针对Exception类及其子类。在Exception类的众多子类中有一个特殊的RuntimeException类,该类及其子类用于表示运行时异常,除了此类,Exception类下所有其他的子类都用于表示编译时异常。第五章:1. 一种是继承java.lang包下的Thread类,覆写Thread类的run()方法,在run()方法中实现运行在线程上的代码。new Thread() public void run().start(

13、);另一种就是实现java.lang.Runnable接口,同样是在run()方法中实现运行在线程上的代码。new Thread(new Runnable()public void run().start()2. 调用sleep()方法,正在执行的线程主动让出CPU去执行其他线程,在sleep()方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,即使当前线程使用sleep()方法让出了CPU,但其他被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其他正在等待此

14、锁的线程可以得到同步锁并运行。当其他线程调用了notify()方法后,调用wait()方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。3. 相同点:Lock能完成synchronized所实现的所有功能。不同点:总的来说,Lock更加灵活。Lock有比synchronized更精确的线程予以和更好的性能。synchronized会自动释放锁,但是Lock一定要求程序员手工释放,并且必须在finally从句中释放。synchronized 修饰方法时表示同一个对象在不同的线程中表现为同步队列,如果实例化不同的对象,那么synchronized就不会出现同步效果了。4.

15、在一个操作系统中,每个独立执行的程序都可以称为一个进程,也就是“正在运行的程序”。而在进程中还可以有多个执行单元同时执行,这些执行单元可以看作程序执行的一条条线索,被称为线程。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。第六章:1. String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。2. Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返

16、回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了Date类,该类中定义了一系列用于完成日期和时间字段操作的方法。Calendar有一个getTime()方法,getTime()返回一个表示Calendar时间值的Date对象,同时Calendar还有一个setTime(Datedate)方法,setTime()方法接收一个Date对象,将Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和Calendar对象之间的转换。3. int是Java中的基本数据类型,Integer是Java为int提供的包装类。int类型的初始值为0

17、,而Integer的初始值为null。Java为每个基本类型都提供了对应的包装类,包装类属于引用类型。基本类型 包装类boolean Booleanchar Characterbyte Byteshort Shortint Integerlong Longfloat Floatdouble Double4. 包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本数据类型的值转为引用数据类型,反之,拆箱是指将引用数据类型的对象转为基本数据类型。第七章:1. 为了使程序能方便的存储和操作数目不固定的一组数据,JDK提供了一套类库,这些类都位于java.util包中,

18、统称为集合。集合框架中包含3个接口,分别是List、Set、Map。2. List的特点是元素有序、元素可重复。List接口的主要实现类有ArrayList和LinkedList。Set的特点是元素无序、元素不可重复。Set接口的主要实现类有HashSet和TreeSet。Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap。3. Collection是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections是一个工具类。它包含各种有关集合操作的方法。4. Hashtable继承自

19、Dictionary类,而HashMap是Java1.2引进的Map接口的一个实现。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。最大的不同是,Hashtable的方法是线程安全的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。5. (1)提高了Java程序的类型安全,在编译时期解决,避免程序在运行时期发生错误。(2)消除强制类型转换。

20、(3)泛型可以替代Object类型的参数和变量的使用,带来性能的大幅提高并增加代码的可读性。第八章:1. Java程序通过流来完成输入和输出,流是输入或输出信息的抽象。流通过Java的输入/输出系统与外设连接进行数据通信。流是抽象的对象,具体实现代码在java.io包中。2. 字节流的两个基类是InputStream和OutputStream,字符流的两个基类是Reader和Writer,它们都是Object类的直接子类,字节流是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字节的字符流类。3. 管道流分为管道输入流(PipedInputStream)和管道输

21、出流(PipedOutputStream),通常由一个PipedInputStream实例对象和一个PipedOutputStream实例对象相互连接而实现管道通信,PipedOutputStream向管道写入数据,PipedInputStream从管道中读取PipedOutputStream写入的数据,管道流主要用来完成线程之间的通信。4. 程序运行时,会在内存中创建多个对象,然而程序结束后,这些对象便被当作垃圾回收了。如果希望永久保存这些对象,则可以将对象转为字节数据写入到硬盘上,这个过程称为对象序列化。序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的

22、方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态)。5. 把字符串转换成计算机识别的字节序列称为编码,而把字节序列转换为普通人能看懂的明文字符串称为解码。第九章:1. (1)通过实现XxxListener接口或者继承XxxAdapter类实现一个事件监听器类,并对处理监听动作的方法进行重写(2)

23、创建事件源对象和事件监听器对象(3)调用事件源的addXxxLisntener()方法,为事件源注册事件监听器对象2. AWT是AbstractWindow ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,当我们利用 AWT 来构建图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java语言所宣称的"一次编译,到处运行"的概念,AWT 不得不通过牺牲功能来实现其平台无关性,也就是说,AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。由于AWT 是依靠本地方法来实现其功能的,我们通常把AWT控件称为重量级控件。Swing

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论