前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java面试强基(1)

java面试强基(1)

作者头像
一个风轻云淡
发布2022-11-20 16:30:45
3520
发布2022-11-20 16:30:45
举报
文章被收录于专栏:java学习javajava学习java

 java语言特点 

  • 面向对象(继承、封装、多态)
  • 支持多线程
  • 跨平台
  • 强大的生态
  • 简单易学
  • 编译和解释并存

解释以下jvm,jdk,jre 

  • jvm是java虚拟机,是运行java字节码的虚拟机。jvm针对不同的系统有不同的实现,目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。
  • jdk是java功能齐全的sdk。拥有jre的所有功能,同时还具有编译器、工具。它能够创建和编译程序。
  • jre是java运行时环境,他是运行java已编译程序的集合,拥有jvm、java命令、java类库和一些基础构件。他不能创建新程序。如果你只是为了运行一下 Java 程序的话,那么你只需要安装 JRE 就可以了。如果你需要进行一些 Java 编程方面的工作,那么你就需要安装 JDK 了。

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

​ 在java中,字节码指的是虚拟机可以理解的代码(.class文件)。他不面向任何特定的处理器,只面向虚拟机。java语言通过字节码文件,在一定程度上解决了解释性语言执行效率低的问题,但是也保存了解释性语言可移植的特点。由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。

​ 下图是java源代码到运行的过程:

​ 我们需要格外注意的是 .class->机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了 JIT(just-in-time compilation) 编译器, JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。机器码的运行效率高于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语言 。

java和c++的区别了解吗?

  1. Java 不提供指针来直接访问内存,程序内存更加安全。
  2. Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
  3. Java 有自动内存管理垃圾回收机制(GC),不需要程序员手动释放无用内存。
  4. C ++同时支持方法重载和操作符重载,但是 Java 只支持方法重载(操作符重载增加了复杂性,这与 Java 最初的设计思想不符)。

操作符重载,也叫运算符重载,是C++的重要组成部分,它可以让程序更加的简单易懂,简单的运算符使用可以使复杂函数的理解更直观。 虽然运算符重载听起来好像是C++的外部能力,但是多数程序员都不知不觉地使用过重载的运算符。例如,加法运算符“+”对整数、单精度数和双精度数的操作是大不相同的。这是因为C++语言本身已经重载了该运算符,所以它能够用于int、float、double和其它内部定义类型的变量。

本文参考链接

DocumentDescription

https://fxzcloud.gitee.io/offer/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  java语言特点 
  • 解释以下jvm,jdk,jre 
  •  3.什么是字节码,采用字节码的好处是什么?
  • java和c++的区别了解吗?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档