First time to know JAVA

news/2024/4/28 5:57:55/文章来源:https://blog.csdn.net/m0_69119792/article/details/127526467

文章目录

  • 前言
  • 1.JAVA语言概述
    • 1.1 JAVA是什么?
    • 1.2 JAVA语言的重要性
    • 1.3 JAVA语言的发展简史
    • 1.4 JAVA语言的特性
  • 2.初识JAVA的main方法
    • 2.1 main方法示例
    • 2.2 运行JAVA程序
  • 3.JAVA中的注释
    • 3.1 JAVA注释的基本规则
    • 3.2 JAVA注释规范
  • 4.初始JAVA中的标识符
  • 5.初始JAVA中的关键字
  • 总结

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。


前言

本篇主要让我们首次认识JAVA,了解JAVA语言,发展概述,JAVA语言的优势; 根据第一个JAVA程序认识JAVA的main方法;了解JAVA中的注释,标识符,关键字。


本文开始

1.JAVA语言概述

1.1 JAVA是什么?

Java是一种优秀的程序设计语言, 它具有令人赏心悦目的语法和易于理解的语义。

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

在这里插入图片描述

1.2 JAVA语言的重要性

  1. 语言广泛使用程度:近年编程语言排行榜
    https://www.kaifamiao.com/article/115
    图片数据来自网址,有兴趣可以点击这里
    在这里插入图片描述

1.3 JAVA语言的发展简史

Java之父:詹姆斯 高斯林
在这里插入图片描述

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语言的特性

我们将介绍Java语言的特性,我们现在可能不了解,它的具体意思,这里我们只是简单了解一下。随着我们深入了解学习,我们对这些特性会有进一步认识。

  1. 简单性:Java语法是C++语法的一个“纯净版本”,相当于对C++做了一个减法。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。
  2. 面向对象:在Java的世界里,一切皆对象。比如:人、狗、手机、电脑等都是对象。所谓面相对象,就是依靠对象之间的交互来完成事情。
  3. 分布式:Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
  4. 健壮性:Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。
  5. 安全性:Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防篡改的系统。
  6. 体系结构中立:编译器生成一个体系结构中立的目标文件格式,按照该中规范生成的文件,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。
    精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器
    代码。这就是为什么可以:“Wrice once,Run anywhere”。

在这里插入图片描述
其他语言编写的程序,在编译后如果能够严格按照字节码文件的规范生成.class文件,也可以在JVM上运行。(有相同的JDK)

  1. 可移植性:与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。
  2. 解释性:Java为了实现与平台无关,自己维护了一套基于栈架构的指令集,Java源代码经过编译之后,字节码文件中的指令就是按照自己的指令集来组织的,但是在具体硬件环境中运行时,系统并不能识别,因为Java程序在执行时,Java解释器会逐条的将字节码文件中的指令翻译成CPU的指令集。
  3. 高性能:边解释边执行,垃圾会说等导致了Java代码运行效率偏低,近年来JVM也在不断的优化,比如:JIT(即时编译器),热点代码探测,让Java程序的执行效率大幅提高,在有些场合不亚于C/C++。
    10.多线程: Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。
  4. 动态性:Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。
    Java不仅仅是一门编程语言,也是一个由一些列计算机软件和规范组成的技术体系。

2.初识JAVA的main方法

2.1 main方法示例

尝试第一个程序HelloWord!

在这里插入图片描述

【注】
1.类名必须是大驼峰MaxNum
【Zuoye】=>这是错误的,不能使用拼音!!!
2.类是public class,那么类名必须和文件名相同
3.String[ ] args (这里是形式参数):这是Java中数组的写法,与C不同
C语言:int arr[ ]; java: int [ ] arr;

程序解释:
main:方法名
void:返回值
public:访问权限修饰符(这里先了解一下)
static:静态关键字
System.out.println():相当于C语言中的printf,这里它可以自动识别,括号中是字符串就打印字符串,是整形就打印整形。

由上述代码,关于Java程序结构可分为三部分:

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

编程好习惯:java中左括号在当前行 ,并空一个格

在这里插入图片描述

小结:①类存在与源文件中,方法存在与类中,语句存于方法中②在一个源文件中只能有一个public 修饰的类,源文件名必须与public修饰的类的名字相同。

2.2 运行JAVA程序

Java是一门半编译型、半解释型语言。先通过 javac编译 程序把源文件进行编译,编译后生成的.class文件是由字节码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。
【注】javac,java在安装好JDK后就可以使用

在这里插入图片描述
注解:
1.使用笔记本或IDEA(集成开发环境)编写Java源程序
2.使用javac.exe编译器编译Java源程序,生成xxx.class的字节码文件 语法格式:java.c xxx.java(xxx => 文件名)
3.使用java运行xxx.class字节码文件 语法格式:java xxx

前提:在运行Java程序前,必须先安装好JDK(Java Development Kit即Java开发工具包),JDK里面就包含了javac和java工具,Java程序最终是在JVM(Java虚拟机)中运行的

