码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java面试题-Java核心基础-第一天(基础概念与常识)


    目录

    一、Java语言有什么特点

    二、JDK、JRE、JVM的区别

    三、JavaSE和JavaEE的区别

    四、什么是字节码,使用字节码的好处

    五、为什么说Java语言是编译与解释并行

    六、OpenJDK和OracleJDK的区别

    七、Java和C++的区别


    一、Java语言有什么特点

    答:

    1. 面向对象 具备面向对象的三大特性(封装、继承、多态)

    2. 其次最大的特点就是简单,相较于c++来说已经很简单了。而且Java语言的设计初衷就是为了提供一种比c++容易学,而且各方面也不错的一种面向对象的语言,所以就诞生了Java

    ....可以扯上它两的区别  指针 释放要自己管理内存 继承

    2. 其次还有跨平台,由于Jvm的存在,使得只需要生成一次字节码,就能够到处运行

    3. 安全

    3.1 最大的就是使用jvm的垃圾回收机制  不需要我们程序员手动的去管理内存,降低了内存泄漏的风险

    3.2 从Java语言本身的特性语法来考虑

    异常机制、封装使用权限修饰符

    4. 多线程

    可以很简单进行多线程编程

    二、JDK、JRE、JVM的区别

    先说JVM  JVM就是java虚拟机   它的作用就是起到一个翻译的作用

    然后加上核心内库 = JRE JRE就已经有了Java代码的运行环境了 所以说如果只是单纯的跑代码 安装JRE就行了

    在JRE的基础再加上一点Java的工具 就变成了JDK了 Java的工具就是bin包下面的一些命令 java javac javap javadock jconsole jms

    三、JavaSE和JavaEE的区别

    JavaSE是Java基础类库JVM的核心组件

    JavaEE是JavaSE的升级版  Java企业级类库 包含一些规范(Servlet、JSP)专为企业开发打造

    还有一个JavaME Java微型类库 为了小电器里面运行

    四、什么是字节码,使用字节码的好处

    字节码就是通过javac命令得到的这样一种文本  还不能直接运行 

    字节码就只面向JVM,只有JVM才懂它   交由JVM翻译成机器码与操作系统打交道

    好处:就是实现跨平台性  具体就是说我这个代码只要生成了一个字节码,这个字节码就可以只需要一份 然后交由不同操作系统上面的JVM翻译成对应的操作系统所能理解的机器码

    五、为什么说Java语言是编译与解释并行

    首先就是要理解什么是编译型语言什么又是解释型语言

    编译型语言

    很直接  可以直接将源代码一次编译成机器码 所以效率很高 但是开发效率低 c系语言

    解释型语言

    它是需要逐行进行解释运行,就是解释一行我就运行一行  没有编译的这一说 只有解释

    执行效率低下 但是开发效率高

    到底为什么Java是编译与解释并行的呢?

    因为Java代码首先需要使用javac命令将其编译成字节码 然后需要使用JVM的执行引擎来进行解释

    虽然是解释 但是对于热点代码 JVM使用jJIT即时编译器 可以将热点代码直接编译成机器码 以后就不需要再次解释了  直接运行机器码就行了

    六、OpenJDK和OracleJDK的区别

    1. 是否开源  前者完全开源 后者部分开源

    2. 是否免费 前者完全免费 后者部分版本需要收费  但是随着Java版本的推进 就比如JDK11也是免费的

    3. 功能性 OpenJDK肯定功能没有OrecleJDK强的  就比如说一些Java工具  OpenJDK就没有

    JFR、JMC监控工具

    七、Java和C++的区别

    1. Java更简单  舍弃了C++中的指针 并且不支持多继承  c++还支持运算符重载 Java不支持

    2. Java语言是可以使用JVM的垃圾回收机制自动的进行内存管理  而C++则需要程序员手动的释放内存

    3. 安全性 c++可以手动的操作内存 而Java不行

  • 相关阅读:
    Database之SQL:SQL在线编程、工作中常用SQL代码实践(以语法为导向的增、删、改、查,已基本涵盖所有语法案例)之详细攻略
    7.9 用户接口
    C++基础知识1 入门基础
    【HTML悦动线条】(效果+代码)
    深入探讨进程间通信的重要性:理解不同的通信机制(上)
    如何在idea中修改包名(多图指导!超简单有效,不会报错)(maven项目)
    element-tiptap和vuedraggable的拖拽冲突
    Spring源码解析——@Transactional注解的声明式事物介绍
    【JavaScript】判断对象是否具有某个属性
    孙卫琴的《精通Vue.js》读书笔记-路由管理器的基本用法
  • 原文地址:https://blog.csdn.net/m0_63445035/article/details/133781236
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号