Java 基础入门篇(二)—— Java 基础语法

news2024/12/27 13:08:26

文章目录

  • 一、注释
  • 二、字面量
  • 三、变量
    • 3.1 变量概述
    • 3.2 变量在计算机中的底层原理
  • 四、数据类型
  • 五、关键字、标志符
  • 六、类型转换
    • 6.1 自动类型转换
    • 6.2 表达式的自动类型转换
    • 6.3 强制类型转换
  • 七、运算符
    • 7.1 基本算数运算符
    • 7.2 + 符号做连接符
    • 7.3 自增自减运算符
    • 7.4 赋值运算符
    • 7.5 关系运算符
    • 7.6 逻辑运算符
    • 7.7 三目运算符
    • 7.8 运算符优先级
  • 八、程序流程控制
    • 8.1 顺序结构
    • 8.2 分支结构
    • 8.3 循环结构
    • 8.4 跳转关键字:break、continue
  • 补充:键盘录入技术


一、注释

  • 作用: 对程序进行解释说明的文字,不影响程序的执行。
  • 分类:
    单行注释: // 注释内容
    多行注释: /* 注释内容 */
    文档注释: /**
    	 	  * 注释内容
    	 	  */ 
    
  • 注意: 文档注释的内容将来可以提取到程序说明书中去,且不影响程序执行的原因是编译后的 Class 文件中没有注释了。

二、字面量

  • 作用: 告诉程序员数据在程序中该怎么书写。
  • 分类:

    ① 整数、小数:生活中写法与程序中写法一样。
    ② 字符:程序中必须使用单引号围起来,里面只能一个字符。
    ③ 字符串:程序中必须双引号围起来,里面内容可以随意。
    ④ 布尔值:false,true。
    ⑤ 空值:null 以后的内容。


三、变量

3.1 变量概述

  • 作用: 内存中的一块区域,里面可以存储一个数据,存储的数据可以变化。
  • 格式: 数据类型 变量名称 = 初始值;
  • 赋值: 从右边往左执行。
  • 注意事项:

    ① 变量必须先声明才能使用
    ② 什么类型的变量只能存放什么类型的数据
    ③ 变量从定义开始到 } 有效,同一个有效范围内不能定义重名的变量。
    ④ 变量定义的时候可以没有初始值,但是使用前必须有初始值。


3.2 变量在计算机中的底层原理

在这里插入图片描述


四、数据类型

  • 定义变量: 数据类型 变量名称 = 初始值;
  • 作用: 约束变量只能存储什么类型的数据,帮助定义出不同类型的变量。
  • 分类: 引用数据类型、基本数据类型。引用数据类型包含String等,基本数据类型内存等信息如下:
    在这里插入图片描述
  • 注意事项:
    随便写整数字面量,默认是 int 类型,想当成 long 类型后面加 L 或 l ;
    随便写小数字面量,默认是 double 类型,想当成 float 类型后面加 F 或 f
    如:Long b = 1234567899008343; b 是 long 型,但字面量123… 超过了整型的范围,因此会报错
        Long b = 1234567899008343L; 这样则不会报错

五、关键字、标志符

  • 关键字: java自己使用的,我们不能拿来取名字。
  • 标志符: 就是我们取的名字,其规则:不能数字开头,不能用关键字,区分大小写。

六、类型转换

开发中会存在不同类型的变量或者数据赋值给其他类型的变量,也存在不同类型的数据一起运算,其结果类型要确定下来。

6.1 自动类型转换

  • 原理: 小范围类型的变量可以直接赋值给大范围类型的变量

  • 范围信息:
    在这里插入图片描述

  • 举例: 这里在给 sh 赋值时,JVM 首先将变量 b 的值转换成 short 类型然后再赋值给 sh。

    byte b = 11;   // 00001011
    short sh = b;  // 00000000 00001011 
    
  • 注意这种形式是可以的:

    char ch = 'a';
    int code  = ch; // 97
    

6.2 表达式的自动类型转换

  • 含义: 在表达式中,小范围类型的变量会自动提升成大范围运算。

  • 结论: 表达式的最终结果数据类型是由表达式中最高数据类型决定的。

  • 注意: byte short char 在表达式中,是直接提升成int运算的。

    byte a = 10;
    int b = 20;
    double c = 1.0;
    int rs1 = a + b + c;  // 报错,最高类型是 double,应用 double 接收
    double rs2 = a + b + c;  // 不报错
    
    byte i = 10;
    byte j = 20;
    byte k1 = i + j; // 报错,byte 在表达式中直接转换成 int 类型参与运算。
    int k2 = i + j;  // 不报错
    
  • 面试笔试题:

    byte b1 = 21;  byte b2 = 22;      
    byte b3 = b1 + b2 ; // 错误形式
    int  b3 = b1 + b2 ; // 不报错
    byte b3 = (byte) (b1 + b2); // 不报错
    

