六、Java 基础语法(下)

一、变量

1、变量的定义与使用

  • 变量就是内存中的存储空间,空间中存储着经常发生改变的数据
  • 变量定义格式:
数据类型 变量名 = 数据值
  • 使用时根据变量名使用
  • 举例如下,上面是代码,下面是输出
    在这里插入图片描述

2、变量的注意事项

  • 变量名不允许重复定义
  • 一条语句可以定义多个变量
  • 变量在使用之前一定要进行赋值
  • 变量的作用域范围

二、Debug 工具

1、Debug 介绍

  • Debug:是供程序员使用的程序调试工具。它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
  • Debug 调试,又被称为断点调试,断点其实是一个标记,告诉 Debug 从标记开始的地方开始查看。

2、Debug 加断点

  • 选择要设置断点的代码行,在行号的区域后面单机鼠标左键。
    在这里插入图片描述

3、Debug 运行

  • 在代码区域右键 Debug/调试 开始执行
    在这里插入图片描述

  • 点击Step Over/步过这个箭头,也可以直接使用键盘按F8
    在这里插入图片描述

  • 在一步步进行的过程中,查看右边变量的变化过程
    在这里插入图片描述

  • 最后点击stop结束
    在这里插入图片描述

  • 结束之后点击Console窗口,查看程序打印的内容
    在这里插入图片描述

4、删除断点

  • 如果是多个断点,可以每一个再点击一次,也可以一次性全部删除,下面展示一下一次性全部删除的操作步骤
    在这里插入图片描述

三、标识符

1、标识符概述

  • 标识符:就是给类、方法、变量等起名字的符号

2、标识符命名规则

  • 由数字、字母、下划线(_)和美元符($)组成
  • 不能以数字开头
  • 不能是关键字
  • 区分大小写

3、标识符命名规范

小驼峰命名法:

  • 规范1:标识符是一个单词的时候,所有字符小写
  • 范例1:feng
  • 规范2:标识符由多个单词组成的时候,从第二个单词开始,首字母大写
  • 范例2:fenghuai

大驼峰命名法:

  • 规范1:标识符是一个单词的时候,首字母大写
  • 范例1:Feng
  • 规范2:标识符由多个单词组成的时候,每个单词的首字母大写
  • 范例2:FengHuai

四、数据

1、计算机中的数据

ASCII 编码表:

  • ASCII 编码表:即美国信息交换标准编码,规定了现代英语、数学字符和其他西欧字符对应的数字编号。
    在这里插入图片描述

字符数据在计算机中的存储:

  • 字符存的是 ASCII 码表中对应的数字的二进制形式
  • 字符A对应的数字是65
  • 字符a对应的数字是97
  • 字符0对应的数字是48

图片和音视频等文件数据在计算机中的存储

  • 依旧采用二进制进行存储

2、数据类型的分类

  • 数据类型分为基本数据类型引用数据类型,本文章主要讲解基本数据类型,引用数据类型在后面的文章中会进行详细讲解的,大家别着急~

基本数据类型

9行4列的表格
数据类型关键字取值范围内存占用
整数byte-128~1271
short-32768~327672
int-2147483648~21474836474
long-9223372036854775808~92233720368547758078
浮点数float1.4E-45~3.4028235E384
double4.9E-324~1.7976931348623157E3088
字符char0~655352
布尔值booleantrue、false1
  • 说明:e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方

引用数据类型

  • String类

五、数据类型

1、自动类型转换

  • 当我们编程时时常存在着不同类型的变量需要与其它类型的变量同时进行计算,也存在着不同类型的变量要赋值给其他类型的变量,所以需要进行数据类型转换
  • 自动类型转换是指类型范围小的变量,可以直接赋值给类型范围大的变量
  • 下面是一些可以自动转换的类型,箭头是转换方向
    在这里插入图片描述

2、表达式的自动类型转换

  • 在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算
    在这里插入图片描述

注意事项

  • 表达式的最终结果类型由表达式中的最高类型决定
  • 在表达式中,byte、short、char是直接转换成 int类型参与运算的

3、强制类型转换

  • 类型范围大的数据或者变量,直接赋值给类型小的变量,会报错,由此我们需要进行强制类型转换
  • 强制类型转换:强行将类型范围大的变量、数据赋值给类型范围小的变量
  • 强制类型转换格式:
数据类型 变量1 = (数据类型) 变量1

