变量和数据类型

2023-11-14

变量概述

变量: 它是在程序中最为基本的一种单一数据的存储方式。顾名思义它代表的就是存储的数据可以改变 (可以改变的量、值)。

变量的组成

变量的数据类型 变量名 = 变量值;

数据类型

数值类型:

  • 整数类型:1 、2 、3 、0 、-1 ...
    • byte:1字节,-128 ~ 127
    • short:2字节,...
    • int :4字节,... 在 Java 中定义一个整数,默认的数据类型就是 int
    • long:8字节,...
  • 浮点类型:3.14 、1.9 、0.01 ...
    • float:4字节,...
    • double :8字节,... 在 Java 中定义一个整数,默认的数据类型就是 double

非数值类型: 

  • 布尔类型:
    • boolean :true(真)、false(假)
  • 字符类型:
    • char, 'a' '1' '男' .... 使用单引号引起来的 1 个字符
  • 字符串类型(字符串类型):(注: 这是一个特殊的类型,和其他类型不同!后期会介绍,先了 解,先会用)
    •                         String, "abc" 、 "小孙" "男" .... 使用双引号引起来的字符​​​

 

 变量名(程序员最头疼的问题之一)

代码不仅仅是给机器看的,更应该是给人看的。 

Java 中变量命名的规范:  

1.(语法要求)可以使用数字、字母、下划线( _ )、美元符号( $ )组成,其中数字不能开头
2. (语法要求)不能使用关键字和保留字
例如:public、class、static、void、byte ...
  • 关键字/词:在语言中已经被赋予了特殊含义的单词
  • 保留字/词:在语言中目前还没被赋予特殊含义,但未来极大可能有特殊含义的单词  
3. (规范要求)见名知义
  • 正例:存储姓名:name、存储年龄:age、存储地址:address
  • 反例:存储姓名:a、存储年龄:b ...
4. (规范要求)不要将拼音和英文混合(拼音和英文、汉字等...)
  • 反例:存储我的姓名:myXingMing
  • 也可以考虑使用拼音,但是不是太推荐。
5. (规范要求)多个单词的变量命名
  • 使用驼峰命名法
           stuname -> stuName  
           驼峰命名法(小驼峰命名法):首字母小写,多个单词的情况下,后面的每个单词首字母大
           写。 例如:stuName
           帕斯卡命名法(大驼峰命名法):每个单词的首字母大写,它适合用于类名。例如:                        HelloWorld
  • 使用蛇形命名法(下划线连接法)
stuname -> stu_name

变量的定义(重点)  

声明变量的同时并赋值
变量数据类型 变量名 = 变量值 ;
// 先声明变量再进行赋值
变量数据类型 变量名 ;
变量名 = 变量值 ;
// ...其他了解,不推荐
// 声明变量并赋值
String name = "小孙" ;
int age = 18 ;
char gender = '女' ;
double money = 0.01 ;
boolean isMarry = true ;
System . out . println ( name );
System . out . println ( age );
// 声明变量再赋值
String address ;
address = "北礼士路100号" ;
// 改变变量的值:对变量再次赋值
name = "小李" ;
age = 10 ;
// 变量的使用:通过变量名来使用
// 字符串之间通过 + 号进行拼接
System . out . println ( "我的名字: " + name );
// 与字符串使用 + 号拼接的任何内容最终都变为了字符串
System . out . println ( "我的年龄:" + age + "岁" );
System . out . println ( "我的性别:" + gender );
System . out . println ( money );
System . out . println ( isMarry );
System . out . println ( address );

 人机交互(键盘录入,输入语句)

Scanner:扫描器,实现在控制台上的输入功能。

  1.  导入

                  import java.util.Scanner;(在类声明的上方导入)

      2.创建对象(创建实例)

                 Scanner input = new Scanner(System.in);

      3.使用(使用Scanner提供的方法)

  •                   输入整数:nextInt()
  •                    输入浮点数:nextDouble()
  •                    输入字符串:next()
  •                     ...

 常量

在定义变量时,如果有一些数据不需要被二次更改,可以定义为常量。
final:最终的
final 常量数据类型 常量名 = 常量值 ;
常量的命名规范:为了区分变量和常量,常量名要求所有字母都大写,多个单词的情况下使用下划线连接。
例如:MY_NAME

