Java 基础入门篇(一)—— Java 概述

news2024/12/26 23:19:56

文章目录

  • 一、Java 概述
  • 二、Java 的产品 JDK
    • 2.1 JDK 安装
    • 2.2 Java与 Javac 介绍
    • 2.3 Java 程序的开发步骤
  • 三、Java 程序的执行原理
  • 四、JDK 的组成
  • 五、Java 的跨平台工作原理


一、Java 概述

  Java 是 sun 公司在 1995 年推出的一门计算机高级编程语言,其语言风格接近人类的自然语言,写程序简单易懂。Java 的流行度很高,商业占用率很高,并且有很重要的特性:可移植性。

  Java的技术体系:JavaSE 标准版JavaEE 企业版、JavaME 小型版。标准版,指 Java 技术的核心和基础。企业版,指大型互联网企业级解决方案。小型版,指移动应用的解决方案。


二、Java 的产品 JDK

Java 的 产品是 JDK,又称 Java 开发者工具包,必须安装 JDK 才能使用 Java 语言。


2.1 JDK 安装

Oracle官网下载:https://www.oracle.com/java/technologies/downloads/

环境变量Path的配置:

  • 目前较新的 JDK 安装时会自动配置 javac、java 程序的路径到 Path 环境变量中去,因此 javac、java可以直接使用。(注:老版本的 JDK 没有配置 Path 环境变量,需要自己手动配置)
  • 在环境变量里面设置 JDK 的 bin 目录的地址,JAVA_HOME 是 JDK 所在目录,如:
    在这里插入图片描述
  • JDK 1.8 版本安装参考:jdk1.8的安装与环境变量配置
  • 同时安装两个版本的JDK参考:同时安装两个jdk

验证 JDK 安装成功的方式:
  查询 JDK 的版本号,在 cmd 命令行窗口中分别输入 javac -versionjava -version 看版本提示,如果版本提示与自己安装的版本号一致,则代表 JDK 环境搭建成功。


2.2 Java与 Javac 介绍

在这里插入图片描述
注:Java 程序是高级语言,计算机底层是硬件不能识别这些语言,必须先通过 javac 编译工具进行翻译,然后再通过 java 执行工具执行才可以驱动机器干活。


2.3 Java 程序的开发步骤

编写代码、编译代码、运行代码

在这里插入图片描述
执行 HelloWorld.java 文件,先输入命令 javac HelloWorld.java,再输入命令 java HelloWorld

在这里插入图片描述
注:jdk11 开始支持 java 直接运行源代码文件。


三、Java 程序的执行原理

Java程序最终会翻译,解释成计算机能识别的机器语言:000111…这样的形式驱动机器干活。

补充:BUG,代表程序出现问题或者漏洞的意思;DEBUG,解决问题的意思。


四、JDK 的组成

JVM:虚拟机真正运行 Java 程序的地方
核心类库:Java自己写好的程序,给程序员自己的程序调用的。
JRE:Java的运行环境。
JDK:Java开发工具包,包括上面所有。

在这里插入图片描述

  运行 HelloWorld.java 程序,首先需要通过 javac 开发工具进行编译,然后通过 java 开发工具会将编译后的 class 文件送入 JVM 中,在 JVM 运行的过程中,会调用一些核心类库。


五、Java 的跨平台工作原理

一次编译,处处可用。
在这里插入图片描述


文章参考:Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)

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

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

相关文章

音视频技术开发周刊 | 291

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 谷歌将 AI 芯片团队并入云计算部门 追赶微软和亚马逊 OpenAI推出的ChatGPT获得一定成功,微软是OpenAI的重要投资者,它将ChatGPT植入必应搜索&#…

Java 基础入门篇(三)—— 数组的定义与内存分配

文章目录 一、数组的定义1.1 静态初始化数组1.2 动态初始化数组1.3 数组的访问 二、数组的遍历三、数组的内存图 ★3.1 Java 的内存分配3.2 数组的内存图3.3 两个数组变量指向同一个数组对象 四、数组使用的常见问题补充:随机数 Random 类 一、数组的定义 数组就是…

机器视觉工程师职场四点“心态>交流=思路>知行合一”

视觉人机器视觉团队,他们热爱机器视觉行业,爱学习,爱分享。这一路上,首先感谢粉丝们805天一如既往的支持。我想团队拥有这些粉丝,是富有的,也是我们一直创作的动力。 是否记得毕业季,自己的豪言壮语。希望你毕业三年后,无论结果如何,不忘初心,继续前行。 机器视觉工程…

Dart - 爬取Android Studio历史版本信息

文章目录 前言开发环境开发过程1. 遵循robots协议2. 页面结构分析3. Dart项目创建4. Dart项目运行与调试5. 第三库依赖6. 项目完整源码 运行结果最后 前言 整理Android Studio历史版本信息时发现有点多,于是想一劳永逸写一个简单的爬虫抓取一下数据并生成我想要的格…

【ansys】网格划分-优化、改善网格质量、修复网格、减小skewness、增大Orthogonal Quality的技巧

一、分析几何结构网格划分拓扑关系,调整网格尺寸 优化策略1:如果发现质量差的网格单元聚集在某一个实体附近,基本说明是这个实体的网格划分定义存在优化的地方。 例如下面这个几何模型。一个薄壁状长方体,加上一个模具框架&#x…

代码优美,搬砖不累:探索高质量代码之路

