Java基础(动力节点课程)

news2024/10/7 19:20:54

JavaSE基础——第一章初识Java

  • JavaSE JavaEE JavaME
    • JavaSE
    • JavaEE
    • JavaME
  • Java语言跨平台性
  • 垃圾回收机制
  • Java的加载和执行
  • JDK、JRE、JVM关系
    • 安装JDK以及配置PATH
    • JDK目录说明
  • 第一个Java程序
    • javac命令和java命令的具体用法
      • javac命令的用法:
      • java命令的用法:
  • Java注释
    • java的三种注释
    • javadoc注释用法
  • public class和class的区别
  • Java类路径
  • Java字节码不是机器码

JavaSE JavaEE JavaME

JavaSE

是Java的标准版,包含了Java语言的核心部分,包括基础类库、虚拟机和开发工程等,主要用来开发桌面应用程序、控制台程序和小型服务器端应用程序等。

JavaEE

是Java的企业版,在JavaSE的基础上扩展而来,主要用于开发大型企业级应用程序,如电子商务系统、ERP系统和CRM系统等,JavaEE包含了许多企业级技术如servlet、JSP、EJB、JMS、JTA等。

JavaME

是Java的微型版主要用于嵌入式设备和移动设备上的应用程序开发,如手机、平板电脑、数码相机、路由器等,JavaME的特点是体积小速度快资源占用少可以在较小的内存和处理能力的设备上运行。

Java语言跨平台性

Java语言“一次编写到处运行”,Java语言是跨平台语言,编写一次可以在不同操作系统中运行。
Java语言是如何解决跨平台问题:Java开发团队用C++编写了一个虚拟的电脑,称之为Java虚拟机(JVM),Java语言的程序可以在不同的操作系统和硬件平台上运行,这是因为Java程序被编译成字节码,而不是机器码,字节码可以在任何支持Java虚拟机的平台上运行,实现原理:不同的操作系统上安装属于自己的Java虚拟机,而Java虚拟机屏蔽了各个操作系统之间的差异,从而做到跨平台。
图片来自于动力节点视频

垃圾回收机制

Java语言采用的垃圾回收机制(Garbage Collection 简称GC),也就是自动内存管理机制,在传统的编程语言中。程序员需要手动分配和释放内存 ,容易出现内存泄露和悬挂指针等问题,而Java语言采用的垃圾回收机制可以自动分配和释放内存,避免了这些问题。

Java的加载和执行

  • Java分两个阶段:编译阶段、运行阶段。Java语言是混合型语言(即是解释性语言又是编译性语言)。
  • 编译:1.检查语法规则是否合法。2.将你的程序翻译成字节码。3.字节码文件 .class 无法直接被操作系统使用,需要JVM。
  • 运行:JVM把class字节码文件解释成机器码。

编译过程:由javac完成;
解释过程:由java完成。
图片来自于动力节点视频

JDK、JRE、JVM关系

  • JDK是Java开发工具包;
  • JRE是Java运行时的环境,保函Java虚拟机和运行Java程序所需的类库等文件;
  • JVM是Java程序的运行环境。
    在这里插入图片描述
  • JRE可以独立安装。
  • PATH环境变量和Java没有关系,是WINDOWS自带的。

安装JDK以及配置PATH

  • 安装JDK网址: https://www.oracle.com/java/technologies/downloads/
  • 配置JDK:在这里插入图片描述在这里插入图片描述

JDK目录说明

  • bin目录:包含JDK的可执行文件(命令),如java、javac等。
  • lib目录:包含jdk的类库和其他支持文件,如:JVM库、JDBC驱动程序等。
  • lib/src.zip文件:保函jdk的源代码,用于开发者进行Java开发。
    在这里插入图片描述在这里插入图片描述

第一个Java程序

public class HelloWorld{ 
  public static void main(String[] args){
	System.out.println("hello,world");
  }
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

javac命令和java命令的具体用法

javac命令的用法:

javac[选项] java源文件的路径。(javac后面一定跟的是一个文件的路径;路径包括相对路径和绝对路径;相对路径是相对于当前位置而言的,从当前位置作为起点出发)
在这里插入图片描述在这里插入图片描述