了解JDK,JRE,JVM之间的关系

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

在这里插入图片描述

写程序时我们会出现错误,但是要尽量避免,找到错误及时改正,这是编写和运行第一个Java程序时,可能会遇到的常见错误:

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

3.JAVA中的注释

注释是为了让代码更容易被读懂而附加的描述信息. 不参与编译运行, 但是却非常重要.

我们都会遗忘以前的代码,为了一段时间后自己或者别人再次看代码时可以知道写的是些什么。我们一定要养成注释的好习惯!!!

3.1 JAVA注释的基本规则

【注】win =》 默认文件的编码格式是UTF-8,但有一些电脑是GBK,如果使用命令行会报错,我们可以使用 javac -encoding utf-8 HelloWord.java 来解决。
在记事本中编写代码,如果默认是GBK,会出现以下错误,用命令行执行代码看一下结果:

在这里插入图片描述

介绍三种Java注释:

  1. 单行注释:// 内容(常用)
  2. 多行注释(块注释):/* 内容 */ (不推荐) 【注意】:多行注释不能嵌套使用
  3. 文档注释:/** 内容 */ (常用于方法和类之上描述方法和类的作用),可以被javadoc 工具解析,生成一套以网页文件形式体现的程序说明文档

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

记事本编写的内容:

在这里插入图片描述

命令行执行文档注释:
出现一系列html文件

在这里插入图片描述

>g.cn/f1629c4377764a648409cde57ed5d62d.png)

点击index.html,进入网页会看到帮助文档

在这里插入图片描述

3.2 JAVA注释规范

  1. 内容准确: 注释内容要和代码一致, 匹配, 并在代码修改时及时更新.
  2. 篇幅合理: 注释既不应该太精简, 也不应该长篇大论.
  3. 使用中文: 一般中国公司都要求使用中文写注释, 外企另当别论.
  4. 积极向上: 注释中不要包含负能量(例如 脏话 )

4.初始JAVA中的标识符

标识符:在程序中由用户给类名、方法名或
者变量所取的名字。

规则:
标识符中可以包含:字母、数字、下划线、$符号等
【注意】标识符不能以数字开头,也不可以是关键字,且严格区分大小写

【好习惯】

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

为什么要遵循规则,养成好习惯呢?
一个大型的工程,是由多名工程师协同开发的,如果每个人都按照自己的方式随意取名,比如:person、PERSON、Person、_person,将会使程序非常混乱。如果大家在取名时能够遵守一定的约束(即规范),那多人写除的代码仿佛一个人写的。

5.初始JAVA中的关键字

关键字:是由Java语言提前定义好的,有特殊含义的标识符,或者保留字。(具有特殊含义的标识符称为关键
字)

随着Java深入学习,我们将会了解的更多的关键字,这里只是先了解一下!

在这里插入图片描述

总结

✨✨✨各位小伙伴,本篇对初学JAVA的你是否有帮助,如果能帮到你给个👍赞鼓励一下吧!!
🧨🧨🧨感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pycharm中做web应用(12)基于Django和mysql 做用户登录验证2

目录pycharm中做web应用(12)基于Django和mysql 做用户登录验证2Django的用户验证方法Django架构的数据模型数据模型实现方法1:数据模型实现方法2:代码的实现pycharm中做web应用(12)基于Django和mysql 做用户…

什么蓝牙耳机听歌好?听歌音质好的蓝牙耳机推荐

蓝牙技术已经非常先进了,很多蓝牙耳机的音质体验可以跟有线耳机媲美了。正因为蓝牙耳机的便捷,越来越多的人开始选择蓝牙耳机。如果你还在纠结听歌的音质的话,可以看看下面几款! 1、南卡小音舱蓝牙耳机 音质推荐指数&#xff1a…

IDERA ER/Studio Data Architect构建数据模型

IDERA ER/Studio Data Architect能够从用户的单个界面为多个数据库平台创建和管理数据模型。信息建模人员和架构师都希望对与小型业务需求相关的不同高度的数据做出反应。有一些关键行动可能希望他们的重点包括在内。 这些措施包括: 构建数据模型作为增长周期的一部…

LeetCode刷题day25||216.组合总和III17.电话号码的字母组合--回溯

文章目录216.组合总和III题目描述思路分析代码17.电话号码的字母组合题目描述思路分析代码216.组合总和III 题目描述 题目链接 思路分析 相对于77. 组合 (opens new window),无非就是多了一个限制,本题是要找到和为n的k个数的组合,而整个集…

基于全志T133-s3(Tina Linux)移植7寸RGB显示屏驱动

基于全志T133-s3(Tina Linux)移植7寸RGB显示屏驱动1.硬件电路2.LCD实物图3.LCD 的驱动4.uboot配置4.1.配置文件4.2.uboot设备树5.kernel配置5.1.内核配置5.2.设备树配置6.测试屏幕7.LVGL实测1.硬件电路 2.LCD实物图 3.LCD 的驱动 Tina Linux 提供了一套…