常见的运算符

赋值运算符

// 将 张三 赋值给了 name 变量
String name = "张三" ;  
name = "李四" ;  

注意:在 Java 语言中, = 不再是数学中相等的概念而是赋值的概念。

算术运算符

  • +
  • -
  • *
  • /
  • % 取模,前期先理解为取余数
  • ++ 自增1,可以理解为先做自增再做赋值
  • 自减1
int num1 = 2 ;
// num1 = num1 + 1  
num1 ++ ;

        【 前自增和自减或后自增和自减的区别

      在使用变量时,进行了自增或自减:  
      ++或--在前,它就先进行自增或自减再使用变量。
      ++或--在后,它就先使用变量原来的值然后再自增或自减。
int num1 = 5;
System.out.println(num1); // 5
num1 ++;
System.out.println(num1 ++); // 6  输出完后,num1 = 7;


int num2 = 5;
++ num2;
System.out.println(num2); // 6
System.out.println(++ num2); // 7
System.out.println(num2); // 7

         特殊的 char

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码。
需要记住的两个标准是:
a :97
A :65
char alpha = 'a';
// 先将alpha转换为数值进行计算,然后再赋值给char类型的变量,98对应的是字符b
// alpha = alpha + 1 -> alpha = 97 + 1 -> alpha = 98
// alpha ++;
// System.out.println(alpha); // b


// 当char类型要进行算术计算,会先转换为相应的ASCII码表数值,然后再计算
// 97 + 1 System.out.println(alpha + 1); // 98

复合赋值运算符

  • +=
  • -=
  • *=
  • /=
  • %=
int num1 = 10 ;
// num1 = num1 + 2
num1 += 2 ;
System . out . println ( num1 ); // 12

先将符号两侧的值进行相应的算术运算,计算之后再将结果赋值给变量。   

关系运算符(比较运算符)

  • >
  • >=
  • <
  • <=
  • == 相等
  • != 不相等

 关系运算符的计算结果是一个 boolean 值,只有 true 或 false。

逻辑运算符 

  • && 与,理解为 并且 ,所有参与逻辑运算的条件都为真,结果才为真(只要有一个为假,结果为假)                                         ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​按住 shift + 7,单个 & 符号 
  • || 或,理解为 或者,所有参与逻辑运算的条件,只要有一个为真,结果为真                                    按住 shift + \,单个 | 符号
  • ! 非,理解为 取反,真会变为假,假会变为真
// 5 <= a <= 10 
int num = 6;
// boolean result = 5 <= num <= 10; 
boolean result = (num >= 5 && num <= 10); 
System.out.println(result);

 有了逻辑运算符,就可以用来去做更为复杂的关系运算。

三元运算符

三元运算符/三目运算符。
三元运算符由三元素(三个部分)组成。
// 条件表达式成立(true)执行表达式1,不成立(false)执行表达式2
条件表达式 ? 表达式1 : 表达式2 ;  
它的结果是由表达式决定的。例如:表达式1和表达式2是字符串,结果就是字符串类型;如果是int,结果就是int类型。
表达式1和表达式2它两个必须是相同数据类型的。
double bmi = 22; 
String result = bmi > 25 ? "您已经超重" : "您没有超重"; 
System.out.println(result);

数据类型转换

自动类型转换: 在数值类型中,取值范围小的数据类型可以 自动 类型转换为取值范围大的数据类型。
强制类型转换: 在数值类型中,取值范围大的数据类型,如果要转换为取值范围小的数据类型,需要做强制类型转换。强制类型转换的时候会损失数据的精度。
// 自动类型转换
// 1:int a = 10;
// 2:double num = a; 
double num = 10; 
System.out.println(num); // 10.0

// 强制类型转换 
int num2 = (int) 10.5; 
System.out.println(num2); // 10 (取整,砍掉小数位)

// 自动类型转换
int num3 = 'a'; 
System.out.println(num3); // 97

int num4 = 99; 
char alpha = (char) num4; 
System.out.println(alpha); // c

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

