【0基础学Java第一课】-- 初始Java

news2024/9/23 1:21:51

目录

  • 1. 初识java
    • 1.1 Java是什么
    • 1.2 Java应用领域
    • 1.3 Java语言发展简史
    • 1.4 Java语言特性
    • 1.5 JRE与JDK
    • 1.6 Java开发环境
      • 1.6.1 安装JDK
      • 1.6.2 配置环境变量
    • 1.7 初始Java中main函数
      • 1.7.1 JDK、JRE、JVM之间的关系
    • 1.8 注释
    • 1.9 标识符
    • 1.10 关键字

1. 初识java

1.1 Java是什么

Java是一种优秀的程序设计语言,还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。

1.2 Java应用领域

Java是跨平台语言,应用领域广泛:

  • 企业级系统
    比如大型复杂的企业级软件系统,Java的安全机制以及跨平台性的优势,其在分布式系统领域开发中有广泛应用,涉及到金融、电信、交通、电子商务、ERP系统等。
  • web开发领域
    Java语言一直是大型互联网平台的重要解决方案。
  • Android平台应用
    Android上的应用程序就是大多是用Java编写的,Android的SDK大部分就是直接将Java SDK翻译过来的。
  • 大数据平台开发
    大数据相关的各类框架如Hadoop、spark、storm、flink这些框架以及工具等大多数是用Java语言开发的。
  • 游戏、人工智能、科学计算和嵌入式

1.3 Java语言发展简史

在这里插入图片描述
Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。
在这里插入图片描述

Java 语言源于 1991 年 4 月,Sun 公司** James Gosling博士** 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个就是Java的前身: Oak (得名与Java创始人James Gosling办公室外的一棵橡树),但由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1995年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布,并提出“Write once, Run anywhere" 的口号

在这里插入图片描述

1.4 Java语言特性

  1. 简单性
  2. 面向对象
  3. 分布式(微服务)
  4. 健壮性
  5. 安全性
  6. 体系结构中立
  7. 可移植性
  8. 解释性
  9. 高性能
  10. 多线程
  11. 动态性

1.5 JRE与JDK

  • ==JRE 是 Java Runtime Environment 的缩写,指Java运行环境,==用Java开发的程序必须在JRE环境下才能正确运行.
  • JDK 是 Java Development Kit 的缩写,是Java语言的软件开发工具包,如果我们要开发java程序就必须安装JDK.

1.6 Java开发环境

1.6.1 安装JDK

直接在Oracle官网下载JDK
点击链接下载: Oracle官网

1.6.2 配置环境变量

配置环境变量的目的是在任意路径下能够直接执行命令
此电脑->属性->高级系统设置->环境变量->系统变量

1.新建JAVA_HOME
变量值是安装Java路径在这里插入图片描述
2. 编辑环境变量path
在系统变量下面点击Path,然后点击新建我们这个JAVA_HOME下面的**\bin**。
在这里插入图片描述win+r输入cmd,然后输入javac命令,即环境变量配置成功。
在这里插入图片描述

1.7 初始Java中main函数

a. 编写程序
在这里插入图片描述Java程序的结构由如下三部分呢组成:

  1. 源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。
  2. 类:类中带有一个或多个方法。方法必须在类的内部声明。
  3. 方法:在方法的花括号中编写方法应该执行的语句。

总结:类存在于源文件中,方法存于类中;语句存在于方法中。
类名必须和文件名一样在这里插入图片描述在这里插入图片描述
如果不加ln就是不换行。

b. 运行java程序
Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。
预编译 -> 编译 -> 汇编 -> 链接 -> 运行
在这里插入图片描述注意:编写和运行第一个Java程序时,可能会遇到的一些错误:

  1. 源文件名后缀不是.java
  2. 类名与文件名不一致
  3. main方法名字写错:mian
  4. 类没有使用public修饰
  5. 方法中语句没有以分号结尾
  6. 中文格式的分号
  7. JDK环境没有配置好,操作系统不能识别javac或者java命令

