从零开始的八股文(二)

打印 上一主题 下一主题

主题 857|帖子 857|积分 2571

1.Java基础
1.1 为什么Java代码可以实现一次编写、到处运行?
参考答案
JVM(Java虚拟机)是Java跨平台的关键。
在程序运行前,Java源代码(.java)必要经过编译器编译成字节码(.class)。在程序运行时,JVM负责将字节码翻译成特定平台下的机器码并运行,也就是说,只要在不同的平台上安装对应的JVM,就可以运行字节码文件。
同一份Java源代码在不同的平台上运行,它不必要做任何的改变,而且只必要编译一次。而编译好的字节码,是通过JVM这个中心的“桥梁”实现跨平台的,JVM是与平台相干的软件,它能将统一的字节码翻译成该平台的机器码。
留意事项
1.2 一个Java文件里可以有多个类吗(不含内部类)?
参考答案
1.3 说一说你对Java访问权限的了解
参考答案
Java语言为我们提供了三种访问修饰符,即private、protected、public,在使用这些修饰符修饰目标时,一共可以形成四种访问权限,即private、default、protected、public,留意在不加任何修饰符时为default访问权限。
在修饰成员变量/成员方法时,该成员的四种访问权限的含义如下:
1.4 介绍一下Java的数据类型
参考答案
Java数据类型包括基本数据类型和引用数据类型两大类。
基本数据类型有8个,可以分为4个小类,分别是整数类型(byte/short/int/long)、浮点类型(float/double)、字符类型(char)、布尔类型(boolean)。其中,4个整数类型中,int类型最为常用。2个浮点类型中,double最为常用。另外,在这8个基本类型当中,除了布尔类型之外的其他7个类型,都可以看做是数字类型,它们相互之间可以举行类型转换。
引用类型就是对一个对象的引用,根据引用对象类型的不同,可以将引用类型分为3类,即数组、类、接口类型。引用类型本质上就是通过指针,指向堆中对象所持有的内存空间,只是Java语言不再相沿指针这个说法而已。
扩展阅读
对于基本数据类型,你必要了解每种类型所占据的内存空间,面试官可能会追问这类题目:
对于引用数据类型,你必要了解JVM的内存分布环境,知道引用以及引用对象存放的位置,详见JVM部分的题目。
1.5 int类型的数据范围是多少?
参考答案
int类型占4字节(32位),数据范围是 -2^31 ~ 2^31-1。
1.6 请介绍全局变量和局部变量的区别
参考答案
Java中的变量分为成员变量和局部变量,它们的区别如下:
成员变量:
局部变量:
留意事项
Java中没有真正的全局变量,面试官应该是出于其他语言的习惯说全局变量的,他的本意应该是指成员变量。
1.7 请介绍一下实例变量的默认值
参考答案
实例变量若为引用数据类型,其默认值一律为null。若为基本数据类型,其默认值如下:
留意事项
上述默认值规则适用于所有的成员变量,所以对于类变量也是适用的。
1.8 为啥要有包装类?
参考答案
Java语言是面向对象的语言,其设计理念是“统统皆对象”。但8种基本数据类型却出现了破例,它们不具备对象的特性。正是为了解决这个题目,Java为每个基本数据类型都界说了一个对应的引用类型,这就是包装类。
扩展阅读
Java之所以提供8种基本数据类型,主要是为了照顾程序员的传统习惯。这8种基本数据类型的确带来了肯定的方便性,但在某些时间也会受到一些制约。好比,所有的引用类型的变量都继承于Object类,都可以当做Object类型的变量使用,但基本数据类型却不可以。如果某个方法必要Object类型的参数,但实际传入的值却是数字的话,就必要做特殊的处理了。有了包装类,这种题目就可以得以简化。
1.9 说一说主动装箱、主动拆箱的应用场景
参考答案
主动装箱、主动拆箱是JDK1.5提供的功能。
主动装箱:可以把一个基本类型的数据直接赋值给对应的包装类型;
主动拆箱:可以把一个包装类型的对象直接赋值给对应的基本类型;
通过主动装箱、主动拆箱功能,可以大大简化基本类型变量和包装类对象之间的转换过程。好比,某个方法的参数类型为包装类型,调用时我们所持有的数据却是基本类型的值,则可以不做任何特殊的处理,直接将这个基本类型的值传入给方法即可。
1.10 怎样对Integer和Double类型判断相称?
参考答案
Integer、Double不能直接举行比较,这包括:
整数、浮点类型的包装类,都继承于Number类型,而Number类型分别界说了将数字转换为byte、short、int、long、float、double的方法。所以,可以将Integer、Double先转为转换为雷同的基本数据类型(如double),然后使用==举行比较。
示例代码
Integer i = 100;
Double d = 100.00;
System.out.println(i.doubleValue() == d.doubleValue());


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊落一身雪

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表