变量和数据类型 的相关文章

  • 添加动态数量的监听器(Spring JMS)

    我需要添加多个侦听器 如中所述application properties文件 就像下面这样 InTopics Sample QUT4 Sample T05 Sample T01 Sample JT7 注意 这个数字可以多一些 也可以少一些
  • Grails 2.3.0 自动重新加载不起作用

    我最近将我们的项目升级到 grails 2 3 0 一切工作正常 除了每当我更改代码时自动重新加载都无法工作的问题 这包括所有项目工件 控制器 域 服务 gsps css 和 javascript 文件 我的旧版本 grails 可以正常工
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • 如何在 JSP 中导入类?

    我是一个完全的JSP初学者 我正在尝试使用java util List在 JSP 页面中 我需要做什么才能使用除以下类之外的类java lang 使用以下导入语句进行导入java util List 顺便说一句 要导入多个类 请使用以下格式
  • 如何从一个代码库创建多个 Android 应用

    我有一个 Android 代码库 它使用带有设置的 API 来获取多个应用程序的不同数据 所有应用程序都使用相同的代码库 但进行一两个设计调整 那么如何重用主代码库而不必每次都复制整个 Android 项目呢 iPhone 在同一个项目中使
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • 将表值参数与 SQL Server JDBC 结合使用

    任何人都可以提供一些有关如何将表值参数 TVP 与 SQL Server JDBC 一起使用的指导吗 我使用的是微软提供的6 0版本的SQL Server驱动程序 我已经查看了官方文档 https msdn microsoft com en
  • Java 8 中函数式接口的使用

    这是来自的后续问题Java 8 中的 双冒号 运算符 https stackoverflow com questions 20001427 double colon operator in java 8其中 Java 允许您使用以下方式引用
  • RSA OAEP、Golang 加密、Java 解密 -BadPaddingException:解密错误

    我正在尝试解密使用 RSA OAEP 在 Golang 中加密的字符串 但出现 BadPaddingException 解密错误 很难弄清楚我错过了什么 这是Golang加密方法 func encryptString rootPEM io
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 尝试使用等于“是”或“否”的字符串变量重新启动 do-while 循环

    计算行程距离的非常简单的程序 一周前刚刚开始 我有这个循环用于解决真或假问题 但我希望它适用于简单的 是 或 否 我为此分配的字符串是答案 public class Main public static void main String a
  • 如何通过 Inno Setup for NetBeans 使用自定义 .iss 文件

    我将 Inno Setup 5 与 NetBeans 8 一起使用 并且我已经能够创建一个安装程序来安装该应用程序C users username local appname 但是我希望将其安装在C Programfiles 我如何在 Ne
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐

  • AndroidStudio Connection Reset 问题

    解决方案
  • 1012.数字分类- PAT乙级真题

    给定一系列正整数 请按要求对数字进行分类 并输出以下 5 个数字 A 1 能被 5 整除的数字中所有偶数的和 A 2 将被 5 除后余 1 的数字按给出顺序进行交错求和 A3 被 5 除后余 2 的数字的个数 A 4 被 5 除后余 3 的
  • mpVue 微信小程序用户授权及wx.getUserProfile代替wx.getUserInfo获取用户信息及判断用户是否已经授权;不弹出微信授权窗口;只能使用头像、昵称填写能力

    一 前言 2021年4月15日整改 为 优化用户的使用体验 平台将进行以下调整 1 2021年2月23日起 若小程序已在微信开放平台进行绑定 则通过wx login接口获取的登录凭证可直接换取unionID 2 2021年4月13日后发布的
  • select框既可以手输入也可以选择

  • typescript封装axios

    import axios AxiosInstance AxiosResponse AxiosError from axios 定义返回数据类型 interface ResponseData code number message strin
  • vs code python_VSCode:无法识别术语“ python”……但是py可...

    我刚刚在VS Code上安装了python 但无法使用python命令运行任何python代码 python命令 似乎默认情况下使用python命令 但无法识别它 当我右键单击并选择 运行代码 时 它会抱怨 无法将 python 识别为内部
  • 树莓派 Raspberry 4B 刷机、上网、录音外设、文件传输、电脑投屏问题汇总

    硬件 重要 一定要用正版品牌方的的sd卡 比如闪迪 读写速率至少要class10 否则开启启动很慢 界面很卡 上网连接 开机连接wifi后 wifi名字和密码会被写入配置文件中 开机密码 默认开机密码 raspberry 可修改 也可去掉开
  • sklearn.impute.SimpleImputer 数据填充

    数据缺失值补全方法sklearn impute SimpleImputer imp SimpleImputer missing values np nan strategy mean 创建该类的对象 missing values 也就是缺失
  • python不放回抽样_PYTHON :有(无)放回简单随机抽样

    模拟概率论中的无放回简单随机抽样问题 问题 从1 2 3 4 5中无放回的抽取三个数字 组成一个三位数 并输出 顺序编程 易理解 import random 1 目标数字集合 number set 1 2 3 4 5 2 抓取第一个数字 f
  • mybatis 注解方式批量插入

    原文地址 http blog csdn net isea533 article details 21237175 foreach一共有三种类型 分别为List array Map三种 foreach的第一篇用来将List和数组 array
  • java内存区域简介以及GC机制

    目录 前言 1 java内存区域简介 1 1 方法区 Method Area 1 2 堆区 Heap 1 3 程序计数器 pc 寄存器 1 4 Java 虚拟机栈 JVM Stacks 1 5 本地方法栈 Native Mthod Stac
  • Activiti7源码分析

    文章目录 Activiti7源码分析 整体架构 命令模式 责任链模式 事务拦截器 命令上下文拦截器 流程定义解析 Activiti之PVM执行树 核心理念 PVM对流程定义期的描述 PVM对流程运行期的描述 PVM综述 ActivitiIm
  • vue 如何实现页面操作之后自动刷新

    近半年时间在接触vue写pc页面 文中内容即在实际的开发过程中遇到的实际问题 需要在app vue文件按照如下代码设置
  • 三分钟训练眼球追踪术,AI就知道你在盯着哪个妹子

    圆栗子 编译整理量子位 出品 公众号 QbitAI 啊 老板的眼神飞过来了 还不快切回工作界面 从前 我们几乎无从躲避来自身后的目光 但现在不一定了 如果有个眼球追踪AI 加上人脸识别 或许就能在被老板盯上的瞬间 进入奋力工作模式 戏是有点
  • c++中的this指针

    c 中的this指针 两个对象的比较 多个对象的比较 this指针存放了对象的地址 它被作为隐藏参数传递给了成员函数 指向调用成员函数的对象 调用者对象 this指针存放了对象的地址 this可以表示对象 两个对象的比较 注意 这里的p3是
  • 555定时器

    一 定义 定时器是一种多用途的数字 模拟混合集成电路 可极方便的构成施密特触发器 单稳态触发器和多谐振荡器 其简化原理图及引脚定义如下所示 3个绿色电阻 电阻值为5K 2个黄色和粉色比较器 1个紫色SR触发器 1个蓝色放电三极管 引脚定义
  • 【满分】【华为OD机试真题2023 JAVA&JS】组装新的数组

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 组装新的数组 知识点回溯数组 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 给你一个整数M和数组N N中的元素为连续整数 要求根据N中的元素组装成新的数组R 组
  • PyCharm配置opencv4.5.1

    PyCharm配置opencv4 5 1 一 下载 二 安装 三 环境配置 一 下载 首先我们需要拥有PyCharm软件 opencv4 5 1和pip程序包 下载链接如下 PyCharm https www jetbrains com p
  • (转载)js弹出窗口总结6种弹窗方法

    关闭 父窗口弹出对话框 子窗口直接关闭 this Response Write 关闭 父窗口和子窗口都不弹出对话框 直接关闭 this Response Write 弹出窗口刷新当前页面width 200 height 200菜单 菜单栏
  • 变量和数据类型

    变量概述 变量 它是在程序中最为基本的一种单一数据的存储方式 顾名思义它代表的就是存储的数据可以改变 可以改变的量 值 变量的组成 变量的数据类型 变量名 变量值 数据类型 数值类型 整数类型 1 2 3 0 1 byte 1字节 128