Java实习生常规技术面试题每日十题Java基础(一)
目录
4.说明一下public static void main(String args[])这段声明里每个关键字的作用。
10. 构造器(constructor)是否可被重写(override),其规范是什么?
1.Java 的 “一次编写,处处运行”如何实现?
JAVA之所以能实现 一次编译,到处运行,是因为JAVA在每个系统平台上都有 JAVA虚拟机(JVM),JAVA编译的中间文件class是由JAVA虚拟机在运行时动态转换为对应平台的机器代码.
2.描述JVM运行原理。
Java平台由Java虚拟机和Java应用程序接口搭建,Java语言则是进入这个平台的通道,用Java语言编写并编译的程序可以运行在这个平台上。这个平台的结构如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。
3.为什么Java没有全局变量?
Global variables(全局变量) 是指可以全局访问的变量, Java不支持全局变量,原因如下:
1. 全局变量破坏了引用的透明性。
2. 全局变量制造了命名空间冲突。
可以使用properties类将想要全局有效的变量值写在properties文件中,那么在何处用时都从此properties文件中读取这个变量的值就可以了,此值在任何时候都可以修改的
说明:我们平时在类中声明的只是相对类而言是全局变量,不是真正意义的全局变量
4.说明一下public static void main(String args[])这段声明里每个关键字的作用。
Public 是一个访问权限(访问修饰符)公共
static 修饰的成员称为类成员或者静态成员
void 当方法定义时用void修饰时,表示没有返回值
String 类来创建和操作字符串
5.Java 是否存在内存泄漏?
java中内存泄露的发生场景,通俗地说,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是java中的内存泄露,一定要让程序将各种分支情况都完整执行到程序结束,然后看某个对象是否被使用过,如果没有,则才能判定这个对象属于内存泄露。
6.==与equals的区别。
"= ="除了比较基本数据之外都是比较的内存地址
"equals"除了没有没有重写equals方法的类之外都是比较的内容
7.Java中有几种类型的流?
Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。
8.如何用Java代码列出一个目录下所有的文件。
File file=new File("H:\\");
for(File temp:file.listFiles()){
if(temp.isFile()){
System.out.println(temp.toString());
}
}
9.&和&&的区别。
1、&与&&都可以用作逻辑与的运算符,当两边的结果都为true时,运算结果才为true,否则只要有一方运算结果是false,运算结果就为false。
2、&&在开发过程中用到的概率比&大,因为&&具有短路的功能,只要第一个表达式是false,就不会再进行判断。例如:if(str!=null && !str.equals("")){}
当str==null时,后面的表达式就不会继续执行,但是
if(str!=null & !str.equals("")){}当str==null时,程序会报空指针异常,因为&不具有短路的功能。
3、&同时也是位运算符,就是我们通常所说的按位与运算,当&的左右两边都是Boolean型表达式时或Boolean值时,就执行按位与运算。
10. 构造器(constructor)是否可被重写(override),其规范是什么?
构造器(构造方法)Constructor不能被继承,因此不能重写Override,但可以被重载Overload(不同参数即可)。
每一个类必须有自己的构造函数,在创建对象时自动调用,如果添加有参构造函数后,默认无参构造函数则被覆盖。子类不会覆盖父类的构造函数,但是在创建子类对象的时候,会自动调用父类构造函数。
其他面试题:
本文来自博客园,作者:明金同学,转载请注明原文链接:https://www.cnblogs.com/vmuu/p/15663298.html
公众号:【明金同学】