注意事项

  • 强制类型转换可能造成数据(丢失)溢出;
  • 浮点型强转成整形,直接丢掉小数部分,丢掉整数部分返回

六、运算符

1、基本算数运算符

运算符
运算符作用说明
+加法3 + 4
-减法5 - 2
*乘法2 * 3
/除法6 / 3,注意:在Java中两个整数相除结果还是整数
%取余获取的是两个数据做除法的余数

2、“+”符号可做连接符

  • “+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串,举例如下:
public class Variable {public static void main(String[] args) {String fenghuai = "风槐";int shengao = 22;System.out.println(fenghuai + shengao);}
}
  • 如代码所示,“风槐”+22输出结果是“槐22”

3、自增自减运算符

符号作用
自增:++放在某个变量前面或者后面,对变量自身的值增加1
自减:--放在某个变量前面或者后面,对变量自身的值增减1

注意

  • ++ 、–只能操作变量,不能操作字面量

自增自减的使用注意事项

  • ++、–如果不是单独使用(如放在表达式中、或者同时有其他操作),放在变量前后会存在明显区别。
  • 放在变量的前面,再对变量的值进行+1、-1,先拿变量的值进行运算
int a = 10;
int b = ++a;//先加后用
  • 放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1
int a = 10;
int b = a++;//先用后加

自增自减案例

public static void main(String[] args) {int c = 10;int d = 5;int e = c++ + ++c - --d - ++d + 1 + c--;System.out.println(e);System.out.println(c);System.out.println(d);}
  • 大家先独立思考一下上面这段代码的输出结果,一定要思考,不思考看一遍一点都记不住,思考之后可以看一下下面的结果
    在这里插入图片描述

4、基本赋值运算符

  • “=”,需要从右边往左看
int a = 10;//先看“=”右边,把数据10赋值给左边的变量a存储

扩展赋值运算符

符号用法作用底层代码形式
+=a += b加后赋值a = (a的类型)a + b;
-=a -= b减后赋值a = (a的类型)a - b;
*=a *= b乘后赋值a = (a的类型)a * b;
/=a /= b除后赋值a = (a的类型)a / b;
%=a %= b取余后赋值a = (a的类型)a % b;

扩展赋值运算符的作用与特点

  • +=可以实现数据的累加,把别人的数据加给自己
  • 扩展的赋值运算符自带强制类型转换

5、关系运算符

符号例子作用结果
>a>b判断a是否大于b成立返回true、不成立返回false
>=a>=b判断a是否大于或者等于b成立返回true、不成立返回false
<a<b判断a是否小于b成立返回true、不成立返回false
<=a<=b判断a是否小于或者等于b成立返回true、不成立返回false
==a==b判断a是否等于b成立返回true、不成立返回false
!=!=b判断a是否不等于b成立返回true、不成立返回false
  • 判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔类型的值:true 或者 false。

注意

  • 再 Java 中判断是否相等一定是“==”,千万不要把“==”误写成“=”

6、逻辑运算符

  • 把多个条件放在一起运算,最终返回布尔类型的值:true、false
符号叫法例子运算逻辑
&逻辑与2>1 & 3>2多个条件必须是true,结果才是true;有一个是false,结果就是false
|逻辑或2>1 | 3>2多个条件只要有一个是true,结果就是true;全部都是false,结果就是false
!逻辑非!(2>1)取反:你真我假,你假我真。!true==false,!false==true
^逻辑异或2>1 ^ 3>1前后条件的结果相同,就直接返回false;前后条件的结果不同,就返回true
符号叫法例子运算逻辑
&&短路与2>10 && 3>2判断结果与“&”一样,过程不同:左边为false,右边不计算,直接返回false;左边为true,右边计算,结果就是右边的计算结果
||短路或2>10 || 3>2判断结果与“|”一样,过程不同:左边为true,右边不计算,直接返回true;左边为false,右边计算,结果就是右边的计算结果

注意

  • 在 Java 中,“&”、“|”:无论左边是 false 还是 true,右边都要执行。
  • 由于&&、||运算效率更高、在开发中用的更多

7、三元运算符介绍

  • 格式:
条件表达式 ? 值1:值2
  • 执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果false,返回值2。
    在这里插入图片描述

8、运算符的优先级

