java基础知识思考题.docx

上传人:b****2 文档编号:24349602 上传时间:2023-05-26 格式:DOCX 页数:18 大小:28.38KB
下载 相关 举报
java基础知识思考题.docx_第1页
第1页 / 共18页
java基础知识思考题.docx_第2页
第2页 / 共18页
java基础知识思考题.docx_第3页
第3页 / 共18页
java基础知识思考题.docx_第4页
第4页 / 共18页
java基础知识思考题.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

java基础知识思考题.docx

《java基础知识思考题.docx》由会员分享,可在线阅读,更多相关《java基础知识思考题.docx(18页珍藏版)》请在冰豆网上搜索。

java基础知识思考题.docx

java基础知识思考题

java思考题

1、缩写JDK的含义是什么。

JDK是Java开发工具包(JavaDevelopmentKit)的缩写。

它是一种用于构建在Java平台上发布的应用程序、applet和组件的开发环境。

其中包括了Java编译器、JVM、大量的Java工具以及Java基础API里面是Java类库和Java的语言规范,同时Java语言的任何改进都应当加到其中,作为后续版本发布。

要成为一名程序员,JDK是一种最基本的工具。

(JDK是Javadevelopmenttoolkit,相当于是Java的库函数,是编译,运行java程序的工具包。

2、解释Java语言跨平台的技术基础。

因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。

然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。

因此对于Java编程者来说,不需要考虑硬件平台是什么。

所以Java可以跨平台。

3、什么是Java语言的自动垃圾收集。

4、说明J2SE、J2ME、J2EE各自的含义。

J2EE是Java2enterpriseedition是Java的一种企业版用于企业级的应用服务开发

J2SE是Java2standardedition是Java的标准版,用于标准的应用开发

J2ME是Java2MicroEdition是Java的微型版,常用于手机上的开发

J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。

5、Java的包是什么含义,有哪些作用。

包就是用来装不同java源文件和类文件的文件夹。

      作用有两个:

一个是防止重名现象,还有一个是隐藏具体实现。

6、J2SE类库中包含哪些主要的包(即java.*)。

lang util io awt

java.lang包

在所有的JAVAAPI类库中,java.lang包是最重要的,它提供了JAVA语言的核心类库,包含了运行JAVA程序必不可少的系统类,如:

基本数据类型、基本数学函数、字符串处理、线程管理和异常处理类等。

运行JAVA程序时,系统会自动加载java.lang包,既这个包的加载是默认的。

java.io包

   java.io包提供了一系列用来读写文件或其他的输入输出流。

其中有基本输入/输出类、缓存流类、比特数组与字符串流类、数据流类、文件流类、管道类、流连接类和异常类等。

java.util包

   java.util包提供了JAVA语言中的一些低级的实用工具,如数据结构类、日期类、随机数类、属性类、观测类和异常类等。

java.awt包

   java.awt包是JAVA语言用来构建图形用户界面(GUI)的类库,包括许多界面元素和资源。

java.awt包提供JAVA语言中的图形类、组成类、容器类、排列类、几何类、事件类和工具类等。

   包包含一些与网络相关的类和接口,以方便应用程序在网络上传输信息。

如主机名解析类、实现套接字通信的Socket类和ServerSocket类、资源定位器(URL)类等。

java.applet包

   java.applet包是用来实现运行于Internet浏览器中的JAVAAPPLET的工具类库。

它包含于产生Applet的类和用于Applet通信的类。

Applet类称为小应用程序类,通常所说的Applet程序必须集成该类,Applet是一种专门化的面板,需要潜入到HTML网页中,由与JAVA语言兼容的浏览器执行。

java.awt.event包

   java.awt.event包是对JDK1.0版本中原有的Event类的一个扩充,它使得程序可以用不同的方式来处理不同类型的事件,该包中定义了许多不同类型的事件监听器类,使每个图形界面元素本身可以处理它上面的事件。

7、Java中关于类、成员变量、成员方法有哪些典型的命名规范。

一切自定义名字的都是标识符,以字母下划线或者美元标志开头

类:

每个单词的首字母大写

方法:

方法名第一个单词小写,从第二个单词开始首字母大写

变量:

变量和方法命名一样

常量:

都用大写

8、Java的源文件结构一般分那些部分。

Java程序的源文件有三种,后缀名分别是.java,.class和.jar。

9、Java类的结构包含哪几个部分。

import

类声明

构造函数

变量定义

方法

10、写出Main函数的原型,说明每项的含义。

public static void main(String[] args) 

"public"公有 "static" 静态 "void" 无返回类型 "main()" 方法名 String[] args 一个String[]的参数

11、Java语言的三种注释语法形式及其用法。

三种类型如下:

//注释一行/*一行或多行注释*//**文档注释**/文档注释一般放在一个变量或函数定义?

reg;前,指示在任何自动生成文档系统中调入。

12、Jar文件一般是做什么的?

jar是java中用来对java文件进行打包的,类似于zip文件(其实他的压缩编码方式和zip是一样的)。

一般来说,jar文件是用来发布java程序的,将编译得到的class文件压缩成一个文件,利于管理,也方便使用,java的库文件大都是采用jar 方式发布的.

13、Java的编译和解释都作了什么?

Java既可以被编译,也可以被解释。

通过编译器,可以把Java程序翻译成一种中间代码-称为字节码-可以被Java解释器解释的独立于平台的代码。

通过解释器,每条Java字节指令被分析,然后在计算机上运行。

只需编译一次,程序运行时解释执行。

14、环境变量的作用是什么?

path起什么作用?

classpath呢?

只有设置环境变量才能执行javac及java语句

path是你编写的原文件的地址从path中找原文件编辑后放在pathclass里

classpath是执行javac后.class文件存放的地址

(系统通过环境变量可以找到JAVA的执行文件,一些classpath对应的JAR包。

可以这么理解JAVA起的JVM可以理解是一个小型的OS,所有的程序资源分配和获取系统硬件信息都是通过JVM走底层的包(可能是JAVA程序或者C)与系统进行交互。

同样你也可以给JVM传递一些参数,也就是所谓JVM级别的环境变量。

通常是-DXXX.XXX,然后你就可以在应用中直接取XXX.XXX。

同样一般的系统都会支持一些内核参数,JVM默认的“内核参数”有XmsXmxNewSizeMaxNewSizePermSizeMaxPermSize,Rialto,Xss等等。

15、使用JDK怎样编译和运行程序?

配置环境变量(winxp系统):

右键点击我的电脑->属性->高级->环境变量

1.在系统变量栏点新建,出现新建系统变量对话框

变量名填JAVA_HOME

变量值填C:

\ProgramFiles\Java\jdk1.5.0_06(你安装的位置.随版本不同而不同)

2.再新建一个

变量名填classpath

变量值填.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

3.然后在系统变量栏找到变量为Path的选项,点编辑在变量值的末尾添加;%JAVA_HOME%\bin;

16、JBuilder的工程中有哪些典型的子目录,各自存储什么?

Bak子目录,即Java后备文件夹,存放每一次Java更新后的结果。

Classes子目录,即Java类文件夹,存放所有Java类的字节码。

Src子目录,存放最近一次更新的Java源程序。

17、Java的基本数据类型有哪些?

Java编程语言定义了八个原始数据类型(非类类型)和一种特殊类型(类类型)。

原始类型可分为四种:

逻辑类型boolean

字符类型char

整数类型byte、short、int、long

浮点类型double、float

(*简单数据类型:

简单数据类型是不能再简化的、内置的数据类型,由编程语言定义,表示真实的数字、字符和整数。

例如实数、整数、字符和布尔值。

*复合数据类型:

由简单数据类型的组合形成的更大、更复杂的数据类型。

例如类、接口和数字。

18、几个整型类型的编码长度和取值范围如何?

IntegerLength

NameorType

Range

8bits

byte

-27...27-1

16bits

short

-215...215-1

32bit

int

-231...231-1

64bits

long

-263...263-1

19、查找IEEE754的浮点数格式编码规范。

20、Java语言怎样书写16进制数。

数字0-9和字母a-f(或其大写A-F)表示0到15这些数,必须在十六进制数之前冠以0x。

21、&&和&两个运算符的区别。

&&是逻辑运算符,两边只能是布尔值,有短路特性。

&是位运算符,两边可以是布尔值也可以是数字,没有短路特性。

22、引用和非引用(简单类型)变量的区别。

(对象:

是按照“类”这个模板建立的,建立的位置则是内存

例如A是一个类。

AX则是创建一个引用变量,X=NEWA()则是在内存中建立一个对象(开辟了1片空间),对象的模板就是A(可以理解为在空间里复制了A类里的变量到空间里去。

此时就可以使用引用变量X去引用对象中的变量了。

23、字符串类有哪些主要的方法。

字符串类的常用方法

长度length()

相等比较equals()

大小比较compareTo()

连接concat()

子串substring()

单个字符charAt()

查找子串indexOf()

替换replace()

24、==与equals的区别。

==是指引用是否相同,equals()是指值是否相等。

(equals()是Object里的方法,任何对象都继承Object)

25、使用new操作符创建对象的过程。

对象创建——类的实例化,使用new操作符,创建对象并赋给前面的引用。

如:

Pointp1=newPoint();

虽然分为两步,p1只是Point对象的引用,但习惯性还是称p1为Point对象。

因为Java中表达对象的方法只有引用这一种,不像C++,有变量和指针两种。

26、静态成员变量、实例变量、局部变量分别是何时创建、何时销毁的?

局部变量定义在函数体内,函数被调用时,局部变量才临时的被创建,函数执行完后,局部变量自动被销毁;(全局变量是定义在整个程序空间内的,在开始运行程序时被创建,整个程序执行完了才会销毁;)静态成员变量的生命周期取决于类的生命周期,当类被加载的时候,静态变量被创建并分配内存空间,当类被卸载时,静态变量被摧毁,并释放所占有的内存;类的每一个实例都有相应的实例变量,每创建一个类的实例,java虚拟机为实例变量分配一次内存,实例变量位于堆区中,实例变量的生命周期取决于实例的生命周期,当创建实例时,为实例变量背创建,并分配内存,当实例被销毁时,实例 变量被销毁,并释放所占有的内存空间。

(类的成员变量有两种:

一种是被static关键字修饰的变量,叫类变量或静态变量,一种是没有被static修饰的,叫做实例变量

   静态变量和实例变量的区别在于:

  类静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享,静态变量可以通过类名直接访问。

静态变量的生命周期取决于类的生命周期,当类被加载的时候,静态变量被创建并分配内存空间,当类被卸载时,静态变量被摧毁,并释放所占有的内存。

   类的每一个实例都有相应的实例变量,每创建一个类的实例,java虚拟机为实例变量分配一次内存,实例变量位于堆区中,实例变量的生命周期取决于实例的生命周期,当创建实例时,为实例变量背创建,并分配内存,当实例被销毁时,实例 变量被销毁,并释放所占有的内存空间。

   假如成员变量时引用变量,该成员变量结束生命周期时,并不意味着它所引用对象也结束生命周期。

变量的生命周期和对象的生命周期是不同的概念。

(局部变量是在函数或方法中的变量,实例变量指的是类的一个实例,就是一个对象,成员变量就是类中的变量(不是方法中的变量!

),类变量是类中的静态变量。

局部、实例、成员变量的作用域和生存周期同局部变量一样(局部变量在定义他们的函数时被创建,而且都在该函数结束时被销毁。

),而类变量如果用public声明则作用域同全局变量,如果是private则作用域只在类的内部,生存周期同全局变量.

成员方法和类方法跟局部变量和类变量的关系一样.)

(局部变量定义在函数内部的变量称为局部变量(也可以叫内部变量),其作用域为块作用域,即只允许定义该变量的块中语句访问该变量。

更准确地说,块作用域的范围是从变量定义处开始,到块的结束处为止。

这里所说的块主要是指复合语句。

因此,定义于一复合语句中的变量,不但其他函数不能访问,该复合语句以外的语句也不能访问,即便是同一复合语句中的语句,如果它位于变量定义处之前,也不能访问该变量(一样遵循先定义后使用的原则)。

这就是“局部”的含义。

关于局部变量的作用域还要说明以下几点:

1.主函数main()中定义的内部变量,也只能在主函数中使用,其它函数不能使用。

同样,主函数也不能使用其它函数中定义的内部变量。

因为主函数也是一个函数,与其它函数是平行关系,应予以注意。

2.形参变量是局部变量,作用域在被调用函数内。

3.允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。

(全局变量在函数外部定义的变量称为全局变量(也可以叫外部变量)。

用于记录应用系统的全局信息,也是函数之间交换数据信息的媒介。

以此类推,在函数外部定义的数组就称为全局数组。

全局变量不属于任何一个函数,其作用域是:

从全局变量的定义位置开始,到本文件结束为止。

对于全局变量还有以下几点说明:

(1)全局变量可加强函数模块之间的数据联系,但又使这些函数依赖这些全局变量,因而使得这些函数的独立性降低。

从模块化程序设计的观点来看这是不利的,因此不是非用不可时,不要使用全局变量。

(2)在同一源文件中,允许全局变量和局部变量同名。

在局部变量的作用域内,全局变量将被屏蔽而不起作用。

当然系统不会混淆,并不意味着人也不会混淆,所以应该尽量少用同名变量。

(3)全局变量的作用域是从定义点到本文件结束。

如果定义点之前的函数需要引用这些全局变量时,需要在函数内对被引用的全局变量进行说明。

27、什么样的方法适合定义成静态方法(即类方法)?

在使用的时候,不需要实例化,直接使用类名.方法名;使用频率较高的方法用关键字static定义为静态方法,组织在一个类中,静态方法jvm启动后直接加载在内存中,提高访问效率。

如果方法执行过程中不使用对象的属性(也就是非静态成员变量),只是用静态成员变量或者参数传入的信息,这时候方法的处理与对象无关,所以可以设置成静态方法,也应该设置成静态方法。

(什么样的方法适合定义成静态变量?

如果一个成员变量的修改不依赖于任何一个对象个体的数据,那么它就应该是静态的。

如果一个成员变量除了变量初始化代码从来没有被修改过,或者在整个系统中只有一次与对象其它数据无关的修改,那么它就应该是终止的,必然也是静态的。

 

28、子类、父类对象之间的赋值关系如何?

子类对象可以直接赋值给父类对象,实际对象没有任何变化,不过是后者引用了新的对象而已。

但父类对象赋值给子类对象必须进行强制类型转换,而且运行时候还会进行实际的类型检查,类型不匹配将抛出异常。

29、有不可继承的成员变量或成员方法吗?

没有

子类继承父类的所有方法和变量(属性)

private的变量(属性)和方法能被继承不能被引用、访问

30、什么是方法重载、覆盖?

如果在子类中重写了一个与父类中函数原型完全相同的方法,则称为方法覆盖。

如果一个类中有相同名字的方法,称为方法重载,且这些同名方法必须在参数的类型及次序上有所不同。

(返回值类型不起作用。

31、This和super的用法有哪些。

(this引用

关键字this是用来引用当前对象的——当然是在类的内部。

在类的定义中,使用形式化的成员变量表示将来执行时候的实际对象成员,如果需要整体形式化地引用将来的对象,就可以使用this。

——“当前对象”是一种站在方法执行的思考角度描述的方式。

this常用在名字冲突(成员名字和方法参数或局部变量名字相同)或参数传递时候。

虽然也是在类的内部调用构造方法的一种形式,但关键字相同但含义不同,且仅限于安排在一个构造方法的首行。

super引用

super代表着当前对象的父类身份。

如果在以this身份访问从父类继承下来的成员上出现麻烦(一般是同名所带来的问题),可以通过它访问父类的成员。

(也仅限于可见成员)。

super也可以用作实参。

虽然也是前述父类构造方法的调用形式,但关键字相同但含义不同,且仅限于安排在一个构造方法的首行。

this引用

关键字this是用来引用当前对象的——当然是在类的内部。

this常用在名字冲突(成员名字和方法参数或局部变量名字相同)或参数传递时候。

super引用

super代表着当前对象的父类身份,通过它访问父类的成员。

super也可以用作实参。

32、抽象类有哪些特征规定?

abstract类(抽象类),必须被继承的类,它不能被实例化。

如果一个类包含有抽象方法,它必须被定义为抽象类。

33、抽象方法有哪些特征规定?

abstract方法(抽象方法),如果一个方法必须被子类覆盖,可以定义抽象方法。

34、终止类、终止方法?

终止类(final)

定义终止类,表示不能被继承。

终止方法(final)

定义终止方法,使其不能被子类覆盖。

(终止变量

定义终止变量,使其除了初始化之外,不可以再被改变值。

相当于常数变量。

35、实例方法和类方法各是什么含义?

(实例变量(instancevariable):

或叫实例域、实例字段(instancefield),或叫成员变量(membervariable)。

实例的变量,每个实例的变量可能不同。

实例方法(instancemethod):

或叫成员方法(membermethod)。

供实例用的方法,必须要先有实例,才能通过此实例调用实例方法。

类变量(classvariable):

或叫静态域、静态字段(staticfield),或叫静态变量(staticvariable)。

出现在这样的情况下:

一个类的所有实例需要一个公有的属性,比如,一,统计实例个数;二,常量。

类变量与类直接关联在一起。

内存当中只有一个地方存放这个变量。

任何实例都可以修改它的值(前提是它没有被final修饰符修饰,不然就是常量),但是,访问类变量并不需要实例,用类就可以操作了。

类方法(classmethod):

跟类变量的基本特点一样。

供类用的方法,可以没有实例,直接通过类来调用类方法。

类方法(classmethod):

跟类变量的基本特点一样。

供类用的方法,可以没有实例,直接通过类来调用类方法。

从形式上看,类变量和类方法,比一般的变量和方法多了一个static修饰符。

因为这个原因,类变量和类方法也被叫做静态变量和静态方法。

它们的使用方法:

实例方法可以直接访问实例变量,调用实例方法;

实例方法可以直接访问类变量,调用类方法。

但不推荐这么做,原因是不清晰,容易把类变量误认为是实例变量,把类方法误认为是实例方法(借助IDE,它会给出警告信息。

);

类方法可以直接调用类变量和类方法;

类方法不能直接调用实例变量和实例方法;

类方法里面不能使用“this”关键字,因为没有实例存在,“this”不知道引用哪个实例。

实例方法(instancemethod):

或叫成员方法(membermethod)。

供实例用的方法,必须要先有实例,才能通过此实例调用实例方法。

类方法(classmethod):

跟类变量的基本特点一样。

供类用的方法,可以没有实例,直接通过类来调用类方法。

供类用的方法,可以没有实例,直接通过类来调用类方法。

36、实例变量和类变量各是什么含义?

实例变量(instancevariable):

或叫实例域、实例字段(instancefield),或叫成员变量(membervariable)。

实例的变量,每个实例的变量可能不同。

类变量(classvariable):

或叫静态域、静态字段(staticfield),或叫静态变量(staticvariable)。

出现在这样的情况下:

一个类的所有实例需要一个公有的属性,比如,一,统计实例个数;二,常量。

类变量与类直接关联在一起。

内存当中只有一个地方存放这个变量。

任何实例都可以修改它的值(前提是它没有被final修饰符修饰,不然就是常量),但是,访问类变量并不需要实例,用类就可以操作了。

37、接口有哪些特征?

和继承的区别?

Java中应该也是不支持多继承的,也就是说一个类只能有一个父类,但一个类可以同时继承多个接口.(这里只作参考,本人不是做Java的)

继承是一种编程思想,接口是一种编程方法,两者没得比.你问得是不是类与接口的区别.类与接口的区别在于,类可以拥有自己的实现,接口则不能,它包含的只是一些约定,另外,接口永远不能被实例化.

38、包装类有哪些?

主要用途?

八个包装类,分别是Boolean、Byte、Character、Short、Integer、Long、Float和Double,

Java为基本类型提供包装类,这使得任何接受对象的操作也可以用来操作基本类型。

java语言建立这8个类,除了体现一下完全面向对象的语言特点之外,解决了一些小的问题,如数集中最大最小等数的常量标志符定义问题、数与串的转换问题、简单数据的对象化问题等等。

(直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。

经过包装的类,功能比原来增强,或者优化性能。

比如在io操作中,就有许多包装类.包装类主要通过“组合”的方式实现扩展。

39、对象销毁的方法是什么?

该方法内部一般安排什么内容?

在Java语言中拥有一套完整的对象垃圾回收机制。

即程序开发人员不需要手工的回收废弃的对象。

垃圾回收器将回收无用对象所占用的内存资源。

不过这个垃圾回收器并不是万能的,需要结合其他的对象回收方式,才能够最终解决这个对象回收的问题。

在Java中,总共有三种方式可以用来解决对象回收的问题:

一、垃圾回收器

垃圾回收器是Java平台中用的最频繁的一种对象销毁方法。

垃圾回收器会全程侦测Java应用程序的运行情况。

当发现有对象成为垃圾时,垃圾回收器就会销毁这些对象,并释放这些对象所占用的内存空间。

在这里,程序开发人员需要知道,在哪些情况下垃圾回收器会认为这些对象

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1