Java 入门

目录

        Java简介

        Java JDK开发环境配置

        第一个Java程序

        Java标识符与关键字

        Java注释

        Java常量

        Java变量的定义和使用


Java简介

Java简介:

Java是由Sun Microsystems公司于1995年推出的一门面向对象的高级程序设计语言,可以运行于多个平台,其创始人为James Gosling。而后于2010年Oracle(甲骨文)公司收购Sun Microsystems,之后就由Oracle公司负责Java的维护和版本升级。毫无疑问,Java语言可以说是最近十余年发展最迅速、影响也越大的一门编程语言,与C语言、C++常年位列“兵器榜”前三,且时不时的冲上榜一,或许是时代的需要,无论是Web应用开发还是移动端安卓生态,大家听到最多的莫过于Java了,这就是Java的影响力。

Java入门

Java的分类,总体来说Java分为三类,分别是:

JavaSE(J2SE)(Java 2 Platform Standard Edition,Java平台标准版)

JavaEE(J2EE)(Java 2 Platform Enterprise Edition,Java平台企业版)

JavaME(J2ME)(Java 2 Platform Micro Edition,Java平台微型版)。

Java语言特点:

作为主流开发语言,之所以这么长久不衰,一定有自己的独特之处,除了C、C++等语言的都有的特性之外,罗列几项Java特有的特性如下:

  1. 跨平台特性

    所谓的跨平台,是因为Java的代码只需一次编写、处处执行,即不关心什么平台,只要有JVM虚拟机即可运行,真正做到跨平台。

  2. 简单性

    所谓的简单,并非单纯的语法简单,如舍弃了C++中继承复杂的一些问题,舍弃了C中的指针,自动垃圾回收机制使得动态内存管理也不用担心内存泄露,除此之外,由于和C/C++常规语法非常相似,因此有C/C++基础的同学学起来会非常顺利。

  3. 解释性

    Java语言首先是需要编译的,但编译之后的代码并非像C/C++一样的机器码,而是字节码,只要是Java的虚拟机都可以解释执行,这种特性使得编译之后的Java语言既能跨平台又可以执行速度很快。

  4. 健壮性

    强类型机制、垃圾回收、异常处理使得Java开发出来的程序更有安全的保证。

Java JDK开发环境配置

与其他语言一样,学习和使用Java语言需要提前准备下载和安装编译器,即JDK,JDK是英文Java Development Kit的缩写,即Java开发工具,它包含了支持Java编译运行的一切环境,下面我们开始到官方下载,地址是:Java Downloads | Oracle

打开的滚动找到如下位置:

JDK开发环境配置

大家根据自己的系统是windows还是linux选择对应的下载。

PS:因为官方可能会更新,因此大家打开的链接可能与本教程的图片不一致,不影响配置思路。

以windows平台为例,大家可以选择第二个exe文件下载并安装,安装完成之后进行最重要的环境变量的配置,配置窗口位于:右键我的电脑-属性-高级系统设置,在高级的选项卡中点击环境配置。

以JDK1.8版本为例,分别添加以下三个环境变量:

变量名:JAVA_HOME

变量值:C:\Program Files (x86)\Java\jdk1.8.0_91        // 要根据自己的实际路径配置

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;        //记得前面有个"."

变量名:Path

变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

配置完成之后,可以用过以下方式验证是否安装和配置成功,打开命令提示符(开始-运行-cmd)输入javac以及java vesion

若显示java的版本信息而没有显示“该命令不是内部或外部命令”就成功了!

第一个Java程序

下面我们来认个眼熟,看看最简单的Java程序长什么样子!

/*
*第一个Java程序
*/
public class Main{public static void main(String[] args) {System.out.println("Hi www.csdn.com");}
}

首先我们看到输出这个字符串的语句是一个System.out.println的语句,其实我们可以修改这个语句中双引号里的内容,修改什么就会输出什么,也就是说这个是个输出语句,我们只要把想输出的信息放到这个语句后面的双引号里就可以输出,大家可以多多尝试。