6.3 强制类型转换

  • 含义: 大范围类型的变量或者数据不能直接赋值给小范围类型的变量,否则报错!必须进行强制类型转换才可以。

  • 格式: 数据类型 变量 = (数据类型) 其他类型的变量 / 数据

  • 注意: 强制类型转换可能出现数据丢失。
    在这里插入图片描述

  • 注意: 浮点型类型的变量或者数据强制转换成整型,保留整数部分返回的,小数部分直接不要了。

    double a = 99.5;
    int  i = (int)a; // 99
    

七、运算符

7.1 基本算数运算符

  • 常见的算数运算符: + - * / %
  • 注意:/ 两个整数相除的结果一定是整数,可以先乘1.0,转换为浮点类型。
    10 / 3 = 3
    1.0 * 10 / 3 = 3.333....
    

7.2 + 符号做连接符

  • 场景:+ 符号与字符串一起运算时,充当连接符,连接后的结果还是一个字符串。
  • 识别技巧:从左到右,能算则算,不能算大家连在一起。
    在这里插入图片描述

7.3 自增自减运算符

在这里插入图片描述


7.4 赋值运算符

在这里插入图片描述


7.5 关系运算符

在这里插入图片描述


7.6 逻辑运算符

在这里插入图片描述


7.7 三目运算符

格式:条件表达式 ? 值1:值2


7.8 运算符优先级

运算符存在谁先谁后执行的情况:
( ) 优先级最高;*/ 高于 ±&& 优先级高于 ||


八、程序流程控制

8.1 顺序结构

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。


8.2 分支结构

  • if:可以判断条件来决定执行哪个分支,格式如下:
    在这里插入图片描述

  • switch:根据表达式的值来进行值匹配选择对应的分支执行,格式如下:
    在这里插入图片描述

  • if 和 switch 的区别:if 的功能更强大,适合做区间匹配。如果是值匹配的操作建议用switch,格式清晰,性能较好。

  • switch的注意事项
    表达式类型支持 byte、short、int、char、String,还有枚举。不支持double、float、long
    case 给出的值不允许重复,且只能是字面量,不能是变量
    不要忘记写break,否则会出现 穿透现象


8.3 循环结构

作用:控制一段代码重复的执行多次。

  • for 循环:
    在这里插入图片描述

  • while 循环
    在这里插入图片描述

  • do-while 循环:一定会执行一次循环体语句!再判断循环条件
    在这里插入图片描述


8.4 跳转关键字:break、continue

break:跳出并结束当前所在循环的执行。只能用于结束所在循环,或者结束所在 switch 分支的执行。
continue:用于跳出当前循环的当次执行,进入下一次循环。只能在循环中进行使用。


补充:键盘录入技术

在这里插入图片描述


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

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

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

相关文章

Java 基础入门篇(五)—— 面向对象编程

文章目录 一、面向对象的思想二、类的定义与对象的创建三、对象内存分配情况 ★ 3.1 两个对象的内存图3.2 两个变量指向同一个对象内存图 四、构造器4.1 构造器的格式与分类4.2 构造器的调用 五、 this 关键字六、封装七、标准JavaBean补充:局部变量和成员变量的区别…

Java 基础入门篇(六)—— String 类详解

文章目录 一、String 类概述二、String 创建对象的方式2.1 创建对象的两种方式2.2 面试:两种方式的区别 ★2.3 常见面试题 ★ 三、String 类常用方法3.1 字符串内容比较3.2 常用 API:遍历、截取、替换、分割 一、String 类概述 java.lang.String 类代表…

Java 基础入门篇(四)—— 方法的重载与参数传递机制

文章目录 一、方法的定义二、方法的参数传递机制 ★2.1 基本类型的参数传递2.2 引用类型的参数传递 三、方法重载 一、方法的定义 方法的作用:封装一段代码的语法结构,可以被重复调用,以此提高代码的复用性,提高开发效率&#xf…

【VsCode远程开发】Windows SSH远程连接Linux服务器 - 无公网IP内网穿透

文章目录 前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转…

Java 基础进阶篇(一)—— static 静态关键字与单例模式

文章目录 一、static 静态关键字1.1 静态成员变量与实例成员变量1.2 静态成员方法与实例成员方法1.3 static 访问注意事项1.4 内存使用情况 二、工具类三、代码块四、单例模式4.1 饿汉单例4.2 懒汉单例 一、static 静态关键字 static:代表静态的意思,可…

KaliLinux安装burpsuite(超详细)

注意事项 1.注意linux位数 安装jdk之前先输出uname -a,看看kali linux是32位的还是64位,例如此处我的kali是32位的,因此需下载的是32位的jdk 2.jdk版本 jdk版本最好是oracle的,若使用的是openjdk很可能会出现burpsuite闪退现象…

远程访问本地jupyter notebook服务 - 无公网IP端口映射

文章目录 前言视频教程1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 转载自远控源码文章:公网远程访问jupyter notebook【cpolar内网穿透】 前言 Jupyter Notebook&am…

