javascanner以回车结束_java基本功⾯试问题(⼩⽩可学
习!)
1.Java基础知识
1.1.Java源程序的扩展名是什么?
答案:扩展名是.java
1.2.什么是标识符?
答案:在java语⾔中能够我们⾃⼰起名的都叫标识符
1.3.标识符有哪些特点?
答案:标识符是⼤⼩写字母、数字字符、$和_组成,不能以数字开头,也不能是java关键字,并且区分⼤⼩写
1.4.请说明环境变量Path 与 classpath 区别?
答案:path是系统⽤来指定可指定⽂件的完整路径。Path是⽤来搜索所执⾏的可执⾏⽂件路径的,如果执⾏的可执⾏⽂件不在当前⽬录下,那就会依次搜索path中设置的路径。
classpath是指定你在程序中所使⽤的类(.class)⽂件所在的位置。
1.5. java程序经编译后产⽣的字节码⽂件扩展名是什么?
答案:字节码⽂件扩展名是 .class
1.6.请说出常⽤的DOS命令并解释?
答案:d: 回车 : 盘符切换
dir (directory) :列出当前⽬录下的⽂件以及⽂件夹
cd (change directory) : 改变指定⽬录(进⼊指定⽬录)
cd… : 退回到上⼀层⽬录
cd : 退回到跟⽬录
md (make directory) :创建⽬录
rd (remove directory) :删除⽬录
del (delete) :删除⽂件,删除⼀堆后缀名⼀样的⽂件*.txt
cls (clear screen) :清屏
exit:退出dos命令⾏
1.7. 请写出以下标识符的命名规则
答案:包:全部⼩写
单层包:⼩写,举例:itcast,com
多层包:⼩写,并⽤ . 隔开,举例:cn.itcast, com.baidu
类或者接⼝:
⼀个单词:⾸字母⼤写,举例:Student,Demo
多个单词:每个单词⾸字母⼤写,举例:HelloWorld,StudentName
⽅法或者变量:
⼀个单词:⾸字母⼩写,举例:name,main
多个单词:从第⼆个单词开始,每个单词⾸字母⼤写,举例:studentAge,showStudentNames()
常量:全部⼤写
⼀个单词:⼤写,举例:PI
多个单词:⼤写,并⽤ _ 隔开,举例:STUDENT_MAX_AGE
1.8. 请解释Java语⾔的跨平台特性?
答案:Java语⾔是跨平台运⾏的,其实就是不同的操作系统,使⽤不同的JVM映射规则,让其与操作系统⽆关,完成了跨平台性。JVM对上层的Java源⽂件是不关⼼的,它关注的只是由源⽂件⽣成的类⽂件(class file)。
1.9. 请说明JDK、JRE、JVM的区别?
答案:JDK: Java Development Kit(Java开发⼯具包)。JDK是整个JAVA的核⼼,包括了Java运⾏环境(Java Runtime Environment),⼀堆Java⼯具(javac/java/javap等)
JRE:Java Runtime Environment(java运⾏时环境)。也就是我们说的JAVA平台。所有的Java程序都要在JRE下才能运⾏。包括JVM和JAVA核⼼类库和⽀持⽂件。与JDK相⽐,它不包含开发⼯具(编译器、调试器和其他⼯具)。
JVM:Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的⼀部分,它是⼀个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
1.10. 注释的分类及作⽤?
答案:单⾏注释、多⾏注释、⽂档注释
单⾏注释:注释单⾏代码或为单⾏代码添加描述的时候使⽤
多⾏注释:注释多⾏代码或为代码添加多⾏描述的时候使⽤
⽂档注释:⽣产java帮助⽂档的时候使⽤,开发中常⽤来描述类、描述⽅法
1.11. 请说出Java中数据类型的分类?基本数据类型都有哪些?
答案:
基本数据类型
byte、short、int、long、float、double、char、boolean
引⽤数据类型
数组、类、接⼝
1.1
2. 变量是什么?
答案:变量,在程序运⾏时,值可以被修改的量。
1.13. 变量的定义格式是什么?
答案:数据类型 变量名 = 变量值 ;
1.14. Java中数据的类型转换有⼏种?分别是什么?
答案:强制类型转换:容量⼤的类型向容量⼩的类型转换时使⽤
隐式类型转换:容器⼩的类型向容量⼤的类型转换时使⽤
1.15. Java语⾔中的字符char可以存储⼀个中⽂汉字吗?为什么呢?
答案:char型变量是⽤来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中可以存储汉字。不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:unicode编码占⽤两个字节,所以,char类型的变量也是占⽤两个字节。
1.16. 请说明 && 和 & 的区别?
答案:&和&&都可以⽤作逻辑与的运算符,表⽰逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有⼀⽅为false,则结果为false。
&&还具有短路的功能,即如果第⼀个表达式为false,则不再计算第⼆个表达式
&还可以⽤作位运算符,当&操作符两边的表达式不是boolean类型时,&表⽰按位与操作。
1.17. 请说明 == 与 = 的区别?
答案:==: ⽐较运算符,⽤来⽐较操作符两边的变量的值是否相等。
= : 赋值运算符,把操作符右边的值,赋值给左边的变量
1.18. 三元运算符的基本格式是什么?
答案: 三元运算符的格式是: 条件表达式 ? 表达式1 : 表达式2 ;
1.19. 三元运算符的执⾏流程是什么?
答案: 三元运算符的执⾏流程: ⾸先计算条件表达式的值看其返回结果是true还是false,如果是true就执⾏表达式1,如果是false就执⾏表达式2
1.21. 请说明for、while、do…while三种循环的格式以及执⾏流程,以及它们的区别。
答案:for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执⾏流程:
a) 执⾏初始化语句
b) 执⾏判断条件语句,看其结果是true还是false,如果是false,循环结束;如果是true,继续执⾏。
c) 执⾏循环体语句
d) 执⾏控制条件语句
e) 回到b继续
while循环语句格式:
while(判断条件语句) {
循环体语句;
}
执⾏流程:
a) 执⾏判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执⾏。
b) 执⾏循环体语句
c) 回到a继续
do…while循环语句格式:
do {
循环体语句;
}while((判断条件语句);
执⾏流程:
a) 执⾏循环体语句
b) 执⾏判断条件语句,看其结果是true还是false,如果是false,循环结束;如果是true,继续执⾏。
c) 回到a继续
三种循环语句的区别:
a) do…while循环⾄少会执⾏⼀次循环体
b) for循环和while循环只有在条件成⽴的时候才会去执⾏循环体
注意:写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环
1.2
2. 定义⼀个⽅法的格式是什么,以及⽅法的注意事项?
答案:修饰符 返回值类型 ⽅法名(参数类型 参数名1, 参数类型 参数名2 ….){
⽅法体 ;
return 返回值 ;
}
注意事项:
A: ⽅法不调⽤不执⾏
B: ⽅法与⽅法是平级关系,不能嵌套定义
C: ⽅法定义的时候参数之间⽤逗号隔开
D: ⽅法调⽤的时候不⽤在传递数据类型
E: 如果⽅法有明确的返回值,⼀定要有return带回⼀个值
1.23. 请解释什么是⽅法的重载?
答案:⽅法重载指在同⼀个类中,允许存在⼀个以上的同名⽅法,只要它们的参数个数或者参数类型不同即可。
⽅法重载特点:
a) 与返回值类型⽆关,只看⽅法名和参数列表
b) 在调⽤时,虚拟机通过参数列表的不同来区分同名⽅法java重写和重载的区别
1.24. 数组有⼏种创建的⽅式?分别是什么?
答案:2种。动态创建和静态创建。
2. ⾯向对象
2.1. 类是什么? 对象是什么?举例说明
答案:类是⼀组相关属性和⾏为的集合是⼀个抽象的东西,对象则是该类的⼀个具体的体现。
举例: 学⽣就是⼀个类,然后每⼀个学⽣都是学⽣的⼀个个具体的体现,所以每⼀个学⽣就是⼀个学⽣。
2.2. 类由哪些内容组成?
答案:类由成员变量和成员⽅法组成
成员变量对应的就是事物的属性(就是事物固有的信息,⽐如: ⼈的属性有⾝⾼ , 姓名 , 年龄 , 学历…) , 成员⽅法对应的是⾏为(⾏为: 就是该事物可以做的事情,⽐如:⼈的⾏为有: 吃饭,睡觉…)
2.3. 成员变量与局部变量的区别?
答案:
A:在类中的位置不同
成员变量:在类中⽅法外
局部变量:在⽅法定义中或者⽅法声明上
B:在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
C:⽣命周期不同
成员变量:随着对象的创建⽽存在,随着对象的消失⽽消失
局部变量:随着⽅法的调⽤⽽存在,随着⽅法的调⽤完毕⽽消失
D:初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使⽤。
2.4. 什么是匿名对象?什么时候使⽤匿名对象?
答案:匿名对象指:没有起名字的对象
使⽤匿名对象:
a:调⽤⽅法,仅仅只调⽤⼀次的时候
b:匿名对象可以作为实际参数传递
2.5. 使⽤⾯向对象【封装】的好处有哪些?
答案:隐藏实现细节,提供公共的访问⽅式;
提⾼了代码的复⽤性;
提⾼安全性。
2.6. private 关键字在哪⾥使⽤? 被 private 修饰的成员有什么特点?
答案:类中的成员需要私有的时候使⽤private关键字
特点:
是⼀个权限修饰符。
可以修饰成员(成员变量和成员⽅法)
被private修饰的成员只在本类中才能访问
2.7. 为什么要有 this 关键字?this 关键字的含义?
答案:this⽤来解决成员变量与局部变量重名问题
this关键字代表的是本类对象引⽤;谁调⽤我,this就代表谁.
2.8. 构造⽅法的作⽤是什么?构造⽅法的特点是什么?构造⽅法的注意事项? 构造⽅法中可不可以写return 语句呢?
答案:构造⽅法的作⽤是⽤于给类的成员变量赋值,完成类的初始化⼯作
构造⽅法的特点:
构造⽅法的名称和类名相同
构造⽅法没有返回值类型,连void也没有
构造⽅法没有具体的返回值
构造⽅法的注意事项:
a: 如果⼀个类没有给出构造⽅法,系统将会提供⼀个默认⽆参的构造⽅法
b: 如果我们给出类构造⽅法,系统将不会提供默认⽆参的构造⽅法,这个时候如果我们还想使⽤⽆参的构造⽅法来创建对象,那么就需要我们给出⽆参的构造⽅法
可以写空的return语句.
2.9. ⼀个类的缺省构造⽅法可以有参数吗?
答案: ⼀个类的缺省构造⽅法没有参数
2.10. 静态变量与成员变量的区别?
答案:1:所属不同
静态变量属于类,所以也称为为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
2:内存中位置不同
静态变量存储于⽅法区的静态区
成员变量存储于堆内存
3:内存出现时间不同
静态变量随着类的加载⽽加载,随着类的消失⽽消失
成员变量随着对象的创建⽽存在,随着对象的消失⽽消失
4:调⽤不同
静态变量可以通过类名调⽤,也可以通过对象调⽤
成员变量只能通过对象名调⽤
2.11. 请说明⼀个对象的创建过程做了哪些事情?
答案:Student s = new Student();
1:将Student.class 字节码⽂件加载到内存
2: 在栈内存中,开辟⼀个空间存储 s变量,⽤来记录Student对象的引⽤
3: 在堆内存中,开辟⼀个空间存储 new Student()对象的成员信息
2:加载类中静态成员
3:执⾏类中静态代码块
4:加载对象中普通成员
5:执⾏构造代码块
6:执⾏构造⽅法
7:将new Student()的地址赋值给 s 变量
2.12. 继承的好处是什么?
答案: A: 提⾼了代码的维护型
B: 提供了代码的复⽤性
C: 让类与类之间产⽣了关系, 是多态的前提

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。