其次,我们看到println这个语句又在一个public static void main的小括号括着,这个是个叫main的方法,它是程序的入口点,也就是说全部的代码从这里开始执行,pirntln则是这个方法中的唯一一条语句,而main方法前面的public static表示这个main方法是一个公开访问的静态方法。

然后接着再往外层看,public static void main这个函数又在public class Main这个小括号的里面,public class Main则是一个类,同样public表示这个类的访问权限是公开的,class是一个关键字表示,后面Main是类名

Java标识符与关键字

与其他语言类似,Java语言也需要标识符和关键字作为Java语法的支撑。

标识符

Java中标识符是为方法、变量或其他用户定义项所定义的名称。在 Java 语言中,标识符的组成规则如下:

标识符由数字(0~9)和字母(A~Z和a~z)、美元符号($)、下划线(_)以及Unicode字符集中符号大于0xC0的所有符号组合构成(各符号之间没有空格)。并且标识符的第一个符号只能为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。

此外,Java严格区分大小写,比如DOTcpp和dotcpp是两个不同的标识符。

标识符分为两类,分别为关键字用户自定义标识符

关键字是有特殊含义的标识符,例如true、false表示逻辑的真假。

用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,比如定义变量时候dotcpp就是一个标识符。

提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。

例如以下合法与不合法标识符。

合法标识符:date、$2011、_date、D_$date等。

不合法的标识符:123.com、9com、for、if等。

标识符用来命名常量变量类的对象等。因此,一个良好的编程习惯要求命名标识符时,应赋予它一个有意义或有用途的名字。

关键字

关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。
Java的关键字对Java编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等。保留字是为Java预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。

Java语言目前定义了51个关键字,这些关键字不能作为变量名、类名和方法名来使用,以下对这些关键字进行了分类。

数据类型:boolean、int、long、short、byte、float、double、char、class、interface。

流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。

修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。

动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。

保留字:true、false、null、goto、const。

需要注意的是,由于Java区分大小写,因此public是关键字,而Public则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名,防止代码出现意外,也提高代码的可读性。

Java注释

所谓注释,就是对代码的说明和解释,是给人看的,并不会被编译器按照Java语法处理,因此是可以写汉语可以随意写的,但是需要格式约束,那么它支持以下三种:

1. 行注释

以//开头,表示这一行全部为注释,如:

//今天天气很好
public class Main{
public static void main(String[] args) {System.out.println("Hi www.csdn.com");}
}

2. 段注释

以/*开头,以*/结束,在这之间的都会当做注释看待,适合内容较多、多行显示的注释信息,如:

/*
今天天气很好
太阳当空照
花儿对我笑
*/
public class Main{
public static void main(String[] args) {System.out.println("Hi www.csdn.com");}
}

3. 文档注释

以/**打头,以*/结束,不同于段注释,文档注释会将/**和*/之间的内容归档与javadoc中,在生成Html报告中被识别显示出来,用于记录程序信息,通常对类、方法、模块的开头往往使用文档注释,这其中还支持用@标识出各种标签。

/**
Author:Huang
Data:2021/9/25
*/
public class Main{
public static void main(String[] args) {System.out.println("Hi www.csdn.com");}
}

Java常量

与其他语言一样,Java中也有常量的概念,常量顾名思义是恒定不变的值,他不可以被修改。下面我们来了解一下Java中的各种常量。

常量分类

1. 整型

Java的整型常量值主要有如下 3 种形式。

十进制数形式:如156、-32、0。

八进制数形式:Java中的八进制常数的表示以0开头,如015表示十进制数13,-013表示十进制数-11。

十六进制数形式:Java中的十六进制常数的表示以0x或0X开头,如0x100表示十进制数256,-0x16表示十进制数-22。

