首页 > 编程语言 >学习Java day01

学习Java day01

时间:2024-05-25 18:05:20浏览次数:16  
标签:java day01 程序 学习 跨平台 内存 JVM Java

Java概述

Java历史

什么是程序?

程序:程序是计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。

Java重要特点

1.Java是OPP。

2.Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。

3.Java语言是跨平台性的。一个编译好的.class文件可以在多个系统下运行

4.Java语言是解释型的

解释性语言:JS、PHP、Java

编译性语言:C、C++

区别:解释性语言,编译后的代码,不能直接被机器执行

编译性语言,编译后的代码,可以直接被机器执行

Java运行机制及运行过程

  • Java语言的特性:跨平台性

  • JVM:因为有了JVM,同一个Java在三个不同的操作系统中都可以执行,这样就实现了Java程序的跨平台性。

  • Java的核心机制-Java虚拟机【JVM】

  • JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器、包含在JDK里面。

  • 对于不同的平台,有不同的虚拟机

  • Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”


    JVM的作用:

    1. 实现跨平台性: JVM的最主要作用是实现Java的跨平台性。Java源代码被编译成字节码(bytecode),而不是机器码,这些字节码可以在任何安装了相应版本JVM的平台上运行,实现了一次编写,到处运行的目标。

    2. 字节码解释和执行: JVM负责将Java源代码编译生成的字节码解释为特定平台上的机器码,并执行这些机器码指令。JVM会根据不同的平台和操作系统进行优化,以提高程序的性能。

    3. 内存管理: JVM负责管理Java程序的内存,包括堆内存、栈内存和方法区(元数据区)的分配和释放。它使用垃圾回收器来自动管理内存,帮助程序员避免手动管理内存带来的种种问题,如内存泄漏和野指针等。

    4. 垃圾回收: JVM中的垃圾回收器负责自动回收不再使用的对象所占用的内存空间,以便为新对象分配空间。垃圾回收器可以减少内存泄漏的可能性,提高程序的稳定性和性能。

    5. 性能监控和调优: JVM提供了一系列性能监控和调优工具,如JConsole、VisualVM等,用于监控Java程序的运行状态、内存使用情况、线程堆栈等,并根据监控结果进行性能调优,以提高程序的运行效率和响应速度。

    总的来说,JVM是Java程序运行的环境和载体,它负责解释和执行Java字节码,管理程序的内存和资源,并提供性能监控和调优等功能,是Java跨平台性和自动内存管理的重要保障。

    什么是JDK、JRE

    • JDK的基本介绍

      1. JDK的全称(Java Development Kit Java开发包工具)JDK=JRE+java的开发工具【java,javac,javadoc,javap等】

      2. JDK是提供给JAVA开发人员使用的,其中包含java的开发工具,也包括jre。

    • JRE的基本介绍

      1. JRE(Java Runtime Environment java运行环境) JRE = JVM +java的核心库

      2. 包含java虚拟机和java程序所需的核心库等 如果只是想要运行一个开发好的JAVA程序,计算机中只需要安装JRE即可。

标签:java,day01,程序,学习,跨平台,内存,JVM,Java
From: https://blog.csdn.net/weixin_58315393/article/details/139198381

相关文章

  • hsql学习笔记
    1. row_number()over(partitionbyuidorderbydt分析:row_number():这是一个窗口函数,用于为结果集中的每一行分配一个唯一的序号。默认情况下,这个序号是按照查询结果的顺序来分配的,但你可以通过OVER()子句中的ORDERBY来指定排序方式。OVER(PARTITIONBYuidORDERB......
  • C++基础知识学习笔记(5)——函数
    学习参考:https://www.bilibili.com/video/BV1et411b73Z?p=95&spm_id_from=pageDriver&vd_source=cc561849591f6a210152150b2493f6f3函数函数的默认参数可以为形参提供默认值。intadd(inta,intb=1,intc=2){ returna+b+c;}intmain(){ cout<<(add(1,3,......
  • 学习javascript的数组
    1.什么是数组?数组:(Array)是一种数据类型,属于引用数据类型。作用:在单个变量名下存储多个数据2.声明语法let数组名=[数据1,数据2......];注意事项:数组是按照顺序保存(是有序的),所以,每一个数据都有自己的编号。编号从0开始,数据的编号经常称为索引或下标。数组可以存储任意......
  • Java读取word文件 No valid entries or contents found, this is not a valid OOXML (
    有个项目涉及到了操作word文档,当我把一份未加密word文档放在项目resources目录下进行临时开发,读取这个word时报错:Causedby:org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException:Novalidentriesorcontentsfound,thisisnotavalidOOXML(OfficeOpenXML......
  • Java数据结构与算法(平衡二叉树)
    前言平衡二叉树是为了提高二叉树的查询速度,通过满足特定的条件来保持其平衡性。平衡二叉树具有以下特点:左子树和右子树的高度差不会大于1,这是为了确保树的高度不会过大,从而减少查询时的磁盘I/O开销,提高查询速度。平衡二叉树上的所有结点的平衡因子(左子树深度减去右子树深度的......
  • 深入理解ECMAScript:JavaScript的规范与实践
    引言在当今的Web开发领域,JavaScript几乎无处不在。它不仅在客户端编程中占据主导地位,而且在服务器端(Node.js)和移动应用开发中也越来越受欢迎。然而,JavaScript的核心并非由单一的公司或组织控制,而是由一个国际标准组织——ECMAInternational通过ECMAScript规范来定义。本文将......
  • 基于JAVA GUI体育馆管理系统的会员功能
      JavaGUI即Java图形用户界面,是一种使用图形化元素(如窗口、按钮、文本框等)来构建用户界面的技术。它基于Java的Swing框架,可以用于创建各种复杂的用户界面,包括窗口、对话框、菜单、按钮、文本框、复选框、下拉列表等。  JavaGUI具有以下特点:跨平台性:Java是一种跨平台......
  • Java Thread
    Thread一般而言,线程是CPU资源调度的基本单位。在java中,线程通过系统内核线程实现,每个Java线程对应着一个内核线程。以HotSpotJVM为例,它的每一个Java线程都是直接映射到一个操作系统原生线程来实现的,中间没有额外的结构,HotSpot不会干涉线程调度。线程调度全由操作系统去处理,包括......
  • Unity热更学习--Lua脚本使用C#中的事件、委托和协程
    [14]lua调用使用C#中的事件和委托C#脚本:继续在Student类中声明//声明委托和事件publicUnityActiondele;publiceventUnityActioneventAction;publicvoidDoDele(){if(dele!=null)dele();}publicvoidDoEvent(){if(eventAction!=null)......
  • Java 多线程编程 力扣实题
    多线程编程实例了解内存模型、线程通信和线程安全之后,对多线程编程已经有了理论上的认知,现在来实战一下。所有题目在https://leetcode.cn/problemset/concurrency/。按序打印题干描述给你一个类:publicclassFoo{publicvoidfirst(){print("first");}publicvoidseco......