JAVA 面试基础

经典的Java基础面试题 ___________________________________________________________________________________________

1.问题:Java的”一次编写,处处运行”是如何实现的?

答案:Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。

2.问题:说明一下public static void main(String args[])这段声明里每个关键字的作用

答案:public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为pulic.

static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。

void: main方法没有返回值。 String是命令行传进参数的类型,args是指命令行传进的字符串数组。

3.问题:如果去掉了main方法的static修饰符会怎样?

答案:程序能正常编译。运行时会抛NoSuchMethodError异常。

4.如何将String类型转化成Number类型?

答案:Integer类的valueOf方法可以将String转成Number。下面是代码示例: String numString = “1000″; int id=Integer.valueOf(numString).intValue();

5.问题:while循环和do循环有什么不同?

答案:while结构在循环的开始判断下一个迭代是否应该继续。do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。

6.问题:什么是隐式的类型转化?

答案:隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。并不是所有的类型都支持隐式的类型转化。

代码示例:

int i = 1000; long j = i; //Implicit casting

7.问题:显式的类型转化是什么?

答案:显式的类型转化是明确告诉了编译器来进行对象的转化。

代码示例:

long i = 700.20; int j = (int) i; //Explicit casting

8.问题:什么是Java虚拟机?

答案:Java虚拟机是能移植到不同硬件平台上的软件系统。

9.问题:所有类的父类是什么?

答案:Object.

10. 问题:Java的基本类型有哪些?

答案:byte,char, short, int, long, float, double, boolean。

11.问题:&操作符和&&操作符有什么区别?

答案:当一个&表达式在求值的时候,两个操作数都会被求值,&&更像是一个操作符的快捷方式。当一个&&表达式求值的时候,先计算第一个操作数,如果它返回true才会计算第二个操作数。如果第一个操作数取值为fale,第二个操作数就不会被求值。

12.问题:public static void写成static public void会怎样?

答案:程序正常编译及运行。

13.问题,声明变量和定义变量有什么不同?

答案:声明变量我们只提供变量的类型和名字,并没有进行初始化。定义包括声明和初始化两个阶段String s;只是变量声明,String s = new String(“bob”); 或者String s = “bob”;是变量定义。 14.问题:你怎么理解变量?

答案:变量是一块命名的内存区域,以便程序进行访问。变量用来存储数据,随着程序的执行,存储的数据也可能跟着改变。

15.问题:数值提升是什么?

答案:数值提升是指数据从一个较小的数据类型转换成为一个更大的数据类型,以便进行整型或者浮点型运算。在数值提升的过程中,byte,char,short值会被转化成int类型。需要的时候int类型也可能被提升成long。long和float则有可能会被转换成double类型。

16.问题:程序中可以允许多个类同时拥有都有main方法吗?

答案:可以。当程序运行的时候,我们会指定运行的类名。JVM只会在你指定的类中查找main方法。因此多个类拥有main方法并不存在命名冲突的问题。

17.问题:一个类能拥有多个main方法吗?

答案:可以,但只能有一个main方法拥有以下签名:

public static void main(String[] args) {} 否则程序将无法通过编译。编译器会警告你main方法已经存在。

18.问题:简单的介绍下JVM是如何工作的?

答案:JVM是一台抽象的计算机,就像真实的计算机那样,它们会先将.java文件编译成.class文件(.class文件就是字节码文件),然后用它的解释器来加载字节码。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏blackheart的专栏

[C#2] 1-泛型

1. 泛型概述 泛型是一种类型的多态;比如当我们写一个栈或者队列的时候,需要指定其数据类型,int一份代码,string一份代码,object的一份代码, 这些...

234100
来自专栏Play & Scala 技术分享

Play For Scala 开发指南 - 第2章 Scala基本语法

28350
来自专栏函数式编程语言及工具

泛函编程(3)-认识Scala和泛函编程

接着昨天的文章,再示范一个稍微复杂一点的尾递归tail recursion例子:计算第n个Fibonacci数。Fibonacci数第一、第二个数值分别是0,1...

21770
来自专栏闻道于事

Java常见问题

自古深情留不住,总是套路得人心 最近经历了一次惨无人道的程序员笔试,真的是“笔”试,默默地来整理一下…… 以后遇到问题要多整理…… 常见套路: 当一个变量被赋值...

45860
来自专栏python3

python3--迭代器,生成器

现在是从结果分析原因,能被for循环的就是"可迭代的",但是如果按常规想,for怎么知道谁是可迭代的呢?

13110
来自专栏CodingToDie

Python学习(二):基础

第2 章 基础 Table of Contents 输入和输出 输出 输入 数据类型 整数 浮点数 字符串 布尔值 空值 变量 常量 输入和输出 输出 prin...

49450
来自专栏微信公众号:Java团长

Java抽象类与oop三大特征

在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它 只有声明,而没有具体的实现 。抽象方法的声明格式为:

13440
来自专栏北京马哥教育

python的类访问控制

在python类中,有属性和方法,外部代码可以直接通过实例来访问修改。 如果需要让内部的属性不被外部访问到,在属性变量前面加上__2个下划线。 在python中...

42560
来自专栏python成长之路

引用传递函数值

11410
来自专栏张首富-小白的成长历程

正则表达式

1.17 正则的引用 所在的位置就看左侧的"("所在的位置,在第一个就是\1,第二个就是\2,嵌套引用也是这个道理

30930

扫码关注云+社区

领取腾讯云代金券