整型(int)常量默认在内存中占32位,是具有整数类型的值,当运算过程中所需值超过32位长度时,可以把它表示为长整型(long)数值。在一些教材或题目中,有时长整型类型则要在数字后面加L,如235L,表示一个长整型数,它在内存中占64位。

2. 实数

Java的实型常量值主要有如下两种形式。

十进制数形式:由数字和小数点组成,且必须有小数点,如23.4、-110.0。

科学记数法形式:如1.68e10或3&E5,其中e或E之前必须有数字,且e或E之后的数字必须为整数。Java实型常量默认在内存中占64位,是具有双精度型(double)的值。如果考虑需要节省运行的系统资源,而运算时的数据值取值范围并不大且运算精度要求不高的情况,可以把它表示为单精度型(float)的数值。单精度型数值一般要在该常数后面加F或f,如69.7f,表示一个float型实数,它在内存中占32位(取决于系统的版本高低)。

3. 布尔类型

Java中的布尔型常量只有两个值,即true(真)和false(假)。

4. 字符型和字符串常量值

Java的字符型常量值是用单引号引起来的一个字符,如'a'、'A'。需要注意的是,Java字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像"123"、"dotcpp"等都是表示单个字符的字符串。

5. 转义字符

除了以上所述形式的字符常量值之外,Java还使用一种特殊形式的字符常量值来表示一些难以用字符显示的字符,这种特殊形式的字符是以\开头的字符序列,称为转义字符。

常见转义字符表如下:

转义字符说明
\uxxxx1~4 位十六进制数所表示的字
\'单引号字符
\"双引号字符
\\双斜杠字符
\r回车
\n换行
\b退格
\t缩进、制表符

本节内容理解即可,无需死记硬背,常量的概念理解之后,在后续的编码过程中如赋值、加减乘除计算时候的数值都是常量,随着我们编码量的增大,自然就会对常量有更深的了解,因此大家不必过度担忧。

Java变量的定义和使用

Java语言中的变量必须先定义再使用,定义变量的一般方式为:

类型 变量名;

类型包括int、short、char等等很多,都是固定的(我们将会在下一节进行详细介绍),我们根据实际情况需要选择什么类型,不同的类型表示了变量的占位大小,并且有对应的数据范围。而变量名则是我们用户自己起的名字,可以由我们程序员命名,但为了不引起冲突,这个名字遵循标识符的要求,即:

1)首字符必须是字母、下划线(_)、美元符号($)或者人民币符号(¥)。

2)标识符由数字(0~9)、大写字母(A~Z)、小写字母(a~z)、下划线(_)、美元符号($)、人民币符号(¥)以及所有在十六进制0xc0前的ASCII码组成。

3)不能与关键字、保留字重名。

4)标识符的长度没有限制。

5)标识符区分大小写。

下面我们可以尝试定义一个如整型的变量,如下:

int number;

即整型的变量关键字int空格number,其中number为我们自己起的名字,注意后面要英文分号结束,大家可以亲自上机尝试定义其他变量。

很明显的,如果我们起的变量名叫char,如:

int char;

很明显,这是错误的,因为它与标识符重名了。

变量的赋值与初始化

在Java中,变量的赋值有两种,第一种是在变量定义的时候进行赋值,这种也叫做初始化,第二种是单独一条赋值语句进行赋值,赋值使用赋值运算符(=)进行。

如上面的变量number我们可以如下进行赋值:

int number=2020; //定义的同时进行初始化为2020

 也可以:

int number; //仅定义number变量,未赋值,默认为0
number=2021; //单独一条语句进行赋值为2021

请大家分别尝试这两种方式。

另外,Java允许同时定义多个同类型的变量并进行多个变量的初始化操作,如:

int number1=1999,number2=2000,number3=2049;

这种方式也是可以的,大家根据实际情况使用,需要注意变量一定赋值了再使用,不然变量本身的数没有意义,会得不到想要的结果。

