Java八股文学习--基础常见面试题(day02)

java语言的特点

  • 面向对象(封装,继承,多态);
  • 平台无关性( Java 虚拟机实现平台无关性:一次编写,随处运行);
  • 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);
  • 可靠性(具备异常处理和自动内存管理机制);
  • 安全性(Java 语言本身的设计就提供了多重安全防护机制如访问权限修饰符、限制程序直接访问操作系统资源);
  • 高效性(通过 Just In Time 编译器等技术的优化,Java 语言的运行效率还是非常不错的);

什么是字节码?采用字节码的好处是什么?

在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。而且,字节码并不针对某一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。


标识符和关键字的区别是什么?

标识符就是一个名字,而关键字是赋予了特殊含义的标识符

常见的标识符有:


基本类型和包装类型的区别

· 存储方式:基本数据类型的局部变量放在Java虚拟机栈中的局部变量表中,成员变量(未被static修饰)存放在java虚拟机的堆中。包装类型属于对象类型,几乎所有对象实例都存在于堆中

· 默认值:成员变量包装类型不赋值就是null,而基本类型有默认值不为null

· 比较方式:对于基本数据类型来说,== 比较的是值。对于包装数据类型来说,== 比较的是对象的内存地址。所有整型包装类对象之间值的比较,

全部使用 equals() 方法。

包装类型的缓存机制

Integer, Long, Byte, Short, 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据;
Character 创建了数值在 [0,127] 范围的缓存数;
Float, Double 没有实现缓存机制

如果超出缓存范围仍然会去创建新的对象,缓存的范围区间的大小只是在性能和资源之间的权衡。

拆装箱

装箱:将基本类型用它们对应的引用类型包装起来。
拆箱:将包装类型转换为基本数据类型。
 


静态变量有什么作用?

静态变量是被static修饰的变量,可以被类的所有实例所共享(同一份静态变量),也就是说静态变量只被分配一次内存。


静态方法为什么不能调用非静态成员?

静态方法是属于类的,在类被加载的时候就会分配内存,可以通过类名直接访问。而非静态成员属于实例对象,只有在对象实例化之后才存在,需要通过类的实例对象去访问。所以在非静态成员不存在时调用内存中还不存在的非静态成员是非法操作


  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值