面试宝典——Java基础
2017-04-12 15:17
281 查看
1、一个”.java”源文件中是否可以包括多个类(不是内部类 )?有什么限制?
一个“.java”源文件里面可以包含多个类,但是最多只允许有一个public类,并且类名必须和文件名一致。(每个编译单元(文件)都只有一个public 类。)java程序是从一个public类的main函数开始执行的,(其实是main线程)。只能有一个public类是为了给类装载器提供方便。
编译.java文件的时候,它会给每一个类生成一个.class文件
2、Java中有哪些关键字?
关键字 | 含义 |
abstract | 表明类或者成员方法具有抽象属性 |
assert | 用来进行程序调试 |
boolean | 基本数据类型之一,布尔类型 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
3、四种权限关键字比较?
private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象 访问,其子类不能访问,更不能允许跨包访问。default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。
protected: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护访问权限”。被其修饰的属性以及方法只能被类本 身的方法及子类访问,即使子类在不同的包中也可以访问。
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且 允许跨包访问。
抽象类和接口的区别?
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final (既然一个变量被final修饰了,那么这个变量就是一个常量,必须初始化!!!)参数 | 抽象类 | 接口 |
默认的方法实现 | 它可以有默认的方法实现 | 接口完全是抽象的。(Java8新特性:接口可以有默认实现方法) |
实现 | 抽象类中可以有普通成员变量和非抽象的普通方法 | 两个都不可以有 |
构造器 | 抽象类可以有构造器 | 接口不能有构造器 |
与正常Java类的区别 | 除了你不能实例化抽象类之外,它和普通Java类没有任何区别 | 接口是完全不同的类型 |
访问修饰符 | 抽象方法可以有public、protected和default这些修饰符 | 接口方法默认修饰符是public abstract。不可以使用其它修饰符。 |
main方法 | 抽象方法可以有main方法并且可以运行它 | 接口没有main方法,因此不能运行它。 |
多继承 | 抽象方法可以继承一个类和实现多个接口 | 接口只可以继承一个或多个其它接口 |
添加新方法 | 如果你往抽象类中添加新的方法,你可以给它提供默认的实现。因此你不需要改变你现在的代码。 | 如果你往接口中添加方法,那么你必须改变实现该接口的类。 |
相关文章推荐
- 知识点总结: Java 面试宝典 2013版(超长版) - Java 基础部分
- 面试宝典第四章Java基础知识——4.1基本概念
- Java基础学习(面试宝典):
- 面试宝典第四章Java基础知识———4.5字符串和数组
- 面试宝典第四章Java基础知识——4.10多线程
- JAVA基础知识复习面试笔试宝典
- java程序员面试基础知识点
- java面试基础题,学习笔记!
- java程序员面试复习资料2——[JAVA编程基础]
- JAVA基础面试大全
- 笔试面试——java基础知识
- JAVA -- JAVA基础笔试、面试常见问题集合
- java面试基础知识
- java面试试题 java面试基础
- JAVA基础面试中的几个问题[转]
- Java 程序员面试之葵花宝典 之一(转贴)
- JAVA面试32个基础问题
- JAVA基础笔试、面试常见问题集合
- Java基础面试
- JAVA程序员面试32问,你能回答多少题?-Java基础-Java-编程开发