查题公众号搭建

查题公众号搭建 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击跳转…

TI Application Notes_Programming Chirp Parameters in TI Radar Devices

Application Notes_Programming Chirp Parameters in TI Radar Devices 1 介绍 system requirement and chirp configuration:系统要求决定了波形或者chirp如何配置。甲方首先提出要求,然后乙方根据要求进行chirp设计。chirp参数的不同会影响系统的参数,如Rmax,Vmax,Rre…

107.(前端)分类管理增加值实现——使用elementui中的动态编辑标签发送请求

1.概述 本节要实现的功能就是,当我们点击动态编辑标签时,丢失焦点或者回车时,发送请求。 2.流程 handleInputConfirm()中,验证form输入框中是否存在值,若存在添加数据到val,若不存在,就制空va…

RHCE(逻辑卷LVM,NFS服务)

LVM逻辑卷管理, 是将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很…

《循序渐进学docker》书摘

循序渐进学docker笔记摘要 docker工作流程docker版本控制 和增量更新docker制作和下发镜像流程图windows安装 :docker官网下载docker ToolDbxdocker搭建个人博客wordpressdocker搭建本地gitlab服务docker基本概念:镜像 容器 仓库docker指令和基本用法docker工作流程

MySQL调优之关联查询优化

我们准备如下两个表,并插入数据。 #分类 CREATE TABLE IF NOT EXISTS type ( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, card INT(10) UNSIGNED NOT NULL, PRIMARY KEY (id) ); #图书 CREATE TABLE IF NOT EXISTS book ( bookid INT(10) UNSIGNED NOT NULL AU…

天翼物联亮相2022中国信息通信业发展高层论坛

近日,由中国通信企业协会主办的2022中国信息通信业发展高层论坛成功召开,天翼物联受邀出席论坛并分享了中国电信5G赋能未来的创新实践,共话“万物智联”发展未来。 本次论坛以“数智赋能 共创未来”为主题。在论坛专题报告环节,天…

同元软控新一代复杂装备虚拟试验解决方案与实践

在各类复杂装备工程研制中,试验的重要性是毋庸置疑的。试验作为整个研制流程中必不可少的环节,往往是物料、时间、经济等成本消耗最大的阶段。以航空发动机为例,据统计,现代航空发动机整体研制成本中,试验及试验所需的…

《2022中国企业数字化办公创新与实践产业研究报告》附下载丨三叠云

数字化时代已来,数字化办公工具 已成为企业数字化转型发展的基座 从思维理念到工具创新,办公从原来的物理空间走向现代化无边界的“云端” 数字化办公突破传统信息存储、挖掘、交互的藩篱,最终实现“办公协同” 需求与挑战并存&#xff0c…

数据结构——克鲁斯卡尔(Kruskal)算法

克鲁斯卡尔算法是求连通网的最小生成树的另一种方法。与普里姆算法不同,它的时间复杂度为O(eloge)(e为边数),适合于求边稀疏的网的最小生成树 。克鲁斯卡尔算法从另一途径求网的最小生成树。其基本思想是&a…

疫情下的思考:全球疫情带来的危机与机遇

目录 敬重天道,敬重万物,这也许是化解危机的根源。 共同体的优势在于分工协作降低成本;劣势在于复杂性加深,脆弱不堪。 何为共同体? 危机四伏:社会整体运行的复杂性、机动性和动物性危机。 复杂性:疫情其实是在对…

力扣算法入门刷题

1、回文数 判断输入的整数是否是回文 我的一般思路: 将输入的整数转成字符串,再将这个字符串转成字符数组c,对字符数组进行遍历,如果第i个元素与第 c.length - i - 1 元素不相等,也就是通过比较首尾元素是否相同来判断…

D. Permutation Addicts(构造)

纯思维的1900构造还是有些顶,而且全球场和div12感觉还是没有难度分数通胀的,同等的分数全球场的题质量明显高一些。 D. Permutation Addicts 题意: 我们给定一个长度为n的排列a,我们通过a按照如下方法去构造一个数组b。 确定某…

目标检测算法——YOLOv5/YOLOv7改进之结合GAMAttention

关注”PandaCVer“公众号 深度学习Tricks,第一时间送达 目录 超越CBAM,全新注意力GAM:不计成本提高精度! (一)前沿介绍 1.GAM结构图 2.相关实验结果 (二)YOLOv5/YOLOv7改进之结…

景联文科技:车企如何解决自动驾驶数据标注难题?

“AI数据是人工智能行业的燃料,对自动驾驶领域头部企业来说,为了保持自身的竞争优势并加快自动驾驶应用安全落地进程,需要依靠大量的高质量标注数据做支撑,才能有效解决自动驾驶深度学习理论上遇到的问题。数据作为AI技术的底层基…