java基础知识思考题doc.docx
- 文档编号:30177925
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:18
- 大小:29.12KB
java基础知识思考题doc.docx
《java基础知识思考题doc.docx》由会员分享,可在线阅读,更多相关《java基础知识思考题doc.docx(18页珍藏版)》请在冰豆网上搜索。
java基础知识思考题doc
java思考题
1、缩写JDK的含义是什么。
JDK是Java开发工具包(JavaDevelopmentKit)的缩写。
它是八种用于构建在Java平台上发布的应用程序、applet和组件的开发环境。
其中包括了Java编译器、JVM、大量的Java工具以及Java基础API里面是Java类库和Java的语言规范,同时Java语言的任何改进都应当加到其屮,作为后续版木发布。
要成为一名程序员,JDK是一种最基木的匸具。
(JDK是Javadevelopmenttoolkit,相当于是Java的库函数,是编译,运行java程序的工具包。
)
2、解释Java语言跨平台的技术基础。
因为Java稈序编译Z后的代码不是能被硬件系统直接运行的代码,而是一种'屮间码,,一字节码。
然示不同的硬件平台上安装有不同的Java虚拟机(JVM),FtlJVM來把字节码再“翻译”成所对应•的硬件平台能够执行的代码。
因此对于Java编程者来说,不需要考虑硬件平台是什么。
所以Java可以跨平台。
3、什么是Java语言的白动垃圾收集。
4、说明J2SE、J2ME、J2EE各自的含义。
J2EE是Java2enterpriseedition是Java的一种企业版用于企业级的丿'V用服务开发
J2SE是Java2standardedition是Java的标准版,用于标准的应用开发
J2ME是Java2MicroEdition是Java的微型版,常用于手机上的开发
J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。
5、Java的包是什么含义,有哪些作用。
包就是用來装不同java源文件和类文件的文件夹。
作用有两个:
一个是防止重名现彖,还有一个是隐藏具体实现。
6、J2SE类库屮包含哪些主要的包(即java.*)。
langutilioawt
java」ang包
在所有的JAVAAPI类库屮,java.lang包是最重要的,它提供了JAVA语言的核心类库,包含了运行JAVA程序必不可少的系统类,如:
基木数据类型、基木数学函数、字符串处理、线程管理和异常处理类等。
运行JAVA程序时,系统会H动加载javaJang包,既这个包的加载是默认的。
java.io包
java.io包提供了一系列用来读雳文件或其他的输入输岀流。
其屮有基木输入/输出类、缓存流类、比特数组与字符串流类、数据流类、文件流类、管道类、流连接类和异常类等。
java.util包
java.util包提供了JAVA语言屮的-•些低级的实用工具,如数据结构类、日期类、随机数类、屈性类、观测类和异常类等。
java.awt包
java.awt包是JAVA语言用来构建图形用八界面(GUI)的类库,包括许多界面元索和资源。
java.awt包提供JAVA语言屮的图形类、组成类、容器类、排列类、几何类、事件类和工具类等。
包
包包含一些与网络相关的类和接口,以方便应川程序在网络上传输信息。
如主机名解析类、实现套接字通信的Sockel类和ServerSocket类、资源定位器(URL)类等。
java.applet包
java.applet包是用来实现运彳亍于Internet浏览器屮的JAVAAPPLET的丁•具类库。
它包含于产生Applet的类和用于Applet通信的类oApplet类称为小应用程序类,通常所说的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函数的原型,说明每项的含义。
publicstaticvoidmain(String[]args)
"public1'公有"static"静态"void"无返回类型"main()n方法名String[]args…个String[]的参数
11、Java语言的三种注释语法形式及其用法。
三种类型如下:
〃注释一行/*一行或多行注#*//**文档注释**/文档注释一般放在一个变量或函数定义?
reg;前,指示在任何白动生成文档系统中调入。
12、Jar文件一般是做什么的?
jar7^java中川来对java文件进彳亍打包的,类似于zip文件(貝实他的压缩编码方式和zip是一样的)。
一般来说,jar•文件是用来发布java程序的,将编译得到的cl跑文件压缩成一个文件,利于管理,也方便使用,jaw的库文件人都是采用ja「方式发布的.
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.XXXo同样一般的系统都会支持一些内核参数,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的工程屮有哪些典型的了目录,各自存储什么?
BakT目录,B|JJavaJCi备文件夹,存放毎一次Java更新示的结果。
Classes子目录,即Java类文件夹,存放所有Java类的字节码。
Src子目录,存放最近一次更新的J“va源程序。
17、Java的基本数据类型有哪些?
Java编程语言定义了八个原始数据类型(非类类型)和一种特殊类型(类类型)。
原始类型可分为四种:
逻辑类型boolean
字符类型char
報数类型byte、short>int>long
浮点类型double、float
(*简单数据类型:
简单数据类型是不能再简化的、内置的数据类型,由编程语言定义,表示真实的数字、字符和整数。
例如实数、整数、字符和布尔值。
*复合数据类型:
由简单数据类型的组合形成的更大、更复杂的数据类型。
例如类、接口和数字。
)
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这些数,必须在十六进制数之前冠以Ox。
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操作符创建对象的过程。
对彖创建——类的实例化,使丿IJnew操作符,创建对彖并赋给前面的引丿II。
如:
Pointp1=newPoint();
虽然分为两步,p1只是Point对象的引用,但习惯性还是称p1为Point对彖。
因为Java屮表达对象的方法只有引用这一种,不像C++,有变量和指针两种。
26、静态成员变量、实例变最、局部变量分别是何时创建、何时销毁的?
局部变量定义在函数体内,函数被调用时,局部变量才临时的被创建,函数执行完麻,局部变最自动被销毁;(全局变量是定义在整个程序空间内的,在开始运行程序时被创建,整个程序执行完了才会销毁:
)静态成员变量的生命周期取决于类的工命周期,当类被加载的时候,静态变量被创建并分配内存空间,肖类被卸载时,静态变最被摧毁,并释放所山冇
的内存;类的毎一个实例都有相应的实例变量,每创建一个类的实例,java虚拟机为实例变呈分配一次内存,实例变呈位于堆区屮,实例变暈的生命周期取决于实例的生命周期,当创建实例时,为实例变暈背创建,并分配内存,当实例被销毁时,实例变量被销毁,并帑放所占有的内存空间。
(类的成员变童有两种:
一种是被static关键字修饰的变量,叫类变童或静态变量,一种是没有被static修饰的,叫做实例变量
静态变量和实例变量的区别在于:
类静态变量在内存屮只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享,静态变量可以通过类名直接访问。
静态变量的生命周期取决于类的生命周期,当类被加载的时候,静态变暈被创建并分配内存空间,当类被卸载时,静态变量被摧毁,并釋放所占有的内存。
类的每一个实例都有相丿、''/•的实例变量,毎创建一个类的实例,java虚拟机为实例变量分配一次内存,实例变童位于堆区屮,实例变暈的生命周期取决于实例的生命周期,当创建实例时,为实例变量背创建,并分配内存,当实例被销毁时,实例变量被销毁,并释放所占有的内存空间。
假如成员变量时引用变量,该成员变量结束生命周期时,并不意味着它所引用对象也结束生命周期。
变量的生命周期和对彖的生命周期是不同的概念。
)
(局部变量是在函数或方法屮的变量,实例变量指的是类的一个实例,就是一个对彖,成员变量就是类屮的变量(不是方法屮的变量!
),类变量是类屮的静态变量。
局部、实例、成员变量的作用域和生存周期同局部变量一样(局部变量在定义他们的函数时被创建,而且都在该函数结束时被销毁。
),而类变暈如果用public声明则作用域同全局变量,如果是private则作用域只在类的内部,生存周期同全局变量.
成员方法和类方法跟局部变量和类变量的关系一样•)
(局部变量定义在函数内部的变量称为局部变量(也可以叫内部变量),其作用域为块作用域,即只允许定义该变量的块屮语句访问该变氣更准确地说,块作用域的范围是从变量定义处开始,到块的结束处为止。
这里所说的块主要是指复合语句。
因此,定义于一复合语句屮的变最,不但其他函数不能访问,该复合语何以外的语句也不能访问,即便是同一复合语句屮的语句,如果它位于变量定义处之前,也不能访问该变量(一样遵循先定义后使用的原则)。
这就是“局部”的含义。
关于局部变量的作用域还要说明以下儿点:
1.主函数main()中定义的内部变量,也只能在主函数中使用,其它函数不能使用。
同样,主函数也不能使用其它函数屮定义的内部变量。
因为主函数也是一个函数,与其它函数是平行关系,应予以注意。
2.形参变量是局部变量,作用域在被调用函数内。
3.允许在不同的函数中使用相同的变量名,它们代表不同的对彖,分配不同的单元,互不干扰,也不会发生混淆。
)
(全局变量
在函数外部定义的变暈称为全局变暈(也可以叫外部变皐)。
用于记录丿'V
用系统的全局信息,也是函数之间交换数据信息的媒介。
以此类推,在函数外部立义的数组就称为全局数纟fl。
全局变量不属于任何一个函数,其作用域是:
从全局变童的定义位置开始,到木文件结束为止。
对于全局变量还有以下几点说明:
(1)全局变量可加强函数模块之间的数据联系,但又使这些函数依赖这些全局变量,因而使得这些函数的独立性降低。
从模块化程序设计的观点来看这是不利的,因此不是非用不可时,不要使用全局变量。
(2)在同一源文件中,允许全局变量和局部变量同名。
在局部变量的作用域内,全局变暈将被屏蔽而不起作用。
当然系统不会混淆,并不意味着人也不会混淆,所以皿该尽量少用同名变量。
(3)全局变量的作用域是从定义点到木文件结束。
如果定义点Z前的函数需要引用这些全局变量时,需要在函数内对被引用的全局变量进行说明。
)
27、什么样的方法适合定义成静态方法(即类方法)?
在使用的时候,不需要实例化,育接使用类名•方法名;使用频率较高的方法用关键字static定义为静态方法,纟H•织在一个类中,静态方法jvm启动示氏接加载在内存屮,提高访问效率。
如果方法执行过稈小不使用对象的属性(也就是非静态成员变量),只是用静态成员变最或者参数传入的信息,这时候方法的处理与对象无关,所以可以设置成静态方法,也应该设置成静态方法°
(什么样的方法适合定义成静态变量?
如果一个成员变量的修改不依赖于任何一个对象个体的数据,那么它就应该是静态的。
如果一个成员变量除了变量初始化代码从来没有被修改过,或者在整个系统屮貝有一次与对彖其它数据无关的修改,那么它就应该是终止的,必然也是静态的。
)
28、了类、父类对彖Z间的赋值关系如何?
了类对彖可以穴接赋值给父类对彖,实际对象没有任何变化,不过是麻者引用了新的对象而已。
但父类对象赋值给了类对彖必须进行强制类型转换,而且运行时候还会进行实际的类型检杳,类型不匹配将抛出异常。
29、有不可继承的成员变量或成员方法吗?
没有
了类继承父类的所有方法和变量(属性)
private的变量(属性)和方法能被继承不能被引用、访问
30、什么是方法重载、覆盖?
如果在了类屮重写了一个与父类屮函数原熨完全相同的方法,则称为方法覆盖。
如果一个类屮有相同名字的方法,称为方法重载,且这些同名方法必须在参数的类型及次序上有所不同。
(返冋值类型不起作用。
)
31、This和s叩ei•的用法有哪些。
(this引用
关键字this是用来引用当前对彖的——当然是在类的内部。
在类的定义屮,使用形式化的成员变量表示将来执行时候的实际对象成员,如果需要整体形式化地引用将来的对象,就可以使用thiso
——“当前对象”是一-种站在方法执行的思考角度描述的方式。
this常用在名字冲突(成员名字和方法参数或局部变量名字相同)或参数传递时候。
虽然也是在类的內部调用构造方法的一种形式,但关键字相同但含义不同,且仅限于安排在一个构造方法的首行。
super弓]用
super代表着当前对象的父类身份。
如果在以this身份访问从父类继承下来的成员上出现麻烦(一•般是同名所带来的问题),可以通过它访间父类的成员。
(也仅限于可见成员)。
super也可以用作实参。
虽然也是前述父类构造方法的调用形式,但关键字相同但含义不同,且仅限于安排在一个枸造方法的首行。
)
this引用
关键字this是用来引用当前对象的——当然是在类的内部。
this常用在名字冲突(成员名字和方法参数或局部变最名字相同)或参数传递时候。
super引用
super代表着当前对彖的父类身份,通过它访问父类的成员。
super也可以用作实参。
32、抽彖类有哪些特征规定?
abstract类(抽象类),必须被继承的类,它不能被实例化。
如果一个类包含有抽象方法,它必须被定义为抽象类。
33、抽象方法有哪些特征规定?
abstract方法(抽彖方法),如果…个方法必须被子类覆盖,可以定义抽彖方法。
34、终止类、终止方法?
终止类(final)
定义终止类,表示不能被继承。
终止方法(final)
定义终止方法,使其不能被了•类覆盖。
(终止变量
定义终il••变量,使其除了初始化Z外,不可以再被改变值。
相当于常数变量。
)
35、实例方法和类方法各是什么含义?
(实例变最(instancevariable):
或叫实例域、实例字段(instancefield),或叫成员变量(membervariable)。
实例的变量,每个实例的变量可能不同。
实例方法(instancemethod):
或叫成员方法(membermethod)0供实例用的方法,必须要先有实例,才能通过此实例调用实例方法。
类变量(classvariable):
或叫静态域、静态字段(staticfield),或叫静态变量(staticvariable)0出现在这样的情况下:
一个类的所有实例需要一个公有的属性,比如,一,统计实例个数;二,常量。
类变量与类育•接关联在一起。
内存当屮只有一个地方存放这个变量。
任何实例都可以修改它的值(前提是它没有被final修饰符修饰,不然就是常量),但是,访问类变量并不需要实例,用类就可以操作了。
类方法(classmethod):
跟类变量的基本特点一样。
供类用的方法,可以没有实例,直接通过类来调用类方法。
类方法(classmethod):
跟类变量的基本特点一样。
供类用的方法,可以没有实例,直接通过类来调用类方法。
从形式上看,类变量和类方法,比一般的变量和方法多了一个static修饰符。
因为这个原因,类变量和类方法也被叫做静态变量和静态方法。
它们的使用方法:
实例方法可以直接访问实例变量,调用实例方法;
实例方法可以II接访问类变量,调用类方法。
但不推荐这么做,原因是不清晰,容易把类变最误认为是实例变量,把类方法谋认为是实例方法(借助IDE,它会给出警告信息。
);
类方法可以肓接调用类变量和类方法;
类方法不能直接调用实例变量和实例方法;
类方法里面不能使用“this"关键字,因为没冇实例存在,“this"不知道引用哪个实例。
)
实例方法(instancemethod):
或叫成员方法(membermethod)。
供实例用的方法,必须要先有实例,才能通过此实例调用实例方法。
类方法(classmethod):
跟类变量的基本特点一样。
供类用的方法,可以没有实例,肓接通过类来调用类方法。
供类用的方法,可以没有实例,肓接通过类来调用类方法。
36、实例变量和类变量各是什么含义?
实例变量(instancevariable):
或叫实例域、实例字段(instancefield),或叫成员变量(membervariable)。
实例的变量,毎个实例的变量可能不同。
类变量(classvariable):
或叫静态域、静态字段(staticfield),或叫静态变量(staticvariable)0出现在这样的情况下:
一个类的所有实例需要一个公有的屈性,比如,一,统计实例个数;二,常量。
类变量与类真接关联在一起。
内存当屮只有一个地方存放这个变量。
任何实例都可以修改它的值(前提是它没有被final修饰符修饰,不然就是常量),但是,访问类变量并不需要实例,用类就可以操作了。
37、接口有哪些特征?
和继承的区别?
Java屮应该也是不支持多继承的,也就是说一个类只能有一个父类,但一个类可以同时继承多个接口・(这里只作参考,木人不是做Java的)
继承是一种编程思想,接口是一种编程方法,两者没得比.你问得是不是类与接口的区别.类与接口的区别在于,类可以拥有1'1己的实现,接口则不能,它包含的只是一些约定,另外,接口永远不能被实例化.
38、包装类有哪些?
主要用途?
八个包装类,分别是Boolean、Byte、Character^Short、IntegersLong^Float和Double,
Java为基木类型提供包装类,这使得任何接受对象的操作也可以用来操作基木类型。
java语言建立这8个类,除了体现一下完全面向对象的语言特点Z外,解决了一些小的问题,如数集屮最人最小等数的常量标志符泄义问题、数与串的转换问题、简单数据的对象化问题等等。
(育接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大杲使用这些包装类。
经过包装的类,功能比原来增强,或者优化性能。
比如在io操作屮,就有许多包装类.包装类主要通过“组合”的方式实现扩展。
)
39、对象销毁的方法是什么?
该方法内部一般安排什么内容?
在Java语言屮拥有一套完整的对象垃圾冋收机制。
即程序开发人员不需要于工的冋收废弃的对象。
垃圾冋收器将冋收无用对彖所占用的内存资源。
不过这个垃圾冋收器并不是力能的,需要结合其他的对彖冋收方式,才能够最终解决这个对象冋收的问题。
在Java屮,总共有三种方式可以用来解决对象冋收的问题:
一、垃圾回收器
垃圾冋收器是Java平台屮用的最频繁的一种对象销毁方法。
垃圾冋收器会全程侦测JavaM用程用的运行情况。
当发现有对象成为垃圾时,垃圾冋收器就会销毁这些对象,并释放这些对象所占用的内存空间。
在这甲,程丿孑开发人员需要知道,在哪些情况下垃圾冋收器会认为这些对象是垃圾对象。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 基础知识 思考题 doc