美文网首页
java面试题集(一)

java面试题集(一)

作者: 我呀有一只小毛驴 | 来源:发表于2018-08-28 14:48 被阅读0次

1、面向对象的特征有哪些方面?

封装、继承、多态

2、访问修饰符public,private,protected,以及不写(默认)时的区别?

修饰符 当前类 包内 子孙类 包外
public
protected ×
default × ×
private × × ×

注:
不写时默认为default,默认为包内使用。

3、String 是最基本的数据类型吗?

String和Integer都是包装类型;
Java有8种基本数据类型: byte、short、int、long、double、float、boolean、char;

4、float f=3.4;是否正确?

答案:不正确。
原因:精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 或float f = 3.4f
在java里面,没小数点的默认是int,有小数点的默认是 double;
编译器可以自动向上转型,如int 转成 long 系统自动转换没有问题,因为后者精度更高
double 转成 float 就不能自动做了,所以后面的加上个 f;

5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

1、对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。
2、对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。
3、s1是short型,1是int型,所以两个加完后是类型加大的那个是int,但是s1=s1+1;赋值的时候,s1是short型,不能将int型隐式转换成short。

6、Java有没有goto?

goto是Java中的保留字,但是现在还没有在Java中使用goto,Java用带标签的continue和break语句能够完全代替goto的功能,从而避免了goto语句的滥用。

7、int和Integer有什么区别?

int 是基本数据类型,而integer 是对象(也就是一个类)。因此在类进行初始化时int类的变量初始为0,而Integer的变量则初始化为null。
类似的还有:float Float; double Double; String等

8、&和&&的区别?

对于:& -- > 不管怎样,都会执行"&"符号左右两边的程序;
对于:&& -- > 只有当符号"&&"左边程序为真(true)后,才会执行符号"&&"右边的程序。

9、解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。

堆区:专门用来保存对象的实例(new 创建的对象和数组),实际上也只是保存对象实例的属性值,属性的类型和对象本身的类型标记等,并不保存对象的方法(方法是指令,保存在Stack中)
1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)
2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身.
3.一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
栈区:对象实例在Heap 中分配好以后,需要在Stack中保存一个4字节的Heap内存地址,用来定位该对象实例在Heap 中的位置,便于找到该对象实例。
1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中
2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
4.由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.
静态区/方法区:
1.方法区又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。
3.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。

10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

答:11.5+0.5后是12再向下取整是12;-11.5+0.5后是-11再向下取整-11
扩展:Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整, 所以,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整,所以,Math.floor(11.6)的结果为11,Math.floor(-11.6)的结果是-12;最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。

想要面试BAT,做完这160道Java技术面试题,让你胸有成竹!

相关文章

  • Java面试题集

    Java面试题集(1-50) Java面试题集(51-70) Java面试题集(71-85) Java面试题集(8...

  • Java面试题收藏

    Java面试题收藏 一篇比较好的面试题整理: Java面试题集 自己的一些收藏: 静态变量和实例变量的区别 静态变...

  • Android面试总结二

    参考文章 40个Android面试题Java面试题集Android名企面试题及知识点整理Android面试题收集较...

  • Java面试题汇总

    Java面试题总结 Java面试题总结一Java面试题总结二

  • 面试题

    Java面试题集 - 简书 Java内部类详解 - 海 子 - 博客园 记一次 Android 面试 - 简书 A...

  • 太赞了,2020 最新 Java 面试题出炉!(带全部答案)

    今天给大家带来一套 2020最新整理的Java 面试题,独家整理,禁止剽窃!!! 题库非常全面,包括 Java 集...

  • Java面试题及答案整理(图文)

    Java面试题集涵盖了java所有的知识点,及java项目开发中涉及到的各种框架 。包含了 Java 集合、JVM...

  • Java面试题详解(PDF版整理)

    Java面试题集涵盖了java所有的知识点,及java项目开发中涉及到的各种框架 。包含了 Java 集合、JVM...

  • JAVA面试题(一)

    大公司的Java面试题集 第一,谈谈final, finally, finalize的区别。 final用于声明属...

  • java实习生面试题题库

    java实习生面试题,java基础面试,java面试题2018及答案,java面试题库 1、[一个.java源文件...

网友评论

      本文标题:java面试题集(一)

      本文链接:https://www.haomeiwen.com/subject/pwcfwftx.html