1.7.1 JDK、JRE、JVM之间的关系

  • JDK:Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试器工具Jconsole、jstack等。
  • JRE:Java的运行环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。
  • JVM:Java虚拟机,运行Java代码。

在这里插入图片描述

1.8 注释

  • 单行注释://(常用)
  • 多行注释:/* */(不推荐)
  • 文档注释:/** */(常见于方法和类之上描述方法和类的作用),可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档

注意

  1. 多行注释不能嵌套使用。
  2. 不论是单行还是多行注释,都不参与编译,即编译之后生成的.class文件中不包含注释信息。

1.9 标识符

硬性规则

  • 标识符包含:数字、字母、下划线和$符号等等。
  • 标识符不能以数字开头,也不能是关键字,且严格区分大小写。

软性建议

  • 类名:每个单词的首字母大写(大驼峰)
  • 方法名:首字母小写,后面字母每个单词的首字母大写(小驼峰)
  • 变量名:与方法名规则相同。

1.10 关键字

public、class以及static等颜色会发生变化,将这些具有特殊含义的标识符称为关键字。即:关键字是由Java语言提前定义好的,有特殊含义的标识符,或者保留字。
注意:用户不能使用关键字定义标识符

  • 用来定义访问权限修饰的关键字
    private、protected、public
  • 定义类,函数,变量修饰符的关键字
    abstract、final、static、synchronized
  • 定义类与类之间关系的关键字
    extends、implements
  • 定义建立实列及引用实列,判断实列的关键字
    new、this、super、instanceof
  • 用于异常处理的关键字
    try、catch、finally、throw、throws
  • 用于包的关键字
    package、import
  • 其他修饰符关键字
    native、stricfp、transient、volatile、assert

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

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

相关文章

AXI-Stream协议详解(3)—— AXI4-Stream IP核原理分析

一、前言 在之前的文章中,我们介绍了AXI-S协议的一些基础知识,这是我们进行本文学习的前置基础,因此建议在开始本文章的学习前,完整阅读以下两篇文章: AXI-Stream协议详解(1)—— Introduction…

泛微OA之获取每月固定日期

文章目录 1.需求及效果1.1需求1.2效果 2. 思路3. 实现 1.需求及效果 1.1需求 需要获取每个月的7号作为需发布日期,需要自动填充1.2效果 自动获取每个月的七号2. 思路 1.功能并不复杂,可以用泛微前端自带的插入代码块的功能来实现。 2.将这需要赋值的…

Python:一个函数可以被多个装饰器装饰

理解: 规律: 一个函数可以被多个装饰器装饰. wrapper1 wrapper2 def target():print(我是目标)规则和规律 wrapper1 wrapper2 TARGET wrapper2 wrapper1def wrapper1(fn): # fn: wrapper2.innerdef inner(*args, **kwargs):print("这里是wrapper1 …

EtherCAT主站SOEM-- 0 SOEM下载编译及文件功能介绍

0 介绍EtherCAT主站SOEM文件及主要功能函数 1. soem介绍:2 soem主要功能文件说明:3 soem下载链接4 编译soem4.1 Windows (Visual Studio):4.2 Linux & macOS: 该文档修改记录:总结 1. soem介绍: SOEM&…

BUUCTF 刮开有奖 1

这题使用IDA反汇编的话有windows编程基础会好些,看不懂跟着思路来也行 文章目录 一、基本分析二、代码分析第一处判断疑问 第二个判断第三处判断第四处判断第五处判断第五处判断 三、flag四、最后 一、基本分析 运行后 然后就什么都没有了 IDA反汇编 紫色颜色的函…

异常---

目录 认识异常 自定义异常 认识异常 1.异常是什么? 2.异常的代表是谁?分为几类? Error :代表的系统级别错误(属于严重问题),也就是说系统一旦出现问题, s u n 公司会把…

RDMA概览

RDMA(Remote Direct Memory Access,远程直接内存访问),指能够访问(读写)远程机器的内存。有多种支持RDMA的网络协议,包括:Infiniband、RoCE和iWAPP。具体的API定义包含在内核文件linux/include/rdma/ib_verbs.h reference: 【精选…