【Linux】信号的保存信号的捕捉信号集零碎知识点总结

【Linux】信号的保存&信号的捕捉&信号集&零碎知识点总结 一、信号的保存1.1 信号几种概念1.2 信号在内核中的表示 二、信号的捕捉了解用户态和内核态2.1 捕捉过程2.2 信号的捕捉方法2.3 信号捕捉规则2.4 多信号屏蔽问题 三、信号集3.1 概念3.2 信号集(s…

【视频教程解读】Window上安装和使用autogluon V0.7

1.使用conda安装的python环境 教程使用的是极简版miniconda,由于我们的电脑中安装了anaconda,所以不需要进行进一步安装。python版本为3.9,博客里面有anaconda和python版本的对应关系。注意查看版本autogluon V0.4需要3.8或者3.9和3.10,pip版…

2023年第二十届五一数学建模B题:快递需求分析问题-思路详解

一、题目简析 今年的B题是一道较为综合的题目,包括了数据分析、综合评价、时间序列预测、最优化问题以及概率估计问题。考察范围广,但是整体看来题目背景简单,切入点多,难度适中。 二、逐问思路 1.问题1:附件1为该快…

私有GitLab仓库 - 本地搭建GitLab私有代码仓库并随时远程访问「内网穿透」

文章目录 前言1. 下载Gitlab2. 安装Gitlab3. 启动Gitlab4. 安装cpolar内网穿透5. 创建隧道配置访问地址6. 固定GitLab访问地址6.1 保留二级子域名6.2 配置二级子域名 7. 测试访问二级子域名 转载自远控源码文章:Linux搭建GitLab私有仓库,并内网穿透实现公…

迷你主机安装openwrt软路由系统(附启动盘制作教程+ISO、IMG镜像文件)

之前在迷你主机上刷了一个openwrt的软路由,安装过程分享给大家,镜像文件在文章末尾~ 一般需要做软路由系统的机器,是需要至少两个网口的,一个做wan口,一个做lan口 由于其他因素,不能直接将openwrt直接安装…

ChatGPT是什么?ChatGPT里的G、P、T分别指什么

文章目录 ChatGPT是什么GTP中的 生成式 是什么意思GTP中的 预训练 是什么意思GTP中的 变换模型 是什么意思 什么是Transformer什么是注意力机制 监督学Xi、无监督学Xi、强化学Xi ChatGPT是什么 GPT: Generative Pre-trained Transformer 生成式预训练变换模型 ChatGPT是由Ope…

学习RHCSA的day.02

目录 2.3常用简单命令 2.4使用Bash执行命令 2.5 命令帮助 2.3常用简单命令 常用系统工作命令 1、echo命令 echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为:“echo [字符串] [$变量]”。 这是在Linux系统中最常用的几个命令之一&am…

蒙蒂霍尔悖论

贝叶斯与频率主义对蒙蒂霍尔问题的解 在定义概率时,通常有两种思想流派:贝叶斯主义和频率主义。前者将概率视为我们对事件发生的信念程度,而后者则将其视为事件发生的相对频率。这篇文章介绍了使用贝叶斯和频率主义方法来解决著名的蒙蒂霍尔问…

C++每日一练:小艺照镜子(详解分治法)

文章目录 前言一、题目二、解题1.分析 总结 前言 大过节的,不想去看人后脑勺,就做点题来玩。挑了小艺照镜子,百分通过~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 题目名称: 小艺照镜子 …

【论文解读】(如何微调BERT?) How to Fine-Tune BERT for Text Classification?

文章目录 论文信息1. 论文内容2. 论文结论2.1 微调流程2.2 微调策略(Fine-Tuning Strategies)2.3 Further Pretrain 3. 论文实验介绍3.1 实验数据集介绍3.2 实验超参数3.3 Fine-Tuning策略探索3.3.1 处理长文本3.3.2 不同层的特征探索3.3.3 学习率探索(灾难性遗忘探…

Baumer工业相机堡盟相机如何使用ROI感兴趣区域功能( PARTIAL SCAN ROI功能的优点和行业应用)(C#)

项目场景 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具…

利用 ChatGPT4 回复的 markdown 文本生成 ppt

本篇博文不涉及账号以及基础网络知识,大伙可以自动搜索。 比如我最近要分享一篇关于 TCP 的分享,那么我可以设置如下 Prompt 我最近要做一篇关于 tcp 入门的 ppt 分享,帮我列出大纲以及需要注意的事项? 接下来就是 ChatGPT4 给…

RocketMQ的学习历程(3)----RocketMQ部署(docker版)

RocketMQ部署(docker版) 1. 部署开始前的准备 一台linux机器。(我这里使用的是阿里云的一个centos7的服务器)docker环境以及相关的简单知识。一些计算机网络的简单知识。(可以帮你透彻了解为什么这么部署) docker部署十分简单快捷…