一、 前言 写出高质量代码是每个程序员的追求,也是提高自己编程能力的必经之路。高质量的代码可以提高软件的可维护性、可读性、可扩展性和可移植性等,降低软件开发和维护的成本。本文将介绍一些如何写出高质量代码的实用技巧和方法。 二、高质量代码的…

搞定Maven全功能,来从根上理解Maven拉包原理

依赖 生命周期与插件 模块聚合 模块继承 属性 版本管理 环境配置 私服 <dependencyManagement>的作用 在一次需求迭代中&#xff0c;我要求同事把写好的 RPC 接口打好包上传到公司私服上。然而&#xff0c;她并不熟悉 Maven&#xff0c;仅仅掌握了最基础的使用方…

【24】linux进阶——初识shell

大家好&#xff0c;这里是天亮之前ict&#xff0c;本人网络工程大三在读小学生&#xff0c;拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识&#xff0c;希望能提高自己的技术的同时&#xff0c;也可以帮助到大家 另外其它专栏请关注&#xff1a; 锐捷数通实验&…

管家婆辉煌Ⅱ 13.32版安装方法

因管家婆辉煌版已经长期不更新&#xff0c;现已经出现蓝屏的问题&#xff0c;故此新开此贴&#xff0c;慢慢更新安装方法。 首先管家婆下载地址&#xff1a;http://www.grasp.com.cn/download.aspx?id116 先安装sql server 2008 下载后&#xff0c;运行安装&#xff0c;请注…

《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第八章课后习题参考答案

第八章 面向对象技术与UML 课后习题参考答案 一、单项选择题 D &#xff08;2&#xff09;C &#xff08;3&#xff09;B &#xff08;4&#xff09;D &#xff08;5&#xff09;C &#xff08;6&#xff09;B &#xff08;7&#xff09;A &#xff08;8&#xff09;C&…

【LeetCode】343. 整数拆分

343. 整数拆分&#xff08;中等&#xff09; 方法一&#xff1a;数学推导 思路 将数字 n 拆分为若干个数字之和&#xff0c;即 n n1 n2 ... na &#xff0c;本道题等价于求解 max(n1 * n2 * ... * na) &#xff0c;根据数学推导&#xff0c;可以得到两个结论&#xff1a;…

【51单片机】LED点阵屏

&#x1f38a;专栏【51单片机】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Waiting For Love】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 目录 &#x1f354;74HC595图片 &#x1f354;74HC59…

多层感知器模型与模型训练

文章目录 1. 多层感知器模型与模型训练1.1 多层感知器模型1.2 损失函数1.3 优化器与初始化模型1.4 编写训练循环1.5 案例代码整合 最近看了日月光华老师的《PyTorch深度学习简明实战》&#xff0c;将里面的代码自己动手复现了一遍&#xff0c;还是受益良多&#xff0c;书里面的…

【Python】狂肝两万字带你学会——类与对象

目录 01-初始对象 生活中的数据组织 程序中的数据组织​编辑 使用对象组织数据 总结01 02-类的成员方法 类的定义和使用 成员变量和成员方法 成员方法的定义语法 注意事项 成员方法——代码演示 总结02 03-类和对象 现实世界的事物和类 类和对象 使用类和对象…

Android 9.0 原生SystemUI下拉通知栏每条通知默认展开

1.前言 在9.0的系统rom原生开发中,在产品对SystemUI下拉通知栏做定制的时候,在下拉状态栏的时候,通知栏中 最后一条通知默认是收缩的 点击按钮 就会展开 原生系统systemui就是如此,为了更美观 所以要求最后一条通知也默认展开,显得更美观 最终效果图: 2.原生SystemUI下拉通…

网络通信原理

网络通信原理目录 1.网络通信基础1.1 IP地址1.2 端口号 2. 通信协议2.1 协议简介2.1 协议分层 3. 封装和分用 1.网络通信基础 &#x1f604;网络通信的目的是网络数据传输&#xff0c;是主机的不同进程间&#xff0c;基于网络实现的数据传输。那么&#xff0c;首先我们应该先弄…

Java实现调用外部程序

Java实现调用外部程序 Java库Runtime类与ProcessBuilder类参数传递执行结果Runtime类的使用ProcessBuilder类的使用无参数调用简单参数调用复杂参数调用 Apache Commons Exec库使用步骤介绍使用实例 Java库 在Java中&#xff0c;可以通过Runtime类或ProcessBuilder类来实现调用…

看看人家的MyBatis批量插入数据优化,从120s到2.5s,那叫一个优雅!

粗略的实验 最后 最近在压测一批接口的时候&#xff0c;我发现接口处理速度比我们预期的要慢。这让我感到有点奇怪&#xff0c;因为我们之前已经对这些接口进行了优化。但是&#xff0c;当我们进行排查时&#xff0c;发现问题出在数据库批量保存这块。 我们的项目使用了 myb…

开源小项目ChatGPT-website已获得100+star,我都干了什么

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

微信小程序学习实录1(wxml文档、引入weui、双向数据绑定、提交表单到后端)

微信小程序学习实录 一、wxml文档二、新建页面快捷方式三、微信小程序引入weui四、双向数据绑定1.wxml渲染层2.js逻辑层 提交表单到后端五、微信小程序跳转到H5 一、wxml文档 <!-- index.wxml --> <view><!-- 数据绑定 --><view><text>{{name}}…