02【Git分支的使用、Git回退、还原】

上一篇:01【Git的基本命令、底层命令、命令原理】 下一篇:03【Git的协同开发、TortoiseGit、IDEA的操作Git】 文章目录 02【Git分支的使用、Git回退、还原】一、分支1.1 分支概述1.1.1 Git分支简介1.1.2 Git分支原理 1.2 创建分支1.2.1 创建普通分支1.…

如何理解my_map.yaml中origin的含义

当然可以。首先,我们先了解一下2D地图的基本构成。2D地图实际上是一个网格系统,其中每个单元格(或像素)代表现实世界中的一个区域。当我们谈论origin时,我们实际上是在描述这个网格如何在真实的3D空间中放置。 让我们通过一个简单的示意图来解释: 假设上面的矩形表示一个…

分组卷积的思想神了

大家好啊,我是董董灿。 最近,分组卷积帮我解决了一个大忙,事情是这样的。 这几天遇到一个头疼的问题,就是要在某一芯片上完成一个神经网络的适配,这个神经网络中卷积居多,并且有一些卷积的通道数很大&…

Go 命令大全:全面解析与实践

一、Go命令全列表 在这部分,我们将通过一个表格来快速浏览Go语言的所有内建命令及其基本功能。这些命令涵盖了从代码构建、测试,到依赖管理和其他工具等方面。 命令功能描述go build编译Go源文件go run编译并运行Go程序go get下载并安装依赖或项目go m…

AD9371 官方例程HDL详解之JESD204B RX侧时钟生成

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…

是谁在造谣杭州取消直播带货?

我是卢松松,点点上面的头像,欢迎关注我哦! 这个世道,谣言的传播成本很低:比如“杭州禁止直播带货”这件事。 就在今天若水跟我说:“杭州禁止直播是谣言了,辟谣了”让我也赶紧隐藏或删除内容&…

LVS集群-NAT模式

集群的概念: 集群:nginx四层和七层动静分离 集群标准意义上的概念:为解决特定问题将多个计算机组合起来形成一个单系统 集群的目的就是为了解决系统的性能瓶颈。 垂直扩展:向上扩展,增加单个机器的性能,…

YOLOv7优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列

💡💡💡本文改进:感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题 提供多种卷积变体供使用:CBAMConv,CAMConv,CAConv,RFAConv,RFCAConv RFAConv | 亲测在多个数据集能够实现…

时间、空间复杂度的例题详解

文章前言 上篇文章带大家认识了数据结构和算法的含义&#xff0c;以及理解了时间、空间复杂度&#xff0c;那么接下来来深入理解一下时间、空间复杂度。 时间复杂度实例 实例1 // 计算Func2的时间复杂度&#xff1f; void Func2(int N) {int count 0;for (int k 0; k <…

yarn install 这个命令安装如何加速

yarn install 命令用来安装项目依赖&#xff0c;其速度受多种因素影响&#xff0c;如网络速度、npm/yarn包的源服务器、以及本地缓存等。以下是一些可能帮助你加速 yarn install 的方法&#xff1a; 1. 使用国内镜像 如果你在中国&#xff0c;可以使用淘宝的 npm 镜像&#x…

【正点原子STM32连载】 第四十四章 触摸屏实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html## 第四…

ubuntu 22.04安装百度网盘

百度网盘 客户端下载 (baidu.com) 下载地址 sudo dpkg -i baidunetdisk_4.17.7_amd64.deb

Go RESTful API 接口开发

文章目录 什么是 RESTful APIGo 流行 Web 框架-GinGo HelloWorldGin 路由和控制器Gin 处理请求参数生成 HTTP 请求响应Gin 的学习内容实战用 Gin 框架开发 RESTful APIOAuth 2.0接口了解用 Go 开发 OAuth2.0 接口示例 编程有一个准则——Don‘t Repeat Yourself&#xff08;不要…