希望大家理解的基础上多多练习。

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

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

相关文章

CSS--两列网页布局,三列布局和多行多列布局

两列网页布局 两列网页布局实验 先将一个未运用浮动效果的网页结构写出来 <style>header{/* 给页眉设置宽高和样式 */width:1000px;height: 40px;background-color: gray;border: 3px brown solid;margin-bottom: 5px;}article{width:1000px;height: 600px;background-c…

开源与商业的碰撞TPFLOW与Gadmin低代码的商业合作

随着数字化转型的浪潮席卷全球&#xff0c;企业对于高效、灵活的软件开发需求愈发迫切。低代码开发平台应运而生&#xff0c;为企业提供了简化开发流程、缩短开发周期的解决方案。在众多低代码开发平台中&#xff0c;Gadmin企业级低代码平台、TPFLOW工作流和SFDP超级表单脱颖而…

Edge浏览器提示“无法安全下载”

Edge浏览器在下载某些文件时&#xff0c;会提示“无法安全下载”。 注意事项&#xff1a;如果确实需要下载该文件&#xff0c;首先核对网址&#xff0c;确保下载文件的安全性&#xff0c;并在下载完成后进行必要的病毒查杀。 解决方法&#xff1a; 点击右侧的3个点&#xff0…

微服务系列三:微服务核心——网关路由

目录 前言 一、登录存在的问题归纳 二、*微服务网关整体方案 三、认识微服务网关 四、网关鉴权实现 五、OpenFeign微服务间用户标识信息传递实现 六、微服务网关知识追问巩固 前言 本篇文章具体讲解微服务中网关的实现逻辑、用于解决什么样的问题。其中标题中标注* 涉…

Docker入门系列——网络

Docker 通过容器化应用程序&#xff0c;彻底改变了我们构建、分发和运行应用程序的方式。然而&#xff0c;有效使用 Docker 的一个关键方面是理解容器如何相互通信以及与外界通信。 1. 什么是 Docker 网络&#xff1f; Docker 网络允许容器相互通信以及与外部资源通信。默认情况…

2024年大厂AI大模型面试题精选与答案解析

前言 随着AI市场&#xff0c;人工智能的爆火&#xff0c;在接下来的金九银十招聘高峰期&#xff0c;各大科技巨头和国有企业将会对AGI人才的争夺展开一场大战&#xff0c;为求职市场注入了新的活力。 为了助力求职者在面试中展现最佳状态&#xff0c;深入理解行业巨头的选拔标…

Nico,从零开始干掉Appium,移动端自动化测试框架实现

开头先让我碎碎念一波~去年差不多时间发布了一篇《 UiAutomator Nico&#xff0c;一个基于纯 adb 命令实现的安卓自动化测试框》&#xff08;https://testerhome.com/topics/37042&#xff09;&#xff0c; 由于种种原因 (详见此篇帖子) 当时选择了用纯 adb 命令来实现安卓自动…

RTP和RTCP的详细介绍及其C代码示例

RTP和RTCP的详细介绍及其C代码示例 RTP和RTCP简介RTP协议详解RTCP协议详解RTP和RTCP之间的关系C代码示例RTP和RTCP简介 RTP(Real-time Transport Protocol,实时传输协议)和RTCP(Real-time Transport Control Protocol,实时传输控制协议)是流媒体传输中常用的两个协议。R…

国内能用的Docker镜像源【2024最新持续更新】

国内能用的Docker镜像源【2024最新持续更新】 Docker 镜像加速列表&#xff08;2024年11月已更新&#xff09;配置方式1&#xff1a;临时使用配置方式2&#xff1a;长久有效 在国内使用 Docker 的朋友们&#xff0c;可能都遇到过配置镜像源来加速镜像拉取的操作。然而&#xff…

队列(Queue)的介绍与实现

文章目录 队列队列的概念及结构 队列的实现初始化队列销毁队列队尾入队列队头出队列获取队列头部元素检测队列是否为空获取队列中有效元素个数 队列 队列的概念及结构 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表。队列遵…

3.1 快速启动Flink集群

文章目录 1. 环境配置2. 本地启动3. 集群启动4. 向集群提交作业4.1 提交作业概述4.2 添加打包插件4.3 将项目打包4.4 在Web UI上提交作业4.5 命令行提交作业 在本实战中&#xff0c;我们将快速启动Apache Flink 1.13.0集群&#xff0c;并在Hadoop集群环境中提交作业。首先&…

[sa-token]StpUtil.getLoginId

闲聊 一般情况下&#xff0c;我们想用uid&#xff0c;可能需要前端将uid传过来&#xff0c;或者将token传来&#xff0c;然后我们进行识别。 用了sa-token之后&#xff0c;可以使用StpUtil.getLoginId()方法获取当前会话的用户id 代码展示 例如以下代码&#xff1a; public Res…

算法实现 - 快速排序(Quick Sort) - 理解版

文章目录 算法介绍算法分析核心思想三个版本运行过程挖坑法Hoare 原版前后指针法 算法稳定性和复杂度稳定性时间复杂度平均情况O(nlogn)最差情况O( n 2 n^2 n2) 空间复杂度 算法介绍 快速排序是一种高效的排序算法&#xff0c;由英国计算机科学家C. A. R. Hoare在1960年提出&a…

算法【Java】—— 动态规划之斐波那契数列模型

动态规划 动态规划的思路一共有五个步骤&#xff1a; 状态表示&#xff1a;由经验和题目要求得出&#xff0c;这个确实有点抽象&#xff0c;下面的题目会带大家慢慢感受状态标识状态转移方程初始化&#xff1a;避免越界访问 dp 表&#xff0c;所以在进行填表之前我们要预先填…

SpringBoot学生请假系统:从零到一的构建过程

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

json-server的使用(根据json数据一键生成接口)

一.使用目的 在前端开发初期&#xff0c;后端 API 可能还未完成&#xff0c;json-server 可以快速创建模拟的 RESTful API&#xff0c;帮助前端开发者进行开发和测试。 二.安装 npm install json-server //局部安装npm i json-server -g //全局安装 三.使用教程 1.准备一…

【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型

一、介绍 车辆车型识别&#xff0c;使用Python作为主要编程语言&#xff0c;通过收集多种车辆车型图像数据集&#xff0c;然后基于TensorFlow搭建卷积网络算法模型&#xff0c;并对数据集进行训练&#xff0c;最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操…

【Redis】浅析Redis大Key

目录 1、什么是Redis大Key 2、大 Key 是怎么产生的 3、大 Key 导致的问题 4、如何快速找到 Redis 大 Key 5、大 Key 优化策略 6、总结 我们在使用 Redis 的过程中&#xff0c;如果未能及时发现并处理 Big keys&#xff08;下文称为“大Key”&#xff09;&#xff0c;可能…

Rocky DEM tutorial3_Vibrating Screen_振荡筛

tutorial3_Vibrating Screen_振荡筛 文章目录 tutorial3_Vibrating Screen_振荡筛0. 目的1. 模型介绍2. 模型设置2.1 Physics设置2.2 导入几何2.3 创建一个进口的几何面2.4 定义运动 Motion frame2.5 材料设置&#xff0c;保持默认即可2.6 设置材料间的相互作用 materials inte…

小林渗透入门:burpsuite+proxifier抓取小程序流量

目录 前提&#xff1a; 代理&#xff1a; proxifier&#xff1a; 步骤&#xff1a; bp证书安装 bp设置代理端口&#xff1a; proxifier设置规则&#xff1a; proxifier应用规则&#xff1a; 结果&#xff1a; 前提&#xff1a; 在介绍这两个工具具体实现方法之前&#xff0…