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文件就是字节码文件),然后用它的解释器来加载字节码。

时间: 2024-11-07 09:48:03

JAVA 面试基础的相关文章

java面试基础题

java面试基础题 今天在网上看到一个大佬整理的java面试题,给大家分享一下,出处:https://www.cnblogs.com/peke/p/7894685.html 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 答:可以包括很多类,但是public修饰的类只能有一个且必须和java源文件名相同 Java有没有goto? 答:没有,在我知道的只有C语言中有 说说&和&&的区别. 答:逻辑与(&)和短路与(&&am

Java面试基础 -- Git篇

1.Git和SVN有什么区别? Git SVN Git是一个分布式的版本控制工具 SVN 是集中版本控制工具 它属于第3代版本控制工具 它属于第2代版本控制工具 客户端可以在其本地系统上克隆整个存储库 版本历史记录存储在服务器端存储库中 即使离线也可以提交 只允许在线提交 push/pull 操作更快 Push/pull 操作较慢 工程可以用 commit 自动共享 没有任何东西自动共享 2.什么是Git? Git 是分布式版本控制系统,可以跟踪文件的更改,并允许你恢复到任何特定版本的更改,优点

java面试基础大全,绝对经典<126-170><转>

这部分主要是开源Java EE框架方面的内容,包括hibernate.MyBatis.spring.Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章<Java面试题集(86-115)>.此外,这篇文章还对企业应用架构.大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助. 126.什么是ORM? 答:对象关系映射(Object-Relational Mapping,简称O

java面试基础大全,绝对经典&lt;51-95&gt;&lt;转&gt;

51.类ExampleA继承Exception,类ExampleB继承ExampleA. 有如下代码片断: try { throw new ExampleB("b") } catch(ExampleA e){ System.out.println("ExampleA"); } catch(Exception e){ System.out.println("Exception"); } 请问执行此段代码的输出是什么? 答:输出:ExampleA.(

java面试基础问题总结

前言:所谓基础,就是最底层的知识,之前面试遇到一位非常好的面试官,语重心长的跟我说,万变不离其宗,只要掌握基础,一切的问题都会迎刃而解的. (由于时间问题,我只整理了一点点知识,我把所遇到的面试题目写在下表面,供大家参考) 1:java中final关键字的作用  final关键字可以用于三个地方.用于修饰类.类属性和类方法. 被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被覆盖(重写): 对于被final关键字修饰的类属性而言,子类就不能给他重新赋值了,如果重新

java面试基础题整理学习

最近投了一些java岗位,面试和笔试的问题更关注基础的掌握,因为基础知识是安身立命以及决定自己上限的东西.结合了网上一些优秀文章,做了如下整理: 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境. 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源

java面试②基础部分

2.1.1 简单讲一下java的跨平台原理 由于各操作系统(windows,linux)支持的指令集,不是完全一致的,就会让我们的程序在不同的操作系统上要执行不同程序代码,java开发了适用不同操作系统及位数的java虚拟机来屏蔽系统之间的差异,提供了统一的接口,对于我们java开发者而言,你只需要在不同的系统上安装对应的不同java虚拟机,这时你的java程序只要遵循java规范就可以在所有的操作系统上面运行java程序. java通过不同的系统,不同版本,不同位数的java虚拟机(jvm),

java面试基础

快面临找工作了,留下了查看.... 基础必备 基础无外乎几部分:语言(C/C++或java),操作系统,TCP/IP,数据结构与算法,再加上你所熟悉的领域. J2SE基础 1. 九种基本数据类型的大小,以及他们的封装类. 2. Switch能否用string做参数? 3. equals与==的区别. 4. Object有哪些公用方法? 5. Java的四种引用,强弱软虚,用到的场景. 6. Hashcode的作用. 7. ArrayList.LinkedList.Vector的区别. 8. St

java面试基础问题积累----多线程,并发

1.object提供哪些线程相关方法 object类是所有java类的超类,提供三个与线程密切相关的方法,wait(),notify(),notifyAll() wait()提供三种重载形式,计时等待和无限等待(线程处于等待状态,直到其他线程调用此对象的notify()或者notifyAll()方法) notify()唤醒此对象监视器上等待的单个线程 notifyAll()唤醒此对象监视器上等待的所有线程 2.线程死锁 Run1 implements  Runnable{ public void