1. Java中的String和StringBuffer的区别?答案:
StringBuffer类是 String 类的一个增强类,而且是比String类更高效地存储字符串的一种引用数据类型,特别是对字符串进行追加操作时,使用StringBuffer类能大大提高程序的执行效率。String 长度不可变,StringBuffer可变长。例如, string str=“aaa”;
StringBuffer strB=new StringBuffer(“abc”); str=str+“bbb”; strB=strB.append(“def”);
2. 简述什么是类,什么是对象以及类与对象的区别。答案:
答案:类是具有相同属性和共同行为的一组对象的集合,对象或实体所拥有的特征在类中表示时称为类的属性,对象执行的操作称为类的方法;对象就是存在的具体实体,具有明确定义的状态和行为。类和对象的区别:它们之间有着本质的区别,简单地说,类定义了一个概念模型,而对象是真实的实体;类是描述实体的“模型”或“原型”,它定义了属于这个类的对象所应该具有的状态和行为。类是实体对象的概念模型,因此通常是笼统的、不具体的。
3. Java的变量命名规则。答案:
1)变量必须以字母、下划线“_”或“$”符号开头;
2)变量可以包括数字,但不能以数字开头;
3)除了“_”或“$”符号以外,变量名不能包含任何特殊字符;
4)不能使用Java语言的关键字,比如:int、class、public等
4. Java中的数据类型转换有哪几种方式?它们都是如何使用的?
1)自动数据类型转换;
规则1:如果一个操作数为double型,则整个表达式可提升为double型;
规则2:满足自动类型转换的条件,
(1)两种类型要兼容:数值类型(整型和浮点型)互相兼容;
(2)目标类型大于源类型:double型可以存放int型数据,因为为double型变量分配的空间宽度足够存储int型变量。因此,把int型变量转换成double型变量形象地称为“放大变换”。
2)强制数据类型转换;语法: (数据类型) 表达式
5. Java中的switch结构中用到的关键字有哪些?作用是什么?其执行过程怎样?
在java中switch结构用到了switch、case、default、break四个关键字,其作用分别如下:
switch:表示“开关”,这个开关就是switch关键字后面小括号里的值,小括号里要放一个整型变量或字符型变量;
case:表示“情况、情形”,case后必须是一个整形或字符型的常量表达式,通常是一个固定的字符、数字,case块可以有多个,顺序可以改变,但是每个case后常量值必须各不相同;
default:表示“默认”,即其他情况都不满足。default后要紧跟冒号。default块和case块的先后顺序可以变动,而不会影响程序执行结果。通常,default块放在末尾,当然,也可以省略。
break:表示“停止”,即跳出当前结构;
执行过程:先计算switch后面小括号里的整型变量的值,然后将计算结果顺序跟每个case后的常量比较,当遇到二者相等的时候,执行这个case块中的语句,遇到break时就跳出switch结构,执行switch结构之后的语句。如果没有任何一个case后的常量跟小括号中的值相等,则执行switch末尾部分的default块中的语句。
6. Java中的什么情况下可以使用switch结构代替多重if条件结构?
都是来处理多分支条件的结构,但是switch结构只能处理等值条件判断的情况,而且条件必须是整型变量或字符型变量,而多重if结构却没有这个限制。当条件判断是等值判断的情况下,可以使用switch结构代替多重if结构。
7. Java中的while循环、do-while循环和for循环有什么异同点?
相同处:都是循环结构,使用“while(循环条件)”表示循环条件,使用大括号将循环操作括起来。
不同处:(1)语法不同。与while循环相比,do-while循环将while关键字和循环条件放在后面,而且前面多了do关键字,后面多了一个分号。
(2)执行次序不同。while循环先判断,再执行;do-while循环先执行,再判断。
(3)一开始循环条件就不满足的情况下,while循环一次都不会执行,而do-while循环则不管什么情况都至少执行一遍。
(4)for循环的语法结构 for(初始化;条件;迭代){//循环体…}
(5)for循环:先执行初始化部分,再进行条件判断,然后执行循环体,最后执行迭代部分的计算,如果条件不成立,跳出循环,如果成立,执行循环体,如此进行下去…
适用情况:在解决问题时,对于循环次数确定的情况,通常选用for循环,对于循环次数不确定的情况,通常选用while和do-while循环。
8. Java中的调试程序的方法和步骤是什么?
调试程序的主要方法是:设置断点、单步执行和观察变量。
通过调试解决问题的步骤如下:1)分析错误位置,设置断点;2)启动调试单步运行;3)观察变量;4)发现问题;5)修正代码,重新运行;6)解决问题。
9. 什么是循环,循环包括哪些部分?
循环语句的主要作用是反复执行一段代码,直到满足一定的条件为止。
循环可以分为4个部分:(1)初始部分:设置循环的初始状态;(2)循环体:重复执行的代码,即操作;(3)迭代部分:下一次循环开始前要执行的部分,在while循环中它作为循环体的一部分;(4)循环条件:判断是否继续循环的条件;
10. continue和break的用法?
break语句用于终止某个循环,使程序跳到循环块外的下一条语句。在循环中位于break后的语句将不再执行。break语句不仅可以用在for循环中,也可以用在while和do-while循环中,break语句通常与if条件语句一起使用。continue语句可以用于for循环,也可以用于while和do-while循环。在for循环中,continue使程序先跳转到迭代部分,然后判定循环条件,如果为true,继续下一次循环,则否终止循环;在while循环中,continue执行完毕后,程序将直接判断循环条件。continue语句只能用在循环结构中,而break语句还能用在switch分子结构中。
11. 对控制流语句进行小结?
类型 | 作用 | 实现 |
分支语句 | 分支语句根据表达式和变量的不同状态选择不同的分支 | if、if-else、if-else if-else、switch |
循环语句 | 循环语句使程序重复执行某个程序块或语句 | while、do-while、for |
跳转语句 | 跳转语句允许程序跳跃执行 | break、continue |
12. 什么是对象的属性和方法?
对象就是存在的具体实体,具有明确定义的状态和行为。
对象所拥有的一个或多个特性的集合构成了对象的状态,也就是对象的属性;
对象所执行的一个或多个操作的集合构成了对象的行为。
在Java中,对象的状态被分别存储在一些变量里,而对象的行为,通过定义方法来实施。
13. Java中的数据类型的分类?
主要分为以下两类:
1) 基本数据类型:整型(int)、双精度型(double)、字符型(char)、布尔型(Boolean)等
2) 引用数据类型:字符串(String),使用class自定义的类型。
14. Java中为什么使用包,如何使用包,包和目录什么关系?
包的使用主要有以下3个方面的作用:(1)、包允许将类组合成较小的单元(类似文件夹),使易于找到和使用相应的类文件。(2)、防止命名冲突:Java中只有在不同包中的类才能重名。(3)包允许在更广泛的范围内保护类、数据和方法,可以在包内定义类,根据规则,包外的代码有可能不能访问该类。使用包其实就是使用该包中的类,使用该包中的类之前首先要导入该类,用“import 包名.类名;”来导入该类,import语句要在类定义之前。
包和目录的关系:在Java中,包被设计与文件系统相对应,每个包都对应于文件系统中同名的子目录。包的嵌套反映了文件系统中的目录层次,声明包事实上是在文件系统中创建了相对应的一层层文件夹。
15. Java中的一维数组的使用与C#中有什么异同?
Java中定义数组的语法如下:
数据类型[] 数组名; 数据类型 数组名[];
但在C#中只能使用第一种方式,C#中不能把方括号放在数组名的后面。
声明数组时不需要规定数组的长度,在对数字初始化或分配空间时才可以指定数组的长度。
分配空间或指定数组大小: 数组名 = new 数据类型[数组长度]; eg: score = new int[30];
数组的声明、分配空间且初始化数组:
数据类型[] 数组名 = new 数据类型[数组长度]{值1,值2,值3,…,值n};
而在Java中没有上面的数组的声明、分配空间且初始化数组的方法
数据类型[] 数组名 = new 数据类型[]{值1,值2,值3,…,值n};//省略数字长度
数据类型[] 数组名 = {值1,值2,值3,…,值n};//省略new
注:直接创建并赋值的方式一般在数组元素比较少的情况下使用,它必须一并完成。
C#与Java创建数组共性小结
方法 | 说明 | 语法 |
仅声明 | 仅声明数组 | 数据类型[] 数组名; |
声明和创建 | 使用保留字“new”声明并为数组元素分配内存 | 数据类型[] 数组名 = new 数据类型[数组长度]; |
声明、创建和初始化 | 声明数组,为其分配内存并对元素赋初始值 | 数据类型[] 数组名 = {值1,值2,值3,…,值n}; 数据类型[] 数组名 = new 数据类型[]{值1,值2,值3,…,值n}; |
16. Java中的常用提取和查询字符串的方法?
方法 | 说明 |
Public int indexOf(int ch) | 搜索第一个出现的字符ch(或字符串value) |
Public int indexOf(String value) | |
Public int lastIndexOf(int ch) | 搜索最后一个出现的字符ch(或字符串value) |
Public int lastIndexOf(String value) | |
Public String substring(int index) | 提取从位置索引开始的字符串部分 |
Public String substring(int beginindex, int endindex) | 提取beginindex和endindex之间的字符串部分 |
Public String trim() | 返回一个前后不含任何空格的调用字符串的副本 |
说明:字符串是一个字符序列,每一个字符都有自己的位置,字符串也是一个字符数组,因此它的位置从0开始到(字符串长度-1)结束。函数substring:对于开始位置beginindex是基于字符串的首字符为0处理的,但对于终止位置endindex是基于字符串的首字符为1来处理的。
17、打印水仙花数,代码如下
public class DaffodilNum{
public static void main(String[] args){
int geWei,shiWei,baiWei;
System.out.println("在100~999之间的所有“水仙花数”有:");
for(int i = 100; i < 1000; i++){
geWei = i % 10;
shiWei = i / 10 % 10;
baiWei = i / 100;
if (i == geWei*geWei*geWei + shiWei*shiWei*shiWei + baiWei*baiWei*baiWei){
System.out.println(i);
}
}
}
}