java语言基础,面试经常问到的简答题。

初识java

(1)举列说明什么是程序。
答:1.通常指完成某些事物的一种既定方式和过程。
答:2.计算机程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序
(2)开发java应用程序有哪些步骤?
答:《1》编写源程序 《2》编译 《3》运行
(3)java应用程序的入口是什么?
答:一个程序只能有一个main()方法。
答:public static void main(String[] args){ }
(4)、写出java领域的相关技术。
答:java是前sum公司(现甲骨文股份有限公司)于1995年推出的高级编程语言。
1.java SE 标准版:桌面开发
2.java EE 企业版
3.java ME 微小型:消费产品和嵌入式设备
(5)、简述java程序中注释的作用及类型。
答:编写java程序要符合java编程规范,为程序编写注释可大大增加程序的可读性。
1.在java中,常用的注释有两种:单行注释和多行注释。
2.单行注释 //注释
3.多行注释 /内容/
(6)、写出在MyEclipse中开发一个java程序的步骤。
1.创建Java项目:“FileàNewàProjectàJava Project”
2.创建Java源程序:“FileàNewàOtheràClass”
3.编译Java源程序:“ProjectàBuild Project”
4.运行Java程序:使用“RunàRun AsàJava Application”菜单运行,在控制台(Console)中查看运行结果
(7)、使用记事本编写java程序,并运行输出结果,具体的步骤是什么?请详细说明并写出必要的命令。
步骤:
使用记事本编辑源文件→使用javac命令来编译源文件生成字节码文件→使用Java命令来解释运行字节码文件
一、 使用记事本编辑源文件
首先,新建一个txt文本,然后修改为 项目名称.java
此处如果没有后缀名显示,则需要在计算机的菜单栏中找到 工具→文件夹选项→查看,找到一项“隐藏已知文件类型扩展名”,去掉对钩,确定即可
二、 使用javac命令来编译源文件
先在命令提示符中切换到源文件所在的目录;
然后再输入 java 项目名称.java 回车运行(此时源文件所在目录会生成一个 .class类型的字节码文件)
三、 使用java命令来解释运行字节码文件
在命令提示符中输入 java 项目名称 回车运行,即可(此处,在执行字节码文件的时候,不能跟上字节码文件的后缀名)

变量、数据类型和运算符

(1)java常见的数据类型有哪些?
int 整型 double 双精度 char 字符型 String 字符串
(2)如何声明一个变量?
数据类型 变量名;
String name;
变量名 = 值;
name = “张三”;
数据类型 变量名 = 值;
String name = “张三”;
(3)关系运算符的作用是什么?
关系运算符是用来做比较运算符的,而比较的结果是一个boolean类型的值,要么是真(true)要么是假(false)。
(4)boolean类型的变量可以取哪些值?
true false
(5)简述java中变量的命名规则。
1.变量名必须以字母、下划线“—”或“$”符开头。
变量名可以包含数字,但不能以数字开头。
除了“—”或“¥”符号以外,变量名不能包含任何特殊字符。
不能使用java语言的关键字,如int、class、public等。
(6)举列说明在什么情况下会发生自动类型转换。
小向大会发生自动转换,当然不是一定会转换,是要在一定的情况下才会发生的.如float会自动转换成double,发生这种情况的前提是:当数据位数超过了32位,就会自动转换成double的,这样才会有效的使数据不被轻易丢失.大向小如:使double转换成float的就只能用强制类型转换!

选择结构(1)

(1)if—else选择结构的语法和执行顺序是什么?
1.是先执行后判断;
2.如果不为真就ELSE;
3.如果为真就执行IF后面的语句;
4.只是分节点的选择, 不可能都执行。
(2)if选择结构书写规范有哪些?
1: 为了使if结构更加清晰,应该把每个if或else包含的代码块用大括号括起来。
2:相匹配的一对if和else应该左对齐。
3:内层的if结构相对于外层的if结构要有一定的缩进。