优先级运算符结合性
1()括号运算符从左到右
[]方括号运算符从左到右
2!、+(正好)、-(负号)一元运算符从右到左
~位逻辑运算符从右到左
++、--递增与递减运算符从右到左
3*、/、%算术运算符从左到右
4+、-算术运算符从左到右
5<<、>>位左移、右移运算符从左到右
6<、<=、>、>=关系运算符从左到右
7==、!=关系运算符从左到右
8&(位运算符号AND)位逻辑运算符从左到右
9^(位运算符号XOR)位逻辑运算符从左到右
10|(位运算符号OR)位逻辑运算符从左到右
11&&逻辑运算符从左到右
12||逻辑运算符从左到右
13?:条件运算符从右到左
14=赋值运算符从右到左

七、案例:Scanner 键盘输入

1、需求:

  • 在程序中,提示客户通过键盘输入自己的姓名、年龄,并能在程序中收到这些数据。

2、解决:

  • 不需要自己研发技术实现,Java 已经写好了实现程序,我们直接调用即可。
  • API(Application Programming Interface:应用程序编程接口)
  • Java 写好的程序,程序员可以直接拿来调用。
  • Java 为自己写好的程序提供了相应的程序使用说明书(API文档)
  • 下载 API文档,下载好后压缩到自己方便管理的地址,然后点击index.html用浏览器打开即可
    在这里插入图片描述

3、使用 Scanner 接收用户键盘输入的数据

步骤:

  • 导包:告诉程序去 JDK 的哪个包中找扫描器技术
  • 抄代码:得到键盘扫描器对象
  • 抄代码:等待接收用户输入数据
  • 举例如下:
    在这里插入图片描述

代码:

package basic.grammar;
import java.util.Scanner;public class Input {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入你的名字:");String name = sc.nextLine();System.out.println("请输入你的年龄:");int age = sc.nextInt();System.out.println("欢迎"+ age + "岁的" + name + "光临!");}
}

注意:

  • System、String 在JDK 中的 Java.lang 包下
  • lang 包不需要我们导包,是默认的包

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

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

相关文章

系统分析师16:系统测试与维护

1 内容概要 2 软件测试类型 2.1 测试类型 动态测试【计算机运行】 白盒测试法&#xff1a;关注内部结构与逻辑灰盒测试法&#xff1a;介于两者之间黑盒测试法&#xff1a;关注输入输出及功能 静态测试【人工监测和计算机辅助分析】 桌前检查代码审查代码走查以上三个都是做的…

图解网络OSI模型与TCP/IP

一、OSI模型与TCP/IP 1、OSI模型 OSI/RM&#xff08;Open System Interconnection&#xff0c;开放系统互联参考模型&#xff09;是由ISO&#xff08;国际标准组织&#xff09;创建的一个有助于开放和理解计算机的通信模型&#xff0c;OSI七层参考模型作为一套规范的标准&…

端口冲突的解决方案以及SpringBoot自动检测可用端口demo

端口冲突的解决方案 端口冲突通常发生在尝试运行两个或多个应用程序或服务时&#xff0c;它们尝试使用同一个端口号&#xff0c;导致系统无法正确分配资源。 各种端口错误 你是否遇到过下面这些报错信息呢&#xff1f; Windows 系统报错&#xff1a; 系统错误 1004 套接字操作…