  • javac *,java (编译所有的java文件)
    在这里插入图片描述

java命令的用法:

java后面跟类名(A.class 类名就是A)

  • CLASSPATH:类路径,是java语言特有的环境变量;当没有配置环境变量classpath,类加载器classloade默认在当前路径下加载;如果classpath配置后,类加载器会从配置的路径下加载。
    在这里插入图片描述classpath:C:\abc; .
    配置环境:C盘下的abc路径和当前路径(. 代表当前路径)

Java注释

在这里插入图片描述

java的三种注释

1.单行注释:“ // ”
2.多行注释:“ /* / ”
3.文档注释:" /
*
*这是一个文档注释,用于生
*成API文档,可以被javadoc
*注释
*/ "

javadoc注释用法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public class和class的区别

  • 一个java源文件中可以定义多个class
  • 每个class都会生成对应的class字节码文件;例如:class F { } 则编译后就会生成 F.class 字节码文件。
  • public的class有且只有一个,并且public的class类名必须与java源文件名称一致。

在这里插入图片描述

Java类路径

Java中的类路径是指JVM在搜索类文件(.class文件)时所用的路径,当需要加载一个类时,JVM会安装一定的程序在类路径中查找该类的字节码文件,如果找到了该文件则会加载该类并创建相应的对象。(CLASSPATH)

Java字节码不是机器码

操作系统无法直接识别字节码;JVM可以识别字节码并将其解释翻译为机器码,再用机器码与底层平台进行交互。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/742356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Transformer网络学习记录——基于空间约束自注意力和Transformer的RGB-D显著性检测方法研究

基于图半监督学习和图卷积的目标分割与跟踪算法研究 (wanfangdata.com.cn) 只能说看不懂,记录是为了有耐心慢消化 原文: 网络整体为通用的编码器-解码器架构 ,总体上由骨干编码器、交互编码器、RGB 解码器、深度解码器组成。 具体来说&#…

ROCKSDB原理

按照读写的性质来分 分为读少写多和 写少读多 RocksDB适用于第一种。 磁盘中的数据结构 就地写和追加写 找到某一个页 然后将数据刷入到这一个页中. 这就导致了一个问题 就是追加写入的数据冗余 由于存在数据冗余 所以必须要对数据进行一定的处理才能保持查找性能 数据以块…

langchain系列:Model I/O模块之-Prompts

文章目录 Model I/O简介输入部分(Prompts)PromptTemplatefrom_template ChatPromptTemplate langchain是基于大语言模型而开发的一个框架,既然是基于大语言模型,自然最重要的就是先要介绍Model I/O模块。 Model I/O简介 Model I/O…

Helm3安装和使用

Helm3安装和使用 1、Helm简介 Helm 是 Kubernetes 上的包管理器,用来管理 Kubernetes 应用程序,Helm Charts 可帮助您定义,安装和升级 复杂的 Kubernetes 应用程序。Helm 把 Kubernetes 资源(比如deployments、services或ingress等) 打包到…

ProtoBuf的学习并且制作了一个网络通讯录项目

Linux环境下载安装ProtoBuf编译器 1. 安装依赖库 Ubuntu用户选择 sudo apt-get install autoconf automake libtool curl make g unzip -yCentos用户选择 sudo yum install -y autoconf automake libtool curl make gcc-c unzip2. 下载ProtoBuf编译器 Github地址&#xff…

kmalloc与vmalloc如何选择

kmalloc和vmalloc都是Linux内核中用于内存分配的函数,但它们适用于不同的内存分配场景。 kmalloc函数用于在内核空间中分配小块(通常小于一个页面大小)的连续内存区域,这些内存区域可以用于存储内核数据结构和缓冲区等。kmalloc内…

MySQL与Oracle的粗略对比

前言 首先先说自己的感受,我第一次使用Oracle是在我第一次的实习当中,包括我也在Leetcode中做了一些题目来练习,大家也可以做做,还是有收获的。 首先,我之前一直听说Oracle是要付费的,但其实它有免费版&am…

使用nvm use 切换node版本失败

使用nvm use 切换node版本失败 exit status 1: Access is denied.(或者显示乱码)解决方法一: 使用管理员的方式运行 解决方法二: 还有一种可能,在安装nvm之前电脑中已经安装过node,所以会导致切换失败,&#xff08…

【Java练习题汇总】《第一行代码JAVA》入门介绍篇程序基本概念篇,汇总Java练习题——基础语法:变量、数据类型、运算符、控制流... ~

Java练习题 入门介绍篇&程序基本概念篇 1️⃣ 入门介绍篇习题2️⃣ 程序基本概念篇习题 1️⃣ 入门介绍篇习题 一、填空题 Java 源程序文件的后缀是_______, Java 字节码文件的后缀名称是_______。Java 程序实现可移值性,依靠的是______________。Java 语言的…

C++中的类型转化

目录 1.C语言中的类型转化 2.C强制类型转换 2.1、static_cast 2.2、reinterpret_cast 2.3、const_cast 2.4、dynamic_cast 1.C语言中的类型转化 在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与…

华为ERP思考:国产自研迈出第一步

华为的进入会刺激用友、金蝶、浪潮等国产厂商加快技术革新,以及伴随着华为自身技术自研全栈的布局和不断测试,国产ERP的兼容性和标准性都将上一个新的台阶。 作者|斗斗 编辑|皮爷 出品|产业家 15小时完成全球88家子公司Meta ERP系统的切换&#x…

c++游戏小技巧6:rand()+随机迷宫(3写法:BFS,DFS,并查集)

目录 1.前言 2.前文(rand,随机数引入) 1.rand() 2.srand,随机数种子 3.用法: 1. 生成0~RAND_MAX里面的数 2.生成大于RAND_MAX的数 3.生成负数 3.正文(确信) 1.bfs写法: 1.让迷宫全是墙确定起点 2.初始化 3.循环操作: 4.总…

路径规划算法:基于天鹰优化的路径规划算法- 附代码

路径规划算法:基于天鹰优化的路径规划算法- 附代码 文章目录 路径规划算法:基于天鹰优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法天鹰…

漏洞复现 || TerraMaster TOS exportUser.php 远程命令执行

阅读须知 技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。…

既有颜值又能打,达尔优实用之外的设计进化

对于时下不少二次元或游戏玩家来说,外设产品不再只是实用就够了,设计、风格也很重要,可盐可甜,有帅的也要有萌的,主打一个个性十足又非常实用。在这样的趋势下,达尔优的A系列,一改以往“硬朗”的设计风格,加入更多更贴合年轻人审美取向的主题配色。除此,新推出的针对女性市场的…

为什么Qt没有像其他框架一样广泛流行起来?

Qt 是一种功能强大且广泛应用的跨平台开发框架,具有许多优点。然而,以下是一些可能解释为什么 Qt 没有像其他框架那样广泛流行起来的原因: 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 知名度和推广力度&#xff1a…

GPT模型应用丨遥感云大数据在灾害、水体与湿地领域典型案例实践

​ ​ ​ ​ 第一部分 基础实践 一 平台及基础开发平台 GEE平台及典型应用案例介绍; GEE开发环境及常用数据资源介绍; ChatGPT、文心一言等GPT模型介绍 JavaScript基础简介; GEE遥感云重要概念与典型数据分析流程; …

技术导向下的业务测试何去何从?

前两天我发了篇鼓励测试人员学编程(思维)的文章《做测试到底要不要学编程?》,有不少同学在后台问我,自己底子差,实在跟不上怎么办? 看起来,应该是我没说清楚,导致大家有…

SOCVPOCV、global/local variation

Global/local variation global variation 用PVT 跟 RC-corner 来模拟;local variation 用 OCV/ AOCV/ SOCV 来模拟。在40nm 之前OCV 被广泛采用,但是OCV 对同一条path 上的所有cell 都设同一个derate 值,如果设的太严则过于悲观,…

自定义设置echarts label里的颜色

自定义echarts label里的颜色 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: bar,label:{show: true,formatter: function (params){console.log(params)if (pa…