选择结构(2)

(1)switch选择结构的语法和执行顺序是什么?
1.语法:
switch(表达式){
case 常量 1:
//代码块1;
break;
case 常量 2:
//代码块2;
break;
default:
//代码块n;
break;
}
2.switch语句是由一个控制表达式和case标签组成的,和 if 语句不同的是 ,switch语句后面控制表达式的数据类型只能是整型,不能是boolean型,·case 标签后面紧跟一个代码块。case作为这个代码块的表示。
3.将表达式的值与case比较,哪一个符合就执行哪一个,之后跳出整个分支。如何没有break语句,则会从符合的值的地方一直顺序执行,直到最后。
(2)switch选择结构和多重if选择结构在使用上有什么区别?
1: 相同点:
都可以判断多分支条件的结构:
2:不通点;
switch选择结构 多用于判断等值判断 条件必须是 整型和字符型变量:。
if选择结构 多用于范围性判断 没有switch选择结构条件的限制(适合某个变量处于某个连续区间时的情况)。
3:if选择结构
基本if选择结构: 处理单一或组合条件的情况。
If-else选择结构:处理简单的条件分支情况。
多重if选择结构:处理复杂的条件分支情况。
嵌套if选择结构:用于较为复杂的流程控制。
4:switch选择结构
多重分支并且条件判断是等值判断的情况。
处理系统异常(用户输入异常)。
Scanner对象的hasNextInt()方法,可以判断用户从键盘输入的字符是否是合法的数字(int类型数字)。
(3)说明什么情况下可以使用switch选择结构代替多重if选择结构。
1.判断条件必须是字符型、整形这种能判断是不是相等的~因为switch判断时候只有case 1:,没有case >1之类的.楼上说的很对.其实你能不能用switch想想就知道.没什么深奥的

循环结构(1)

(1)while循环结构的语法和执行顺序是什么?
1.声明并初始化循环变量。
2.判断循环条件是否满足,如果满足则执行循环操作:否则退出循环。
3.执行完循环操作后,再次判断循环条件,决定继续执行循环或退出循环。
▲while循环结构如果第一次判断循环条件就不满足,则会直接跳出循环,循环操作一遍都不会执行。这是while循环结构的一个特点:先判断,后执行。
(2)do—while循环结构的语法和执行顺序是什么?
1.声明并初始化循环变量。
2.执行一遍循环操作。
3.判断循环条件,如果循环条件满足,则循环继续执行,否则退出循环。
do—while循环的特点是先执行,再判断。
(3)利用循环结构解决问题的一般步骤是什么?
答:分析循环条件和循环操作套用循环的语法写出代码检查循环能否退出

循环结构(2)

预习并回答以下问题
(1)for循环结构的语法和执行顺序是什么?
1.for循环结构:先执行初始化部分,在进行条件判断,然后执行循环体,最后进行迭代部分的计算。如果条件不成立,跳出循环。
(2)什么情况下适合使用for循环结构?
1.适用情况不同。
在解决问题时,对于循环次数确定的情况,通常选用for循环结构;对于循环次数不确定的情况,通常选用while和do—while循环结构。
(3)说明在循环结构中break语句和continue语句大的区别。
1.break语句用于终止某个循环,程序跳转到循环体外的下一条语句。
2.continue语句用于跳出本次循环,进入下次一循环的语句。

循环结构综合学习

(1)java中的基本数据类型有哪些?

  1. 整型:byte、short、int、long。
  2. 浮点型(双精度):double、float。
  3. 字符型:char。
  4. 布尔型:boolean。
  5. 字符串:String。

(2)java运算符有哪几类?其作用分别是什么?
1.算术运算符:+ - * / %
2.关系运算符(比较运算符):> >= < <= != ==
3.赋值运算符:=
(3)简述选择结构有哪几种形式,每种形式的特点是什么?

