java基础面试题,java基础试题
java基础面试题,java基础试题
初级java面试题
1.JDK、JRE是什么?
答:Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件。Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。
2.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
答:Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。
Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。
3.在一台电脑上配置java环境,path起到什么作用?如何配置?
答:(1)path的作用是在DOS环境下,能在任意位置使用JDK目录中bin文件夹中的可执行程序,来编译执行java程序。
(2) 在环境变量中找到path变量,把bin文件夹的绝对路径加上即可。
4.什么样的标识符是合法的?
答:Java标识符由数字,字母和下划线(_),美元符号($)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。标识符不能包含空格;只能包含美元符号($),不能包含@、#等其他特殊字符。
5.java有几种基本数据类型?
答:八种 , boolean、short、long、char、int、float、double、byte
6.什么是隐式类型转换?什么是显示类型转换?
答:从小到大,可以隐式转换,数据类型将自动提升。
byte,short,char -->int -->long -->float -->double
注意:long是8个字节,float是4个字节。
long是整数,float是浮点型,整数和浮点数的存储规则不一样,记住一点long的范围是小于float的。
从大到小(如果你明确知道数据是可以用该数据类型来表示的,可以用强制转换)
7.&和&&、|和||的区别
答:&和&&的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别:
单或时,左边无论真假,右边都进行运算;
双或时,左边为真,右边不参与运算。
8.Java类的命名规则是什么
答:包名:包名是全小写的名词,中间可以由点分隔开,例如:java.awt.event;
类名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如class HelloWorldApp;
接口名:命名规则与类名相同,例如interface Collection;
方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写,例如:balanceAccount, isButtonPressed;
变量名:全小写,一般为名词,例如:length;
常量名:基本数据类型的常量名为全大写,如果是由多个单词构成,可以用下划线隔开,例如:int YEAR, int
WEEK_OF_MONTH;如果是对象类型的常量,则是大小写混合,由大写字母把单词隔开。
9.实例成员变量
答:String id; //实例变量
private String Tel; //实例变量
private int size; //实例变量
private static String depart; //类变量
final String design="样式"; //常量
10.返回值为void的方法,可否有return?
答:可以。表示直接退出该函数,返回到该函数调用的地方。
例如
void aa(int a, int b, int c) //如果c=a+b就直接退出,否则继续执行
{
if (a+b == c) return;
// ...
}
相比于
if (a+b != c)
{
// ...
}
可以减少缩进,使表达意思更加清楚。
11.Java中类方法与实例方法的区别?
答:简单的说java类中的方法分为类方法(用static修饰,也叫静态方法)和实例方法(没有用static修饰,也叫非静态方法)。通过查找资料知道类方法的入口地址分配要早于实例方法,所以:
1.在类方法中不能调用实例方法,只能访问和自己一样的类方法,但实例方法可以访问类方法和实例方法
2.在类方法中不能引用实例变量(用static修饰的变量),但实例方法可以引用成员变量和实例变量
3.在类方法中不能使用super、this关键字
4.类方法不能被覆盖,但实例方法可以被覆盖
5.类方法的调用是:类名.类方法,而实例方法的调用必须new出一个对象,即:对象.实例方法
12.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
答: 方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型
13.什么是构造方法
答:构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
*构造方法的名称必须与类名称一致。
*构造方法的声明处不能有任何返回值类型的声明。
*不能在构造方法中使用return返回一个值。
只要是类,就必须存在构造方法。
在Java中如果有一个类中没有明确地声明一个构造方法,则在编译时,会直接生成一个无参数的、什么都不做的构造方法
14.java的访问权限
答:public:表示其后的元素对任何人都可以使用。
private:表示其后的元素除了类型的创建者和内部的方法之外任何人都不能访问。
protected:与private相当,差别在于继承的类可以访问protected修饰的元素,同包中的其他类元素也可以访问。
Java还有一种默认的访问权限,在不指定任何关键字的情况下,这种权限将发挥作用,它是一种包的访问权限,即在当前包中的任何元素可以访问。
15.子类与父类的static方法关系
答:1)子类是不继承父类的static变量和方法的。因为这是属于类本身的。但是子类是可以访问的。
2)子类和父类中同名的static变量和方法都是相互独立的,并不存在任何的重写的关系。
16.final关键字
答:final关键字是我们经常使用的关键字之一,它的用法有很多,但是并不是每一种用法都值得我们去广泛使用。它的主要用法有以下四种:
1.用来修饰数据,包括成员变量和局部变量,该变量只能被赋值一次且它的值无法被改变。对于成员变量来讲,我们必须在声明时或者构造方法中对它赋值;
2.用来修饰方法参数,表示在变量的生存期中它的值不能被改变;
3.修饰方法,表示该方法无法被重写;
4.修饰类,表示该类无法被继承。
17.抽象方法、抽象类的区别
答:
1.抽象方法:在类中没有方法体的方法,就是抽象方法。
2.抽象类:含有抽象方法的类就叫抽象类。
3.抽象类中的抽象方法必须被实现!
4.如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类!
5.抽象类中的普通方法,可以不必实现。
6.用abstract来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。
7.抽象类不能被实例化。
8.抽象方法只需声明,而不需实现某些功能含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
相关文章
- 暂无相关文章
用户点评