1、什么是Java

  Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了 C++里难以理解的多继承、 指针等概念,因此Java语言具有功能强大和简单易 用两个特征。Java语言作为静态面向对象编程语言的 代表,极好地实现了面向对 象理论,允许程序员以优雅的思维方式进行复杂的编程 

2、JVM、JRE和JDK的关系    

 

  JVM
    Java Virtual Machine 是Java虚拟机,Java程序需要运行在虚拟机上,不同的平 台有自己的虚拟机,因此Java语言可以实现跨平台。
 
  JRE
    Java Runtime Environment 包括Java虚拟机和Java程序所需的核心类库等。核 心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数 据类型、基本数学函数、字符串处理、线程、异 常处理类等,系统缺省加载这个包
如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
 
  JDK
    Java Development Kit 是提供给Java开发人员使用的,其中包含了Java的开发 工具,也包括了JRE。所以 安装了JDK,就无需再单独安装JRE了。其中的开发工 具:编译工具(javac.exe),打包工具(jar.exe)等。
 

3、Java语言有哪些特点

  •   简单易学(Java语言的语法与C语言和C++语言很接近);  
  •   面向对象(封装,继承,多态);  
  •   平台无关性(Java虚拟机实现平台无关性);  
  •   支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的);  
  •   支持多线程(多线程机制使应用程序在同一时间并行执行多项任);  
  •   健壮性(Java语言的强类型机制、异常处理、垃圾的自动收集等);  
  •   安全性。
 

4、Java 跨平台性的原理是什么

  Java语言设计的一个核心优势在于其“编写一次,到处运行”的能力。这一特性通过Java虚拟机(JVM)得以实现。当开发者用Java编写程序后,源代码被编译成一种称为字节码的中间表示形式,存储在扩展名为.class的文件中。这种字节码是专门为JVM设计的,并不针对任何具体的硬件架构或操作系统。

  JVM充当了软件层面的抽象计算机,在不同平台之间提供了一致的接口。这意味着Java编译器只需生成与JVM兼容的字节码,而无需考虑最终运行程序的具体环境。每个支持Java的平台都有一个特定版本的JVM,它能够读取字节码并将其转换为该平台上原生的机器指令来执行。由于各个平台上的JVM实现了相同的规范,因此它们都能正确地解释和执行同样的字节码,从而确保了Java应用程序的跨平台兼容性。

  此外,现代JVM通常还包含了即时编译器(JIT),它可以将频繁使用的字节码片段编译为直接的机器码,以提高执行效率。这种方式结合了编译型语言的速度优势和解释型语言的灵活性,使得Java程序不仅可以在多种环境中高效运行,而且具有良好的性能表现。总结来说,Java通过引入JVM和字节码机制,巧妙地解决了跨平台编程的问题,同时保持了高性能的潜力。  

  

5、Java和C++的区别

  我也没学过C++,但是面试官就是没事喜欢拿咱们Java和C++比呀! 没办法!!!就算没学过C++,也要记下来!
  •   都是面向对象的语言,都支持封装、继承和多态
  •   Java不提供指针来直接访问内存,程序内存更加安全
  •   Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,但是 接口可以多继承。
  •   Java有自动内存管理机制,不需要程序员手动释放无用内存。

6、Java语言采用何种编码方案?

  Java语言采用Unicode编码标准,Unicode(标准码),它为每个字符制订了一 个唯一的数值,因此在任何的语言,平台,程序都可以放心的使用。

 
  