[C#]使用纯opencvsharp部署yolov11-onnx图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 使用纯OpenCvSharp部署YOLOv11-ONNX图像分类模型是一项复杂的任务&#xff0c;但可以通过以下步骤实现&#xff1a; 准备环境&#xff1a;首先&#xff0c;确保开发环境已安装OpenCvSharp和必…

初始项目托管到gitee教程,开箱即用

0.本地仓库与远程仓库关联&#xff08;需先在gitee创建仓库&#xff09; ①打开powershell生成ssh key ssh-keygen -t ed25519 -C "Gitee SSH Key"-t key 类型-C 注释 生成成功如下&#xff0c;并按下三次回车 ②查看公私钥文件 ls ~/.ssh/输出&#xff1a; id_…

PPPoE协议个人理解+报文示例+典型配置-RFC2516

个人认为&#xff0c;理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息&#xff0c;更加便于理解协议。 因此本文将在PPPoE协议报文的基础上进行介绍。 PPPoE协议发展 关于PPPoE基本原理&#xff0c;可参考1999年发布的《RFC2516-A Method fo…

大模型客服的未来发展趋势

在当今数字化时代&#xff0c;大模型客服正以惊人的速度改变着客户服务的格局。随着技术的不断进步&#xff0c;大模型客服的未来发展趋势充满了无限可能。随着人工智能技术的快速发展&#xff0c;智能客服领域正迎来一场前所未有的变革。大模型客服作为其中的重要分支&#xf…

32位机器上指针大小为什么是4字节?

&#xff08;1&#xff09;32位机器可寻址内存空间位4GB。为什么&#xff1f; 32位机器的总线宽度是32位&#xff0c;每一位可以是0或者1&#xff0c;那么32位可以表示个不同的值&#xff0c;也就是能寻址到个内存地址&#xff0c;每个内存地址对应一个内存单元&#xff08;1个…

RFID学习

24.10.5学习目录 一.简介1.组成2.RFID协议3.RFID卡 一.简介 RFID被称为无线射频识别&#xff0c;其是一种通信技术&#xff0c;通过无线电讯号耦合识别特定目标并读写相关数据&#xff1b; RFID主要位于典型物联网架构中的感知层&#xff0c;其因为具有非接触式特性&#xff…

hiricacp 连接池校验机制

一、背景 项目发生告警&#xff0c;但是并没有影响业务&#xff0c;看了下日志&#xff0c;红框里面有循环调用了3次 &#xff0c;一直以为是外部的重试在重试&#xff0c;但是外部确没有重试记录&#xff0c;就深扒了代码 二、想法 我知道hikaricp获取连接之后会校验连接的有…

k8s 之安装metrics-server

作者&#xff1a;程序那点事儿 日期&#xff1a;2024/01/29 18:25 metrics-server可帮助我们查看pod的cpu和内存占用情况 kubectl top po nginx-deploy-56696fbb5-mzsgg # 报错&#xff0c;需要Metrics API 下载 Metrics 解决 wget https://github.com/kubernetes-sigs/metri…

系统架构设计师⑦:企业信息化战略与实施

系统架构设计师⑦&#xff1a;企业信息化战略与实施 信息的概念及特点 信息的定义&#xff1a; ①香农:信息就是不确定性的减少。 ②维纳:信息就是信息&#xff0c;既不是物质&#xff0c;也不是能量。 信息的特点&#xff1a; ①客观性(真伪性):也叫事实性&#xff0c;不符…

【最新华为OD机试E卷-支持在线评测】简单的自动曝光(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

神经网络激活函数列表大全及keras中的激活函数定义

一、概述 在机器学习中&#xff0c;激活函数是神经网络中的一种函数&#xff0c;用于在神经网络的每个神经元中引入非线性。没有激活函数&#xff0c;神经网络就无法学习复杂的模式&#xff0c;因为线性变换的组合仍然是线性的。 在神经网络的每层中&#xff0c;将该层所有输…

设计模式之装饰器模式(Decorator)

一、装饰器模式介绍 装饰模式(decorator pattern) 的原始定义是&#xff1a;动态的给一个对象添加一些额外的职责。 就扩展功能而言&#xff0c;装饰器模式提供了一种比使用子类更加灵活的替代方案。 在软件设计中&#xff0c;装饰器模式是一种用于替代继承的技术&#xff0c;它…

【颜色平衡树 / E】

题目 思路 DFS暴力 60分 代码 #include <bits/stdc.h> using namespace std; const int N 5010; const int M 5010; int h[N], e[M], ne[M], idx; int c[N], f; int ans; void add(int a, int b) // 添加一条边a->b {e[idx] b, ne[idx] h[a], h[a] idx ; } …

Linux防火墙-常用命令

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们经过上小章节讲了Linux的部分进阶命令&#xff0c;我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主&#x…

C语言—单链表

目录 一、链表的概念及结构 二、单链表实现 &#xff08;2.1&#xff09;基本结构定义 &#xff08;2.2&#xff09;申请节点 &#xff08;2.3&#xff09;打印函数 &#xff08;2.4&#xff09;头部插入删除\尾部插入删除 &#xff08;2.4.1&#xff09;尾部插入 &…

计算机毕业设计 基于Python的人事管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

spring揭秘26-springmvc06-springmvc注解驱动的web应用

文章目录 【README】【1】springmvc注解驱动web应用【1.1】springmvc注解驱动web应用的3个组件【1.2】springmvc注解驱动web应用代码实践 【2】springmvc常用注解【2.1】Controller注解&#xff08;标注处理器类&#xff09;【2.2】RequestMapping注解&#xff08;标注处理器类…