1.◆基本if选择结构:可以处理单一或组合条件的情况。
if(条件){
	//代码块
}
2.◆if—else选择结构:可以处理简单的条件分支情况。这种形式结构简单,但在实际开发中使用非常频繁。
if(条件){
	//代码块1
}else{
	//代码块2
}
3.◆多重if选择结构:可以处理复杂的条件分支情况。多重if选择结构在解决需要判断的条件是连续的区间时有很大的优势。
if(条件1){
	//代码块1
}else if(条件2){
	//代码块2
}else{
	//代码块3
}
4.◆嵌套if选择结构:在if选择结构中又包含一个或多个if选择结构的情况,这种结构一般用于较为复杂的流程控制中。if选择结构嵌套的形式很多。
if(条件1){
	if(条件2){
		//代码块1
	}else{
		//代码块2
	}
}else{
	if(条件3){
		//代码块3
	 }else{
		//代码块4
	 }
}
5.◆当需要多重分支并且条件判断是等值判断的情况下,使用switch选择结构代替多重if选择结构会更简单,代码结构更清晰易读。
switch(表达式){
	case 常量 1:
		//代码块1;
		break;
	case 常量 2:
		//代码块2;
		break;
	......
	default:
		//代码块n;
		break;
}

(4)简述循环结构有哪几种形式,每种形式的特点是什么?
1.◆while循环结构:先进行条件判断,再执行循环体。如果条件不成立,退出循环。
while(<条件>){
//循环体
}
2.◆do—while循环结构:先执行循环体,在进行条件判断,循环体至少执行一次。
do{
//循环体
}while(<条件>);
3.◆for循环结构:先执行初始化部分,再执行条件判断,然后执行循环体,最后进行迭代部分的计算。如果条件不成立,跳出循环。

数组

(1)数组的基本数据类型有哪些?

数据类型 初始值
int 0
double 0.0
char ‘\u0000’
boolean false

(2)数组有什么好处?
数组的好处:
特点:相当于用于保存一组元素的容器
好处:
  1、提高代码的简洁性和扩展性,且同时开辟多个空间,提高了效率
  2、分类存储,且空间是连续的,容易查找

(3)数组的基本要素有哪些?
▲数组的动态初始化

1、声明
  数据类型[] 数组名;或
  数据类型 数组名[];
2、开辟空间
  数组名 = new 数据类型[长度];//长度必不可少
3、手动赋值
  数组名[下标] = 值;
4、使用(打印、运算、判断等)
  System.out.println(数组名[下标]);
▲数组的静态初始化

1、声明并初始化
  数据类型[] 数组名 = new 数据类型[]{值,值,值};
  或 数据类型[] 数组名 = {值,值,值};
    int[] arr = {3,4,5,6,100};
    int[] arr2 = new int[] {3,4,5,6,100};
2、使用
  for(int i=0;i<数组名.length;i++){
    //每一个元素表示为:数组名[i]
  }

▲注意事项
①数组的元素如果不赋值,也有默认值
  int 0
  double 0.0
  char \u0000
  boolean false
  引用类型 null
②访问数组的元素时,下标必须在0—长度-1 的范围内,否则报数组下标越界的异常
③数组的长度,可以通过 数组名.length表示,提高代码的维护性
④数组的赋值和使用,往往可以通过搭配for循环一起操作
  for(int i=0;i<数组名.length;i++){
    //每一个元素表示为:数组名[i]
  }

循环结构进阶

(1)请写出至少三种二重循环的形式。

//while与while循环嵌套
while(循环条件1){
	//循环操作1
	while(循环条件2){
		//循环操作2
	}
}

//do—while与do—while循环嵌套
do{
	//循环操作1
	do{
		//循环操作2
	}while(循环条件2);
}while(循环条件1);

//for循环与for循环嵌套
for(循环条件1){
	//循环操作1
	for(循环条件2){
		//循环操作2
	}
}

//while与for循环嵌套
while(循环条件1){
	//循环操作1
	for(循环条件2){
		//循环操作2
	}
}

