Java▲面试JAVA,“这些题”你必须得懂(第一部分)
文章图片
JAVA最基本的数据类型有哪些?
JAVA最基本的数据类型有8个:分别是booleanchardoublefloatlongintshortbyte
除了基本数据类型 , 就是引用类型:reference type
枚举类型:enum
基本数据类型
访问修饰符有哪些 , 区别是啥?
跟进类的类型 , 可以分为内部类的修饰符 , 外部类的修饰符
有四种修饰符:Publicprotecteddefaultprivate
区别:不写也就是默认为default这个时候对于同一包中的其他类 , 相当于是(public)公开对于不同包中的类 , 相当于是(private)私有 。 而(protected)受保护 , 对于子类是公开的 , 对于同一包中 , 没有父子关系的相当于私有 。
如果是外部类:只能是默认(default)或者(public);如果是内部类:以上四种修饰符都可以 。
修饰符
Switch在最新JAVA版本中 , 能够作用在哪些数据类型上面?
因为引入了枚举类 , 所以switch , 目前除了long , 其他数据类型都是可以作用的 。
构造器(constructor)是否能够被重写?构造器不能被继承的 , 是因为不能够被重写 , 只能被重载 。
两个对象相同 , 是否有不同的哈希码?
答案是:没有!
【Java▲面试JAVA,“这些题”你必须得懂(第一部分)】String类 , 是否可以被继承?
String类是final类 , 不可以被继承的 。
当一个对象被当作一个参数传递到另一个方法后 , 这个方法可以改变对象的属性 , 并且可以返回变化之后的结果 , 这里的值传递还是引用传递?
JAVA只能够通过值来传递 。
String和StringBuilder、StringBuffer的区别?JAVA目前提供的字符串类型有两种:string和stringbuilder/stringbuffer 。 string内容不可以修改的 , 后者是可以修改的 。 而stringbuffer和stringbuilder后者是单线程的 , 效率比前者更高 。
JVM加载CLASS文件的原理机制是什么?
Jvm中类的装载是有类加载器和它的子类来实现的 。 类加载器是一个重要的JAVA运行时的组件 , 他负责运行时查找和装入类文件中的类 。
JAVA是可以跨平台的 , 经过编译的JAVA源码并不是一个可运行的程序 , 而是有一个或者多个类文件组成的文件 。 当JAVA需要使用类的时候 , 就需要用JVM去确保这个类是否被加载 , 链接 , 初始化 。 类的加载也就是把类的.class文件中的数据读入到内存当中 , 通过建立一个字节数组读入.class文件 , 然后产生所加载的类的class对象 。 加载完之后 , class对象还不够完整 , 所以此时的类还不可用 , 还需要通过链接阶段 , 然后是验证 , 准备(为静态的变量分配内存并设置默认的初始值) , 然后是解析(将符号引用直接替换为直接引用) , 这三个步骤完成 , 最后JVM再进行初始化 , 1.如果类是有存在的父类还没有初始化 , 先初始化父类;2如果类中友初始化语句 , 那就直接执行初始化的语句 。
加载过程中的加载器分类:根加载器(bootstrap)扩展加载器(extension) , 系统加载器(system)
JVM运行过程
推荐阅读
- 『Java』java数据结构系列——什么是数据结构
- 『Java』马云:成功人跟普通人差不多,但这三点我一定要分享给所有年轻人
- 「客户端」学习网络编程,不了解TCP协议?难怪面试被刷下去,还不来学习!
- #Java#java线程到底有多少种状态?
- #智能手表#1、初识java-1
- [华为]有朋友问我“JAVA全栈”、“互联网架构师”和“JAVAEE”到底是什么?
- 「javascript」这边走Javascript了解一下
- 「华为」一篇有趣的Java class
- struts@Java面试之项目面试问题——不看面试会后悔的
- 「Java」六面蚂蚁金服,唬住了面试官要了30K;其实Java面试也没那么难