【Java 温故而知新系列】基础知识-01 概述的更多相关文章

  1. Java多线程系列 基础篇01 线程的状态

    1.进程和线程 进程: 计算机中程序关于某数据集合的一次运行活动,是计算机系统进行资源分配和调度的基本单位,是操作系统结构的基础. 线程: 线程是进程的实例,是CPU进行资源分配和调度的最小单位,线程 ...

  2. Java多线程系列--“基础篇”01之 基本概念

    多线程是Java中不可避免的一个重要主体.从本章开始,我们将展开对多线程的学习.接下来的内容,是对“JDK中新增JUC包”之前的Java多线程内容的讲解,涉及到的内容包括,Object类中的wait( ...

  3. Java多线程系列--“基础篇”11之 生产消费者问题

    概要 本章,会对“生产/消费者问题”进行讨论.涉及到的内容包括:1. 生产/消费者模型2. 生产/消费者实现 转载请注明出处:http://www.cnblogs.com/skywang12345/p ...

  4. Java多线程系列--“基础篇”04之 synchronized关键字

    概要 本章,会对synchronized关键字进行介绍.涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchro ...

  5. Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式

    概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程 ...

  6. Java多线程系列--“基础篇”03之 Thread中start()和run()的区别

    概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答.本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start( ...

  7. Java多线程系列--“基础篇”05之 线程等待与唤醒

    概要 本章,会对线程等待/唤醒方法进行介绍.涉及到的内容包括:1. wait(), notify(), notifyAll()等方法介绍2. wait()和notify()3. wait(long t ...

  8. Java多线程系列--“基础篇”06之 线程让步

    概要 本章,会对Thread中的线程让步方法yield()进行介绍.涉及到的内容包括:1. yield()介绍2. yield()示例3. yield() 与 wait()的比较 转载请注明出处:ht ...

  9. Java多线程系列--“基础篇”07之 线程休眠

    概要 本章,会对Thread中sleep()方法进行介绍.涉及到的内容包括:1. sleep()介绍2. sleep()示例3. sleep() 与 wait()的比较 转载请注明出处:http:// ...

  10. Java多线程系列--“基础篇”08之 join()

    概要 本章,会对Thread中join()方法进行介绍.涉及到的内容包括:1. join()介绍2. join()源码分析(基于JDK1.7.0_40)3. join()示例 转载请注明出处:http ...

随机推荐

  1. AWS服务 简介

    1 Amazon Elastic Compute Cloud (Amazon EC2) 是一种提供可调节计算容量的 Web 服务 – 简单来说,就是 Amazon 数据中心里的服务器 – 您可以使用它 ...

  2. Machine Learning Week_1 Introduction 1-4

    目录 1 Introduction 1.1 Video: Welcome unfamiliar words symbols 1.2 Video: What is machine learning? u ...

  3. C# 动态调用webservice代码

    /// <summary> /// 动态调用WebService /// </summary> /// <param name="url">UR ...

  4. 记录一个vscode无法ssh树莓派,但是mobaxterm可以ssh登录的问题

    一.为什么会遇到这个问题 帮别人开发一个树莓派小车的时候,买了一个新的树莓派3B,回来安装好桌面系统之后开启了ssh功能,便想开始使用vscode来ssh开发,省的后续一直要插着屏幕开发,很麻烦.但是 ...

  5. vim粘贴文件格式不乱

    vim粘贴防止格式乱,配置以下命令然后在粘贴,即可~ :set paste

  6. delphi Image32 动画演示2

    Image 32 自带的Demo,添加一些注解. unit uFrmAnimation2; interface uses Winapi.Windows, Winapi.Messages, System ...

  7. dyld: 神秘的 __dso_handle

    iOS动态链接器dyld中有一个神秘的变量__dso_handle: // dyld/dyldMain.cpp static const MachOAnalyzer* getDyldMH() { #i ...

  8. 配置NVIDIA Container Runtime和容器运行GPUStack教程

    GPUStack 是一个设计用于运行大模型的开源 GPU 集群管理器,提供私有部署的大模型服务,支持大语言模型.Embedding 文本嵌入模型.Reranker 重排序模型.Vision 多模态模型 ...

  9. (Redis基础教程之七)如何使用Redis中的Hashes

    如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...

  10. Mysql分页实现及优化

    通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询.例如下面这个SQL: SELECT * FROM `t1` WHERE ftype=1 ORDER BY ...