(2)什么是二重循环?在内层循环中使用continue和break语句,程序如何跳转?
1.简单地说,二重循环就是一个循环体内包含另一个完整的循环结构。
2.continue语句是跳出本次循环,进入下一次循环。break是跳出本层循环,即提前结束本层循环,执行循环下面的语句。

类和对象

(1)简述类和对象的关系。
1.类和对象的关系是抽象和具体的关系。类是对象的类型,对象是类的实列。
(2)如何定义一个类?
1.定义类名
2.编写类的属性
3.编写类的方法
public class 类名{
}
语法:类名 对象名 = new 类名();
(3)简述什么是类和对象,以及二者之间的关系。
1.我们可以把身边的任何事物看成对象,他具有自己的属性和方法。
2.我们把具有相同的对象放在一起组成一个类。类是抽象的,而对象是真实存在的。
(4)面向对象程序设计的优点?
◆与人类的思维习惯一致。
◆隐藏信息,提高了程序的可维护性和安全性。
◆提高了程序的可重复性。
(5)使用类的步骤?
◆定义类,使用关键字class。
◆创建类的对象,使用关键字new。
◆使用类的属性和方法:使用“ . ”操作符。

类的无参方法

(1)类的方法必须包含哪几个部分?
◆方法的名称。
◆方法的返回值类型。
◆方法的主体。
语法:public 返回值类型 方法名(){
//方法的主体
}
(2)成员变量和局部变量有什么区别?
成员变量:
在类中定义,用来描述对象有什么。
局部变量:
在类的方法中定义,在使用方法过程中需要临时保存数据,而这些数据就是保存在局部变量中。(用来临时保存数据)。
1.在Java中,有成员变量和局部变量,它们的作用域各不相同。
▲作用域不同
▲初始值不同
▲在同一个方法中
▲局部变量可以和成员变量同名。
区别
1、作用域不同
局部变量的作用域仅限定义它的方法(方法开始到方法结束)
成员变量的作用域在整个类内部都是可见的
2、初始值不同
java会给成员变量赋予一个初始值,默认的成员变量的初始值是0
java不会给局部变量赋予初始值

带参数的方法

1:定义带参方法
  语法:
     <访问修饰符> 返回值类型 <方法名>(<参数类表>){
      //方法的主体
}

2:调试带参方法:
   语法:
      对象名.方法名(参数1,参数2,……,参数n)
3:调用方法时,需要注意两点:
      *先实例化对象,再调用方法.
      *实参的类型,数量,顺序都要与形参一一对应.
4:调用带参方法与调用无参方法的语法是相同的,但是在调用带参方法时必须传入实际的参数的值.
5:形参是在定义方法的时候对参数的称呼,实参是在调用方法时传递给方法的实际的值.
6:Java中提供包来管理类.声明包使用关键字package,导入包使用关键字import.

字符串

(1)请至少写出四个String类操作字符串的方法。
◆获取字符串长度:length()。
◆比较字符串:equals()。
◆连接字符串:concat()。
◆提取字符串:substring()。
◆拆分字符串:split()。
◆搜索字符串:indexOf。
(2)StringBuffer类与String类不同的方法有哪些?
◆转换成String类型:toString()。
◆连接字符串:append()。
◆插入字符串:insert()。
(3)StringBuffer类与string类的区别

  1. StringBuffer的运行效率更快,因为没有产生中间垃圾对象,一直在原来的值上修改。而String会产生很多中间对象,我们只关心最后的结果,所以这些中间对象都是垃圾,产生了中间变量,导致运行效率低。
  2. StringBuffer用于生成字符串,String用于表示字符串。
  3. StringBuffer是“可变化的量”,也就是在运行时可以修改,不必产生中间对象。String是常量,不可修改,所以会产生中间对象。

(4)根据你的理解,简要说明使用比较运算符(==)和equals()方法判断两个字符串是否相等有什么区别。
答:1.用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
2.equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章