当前位置: 首页 > article >正文

【Java】——数据类型和变量

在这里插入图片描述
个人主页:User_芊芊君子
🎉欢迎大家点赞👍评论📝收藏⭐文章
在这里插入图片描述
在这里插入图片描述

文章目录:

  • 1.Java中的注释
    • 1.1.基本规则
    • 1.2.注释规范
  • 2.标识符
  • 3.关键字
  • 4.字面常量
  • 5.数据类型
  • 6.变量
    • 6.1变量的概念
    • 6.2语法
    • 6.3整型变量
      • 6.3.1整型变量
      • 6.3.2长整型变量
      • 6.3.3短整型变量
      • 6.3.4字节型变量
    • 6.4浮点型变量
      • 6.4.1双精度浮点型
      • 6.4.2单精度浮点型
    • 6.5字符型变量
    • 6.6布尔型变量
    • 6.7类型转换
      • 6.7.1⾃动类型转换(隐式)
      • 6.7.2强制类型转换(显式)
    • 6.8类型提升
    • 6.8字符串类型

1.Java中的注释

和C语言一样,注释的作用是为了让代码更容易被理解,虽然不被编译运行,但却不可或缺。为了方便你我他,请重视注释

1.1.基本规则

  • 单行注释://注释内容
  • 多行注释:/*注释内容 */
  • 文档注释:/** 文档注释 */(常见于方法和类之上描述方法和类的作用),可以被javadoc⼯具解
    析,⽣成⼀套以⽹⻚⽂件形式体现的程序说明⽂档

注:多行注释不能嵌套使用

1.2.注释规范

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

2.标识符

标识符是程序中用户给类名,方法名,或者变量所取的名字。

  • 标识符中可以包含:字母,数字,下划线及$符号(合法但不合理)…
  • 注意:标识符不能以数字开头,也不可能是关键字,且严格区分大小写
  • 类名:每个单词的首字母大写(大驼峰)
  • 方法名:首字母小写,后面每个单词的首字母大写(小驼峰)
  • 变量名:与方法名规则相同

3.关键字

我们在写程序时可以发现,publicclass以及static等颜⾊会发⽣变化,将这些具有特殊含义的标识符称为关键字。即:关键字是由Java语⾔提前定义好的,有特殊含义的标识符,或者保留字
在这里插入图片描述

4.字面常量

public class Test {public static void main(String[] args) {System.out.println("Hello World");}
}

在这串代码中,“Hello World”就是字面常量。
常量即程序运行期间,固定不变的量. eg:⼀个礼拜七天,⼀年12个⽉等。

public class Test {public static void main(String[] args) {System.out.println("Hello World");System.out.println(100);System.out.println(3.14);System.out.println('A');System.out.println(true);System.out.println(false);}
}

在这里插入图片描述

其中,100,3.14,‘A’,true/false都是常量,将其称为字面常量

  • 字符串常量:由 “” 括起来的,⽐如"12345"、“hello”、“你好”。
  • 整型常量:程序中直接写的数字(注意没有⼩数点),⽐如:100、1000
  • 浮点数常量:程序中直接写的⼩数,⽐如:3.14、0.49
  • 字符常量:由 单引号 括起来的当个字符,⽐如:‘A’、‘1’
  • 布尔常量:只有两种true和false
    字符串、整型、浮点型、字符型以及布尔型,在Java中都称为数据类型。

5.数据类型

Java中数据类型分为两类:基本数据类型引用数据类型
基本数据类型有四类八种:

  • 四类:整型,浮点型,字符型,及布尔型
  • 八种:在这里插入图片描述

注:

  • 不论是在16位系统还是32位系统,int都占4个字节,long都占8个字节
  • 整型和浮点型都是带有符号的
  • 整型默认是int 型,浮点型默认是double
  • 字符串属于引用类型

6.变量

6.1变量的概念

在Java中,经常改变的量,称为变量,数据类型就是用来定义不同种类的变量的

6.2语法

数据类型 变量名 = 初始值;

public class Test {public static void main(String[] args) {int a = 10;//变量a,也叫标识符double b =3.14;char c = 'A';boolean d = true;System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);a = 100;//和C语言引用,这里是将100赋值给aSystem.out.println(a);int a1 = 10, a2 = 20, a3= 30;//一行可以定义多个相同类型的变量System.out.println(a1);System.out.println(a2);System.out.println(3);}
}

在这里插入图片描述

6.3整型变量

6.3.1整型变量

public class Test {public static void main(String[] args) {//定义方法一:定义时给出初始值int a = 10;System.out.println(a);//定义方法二:赋值(使用前没有赋值的话会报错)int b;b = 20;System.out.println(b);//int型变量所能表示的范围:System.out.println(Integer.MIN_VALUE);System.out.println(Integer.MAX_VALUE);//赋值不能超过int范围}
}

int的包装类型为Integer

6.3.2长整型变量

public class Test {public static void main(String[] args) {int a = 10;long b = 10;//为了区分int和long类型,一般long类型变量的初始值后加上Llong c = 10L;}
}

注:

  • ⻓整型变量的初始值后加L或者l,推荐加L
  • ⻓整型不论在那个系统下都占8个字节
  • ⻓整型的表⽰范围为:-2^63 ~ (2^63)-1
  • long的包装类型为Long

6.3.3短整型变量

public class Test {public static void main(String[] args) {short a = 10;System.out.println(a);//范围:System.out.println(Short.MIN_VALUE);System.out.println(Short.MAX_VALUE);}
}

注意事项:

  1. short在任何系统下都占2个字节
  2. short的表⽰范围为:-32768 ~ 32767
  3. 使⽤时注意不要超过范围(⼀般使⽤⽐较少)
  4. short的包装类型为Short

6.3.4字节型变量

public class Test {public static void main(String[] args) {byte a = 10;System.out.println(a);// byte型变量所能表⽰的范围:System.out.println(Byte.MIN_VALUE);System.out.println(Byte.MAX_VALUE);}
}

注意事项:

  1. byte在任何系统下都占1个字节
  2. byte的范围是:-128 ~ 127
  3. 字节的包装类型为Byte

6.4浮点型变量

6.4.1双精度浮点型

public class Test {public static void main(String[] args) {double a = 3.14;System.out.println(a);int b = 1;int c = 2;System.out.println(b / c);//在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃⼩数部分)double m = 1.0;double n = 2.0;System.out.println(m / n);//输出0.5double x = 1.1;System.out.println(x*x);//输出1.2100000000000002}
}

在这里插入图片描述

注意事项:

  1. double在任何系统下都占8个字节
  2. 浮点数与整数在内存中的存储⽅式不同,不能单纯使⽤的形式来计算
  3. double的包装类型为Double
  4. double 类型的内存布局遵守 IEEE 754 标准(和C语⾔⼀样), 尝试使⽤有限的内存空间表⽰可能⽆限的⼩数, 势必会存在⼀定的精度误差,因此浮点数是个近似值,并不是精确值。

6.4.2单精度浮点型

public class Test {public static void main(String[] args) {float num = 1.0f;System.out.println(num);}
}

在Java中占4个字节, 不常使用

6.5字符型变量

public class Test {public static void main(String[] args) {char c1 = 'A';char c2 = '1';System.out.println(c1);System.out.println(c2);char c3 = '乾';System.out.println(c3);}
}

在这里插入图片描述

注意事项:

  1. Java 中使⽤ 单引号 + 单个字⺟ 的形式表⽰字符字⾯值.
  2. 计算机中的字符本质上是⼀个整数. 在 C 语⾔中使⽤ ASCII 表⽰字符, ⽽ Java 中使⽤ Unicode 表⽰字符. 因此⼀个字符占⽤两个字节, 表⽰的字符种类更多, 包括中⽂.
  3. char的包装类型为Character

6.6布尔型变量

布尔类型常⽤来表⽰真假

public class Test {public static void main(String[] args) {boolean a = true;//System.out.println(a);a = false;System.out.println(a);}
}

注意事项:

  1. boolean 类型的变量只有两种取值, true 表⽰真, false 表⽰假.
  2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表⽰ true, 0 表⽰ false 这样的⽤法.

6.7类型转换

Java 作为⼀个强类型编程语⾔, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验.

public class Test {public static void main(String[] args) {int a = 10;long b = 100L;b = a;a = b;//编译失败}
}

在Java中,当参与运算数据类型不⼀致时,就会进⾏类型转换。Java中类型转换主要分为两类:⾃动类型转换(隐式)强制类型转换(显式)

6.7.1⾃动类型转换(隐式)

⾃动类型转换:代码不需要经过任何处理,在代码编译时,编译器会⾃动进⾏处理。特点:数据范围⼩的转为数据范围⼤的时会⾃动进⾏

public class Test {public static void main(String[] args) {System.out.println(1024);//默认intSystem.out.println(3.14);//默认doubleint a = 100;long b = 10L;b = a;//int 类型的值⾃动转换为了long类型float m =3.14F;double n = 5.12;n = m;//float 类型的值 ⾃动转换为了double 类型}
}

6.7.2强制类型转换(显式)

强制类型转换:当进⾏操作时,代码需要经过⼀定的格式处理,不能⾃动完成。特点:数据范围⼤的到数据范围⼩的

```java
public class Test {public static void main(String[] args) {int a = 10;long b = 100L;b = a;//int--long,数据范围由小到大,隐式转换a = (int)b;//long--int, 数据范围由⼤到⼩,需要强转,否则编译失败float f = 3.14F;double d = 1.21;d = f;// float-->double,数据范围由⼩到⼤,隐式转换f = (float)d;// double-->float, 数据范围由⼤到⼩,需要强转,否则编译失败byte m = 100;// 100默认为int,没有超过byte范围,隐式转换byte n = (byte)200;// 200默认为int,超过byte范围,需要显⽰转换,否则报错}
}

注意事项:

  1. 不同数字类型的变量之间赋值, 表⽰范围更⼩的类型能隐式转换成范围较⼤的类型
  2. 如果需要把范围⼤的类型赋值给范围⼩的, 需要强制类型转换, 但是可能精度丢失
  3. 将⼀个字⾯值常量进⾏赋值的时候, Java 会⾃动针对数字范围进⾏检查
  4. 强制类型转换不⼀定能成功,不相⼲的类型不能互相转换

6.8类型提升

不同类型的数据之间相互运算时,数据类型⼩的会被提升到数据类型⼤的

int被提升为long

public class Test {public static void main(String[] args) {int a = 10;long b = 20;int c = a + b;//编译出错: a + b==》int + long--> long + long 赋值给int时会丢失数据long d = a + b;// 编译成功:a + b==>int + long--->long + long 赋值给long}
}

byte与byte之间运算

public class Test {public static void main(String[] args) {byte a = 10;byte b = 20;//byte c = a + b;//编译错误byte d = (byte)(a + b);//正确书写System.out.println(d);}
}

在这里插入图片描述

结论:
byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b会先将 a 和 b 都提升成 int, 再进⾏计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误.
由于计算机的 CPU通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现⽅便, 诸如 byte 和short 这种低于 4 个字节的类型, 会先提升成int, 再参与计算.

6.8字符串类型

public class Test {public static void main(String[] args) {String s1 = " hello";String s2 = " world";System.out.println(s1);System.out.println(s2);System.out.println(s1+s2);//将s1和s2拼接而不是进行计算}
}

在这里插入图片描述

  • int转String
public class Test {public static void main(String[] args) {int num = 10;String str1 = num + "";//方法一String str2 = String.valueOf(num);//方法二}
}
  • String转int
public class Test {public static void main(String[] args) {String str = "100";int num =Integer.parseInt(str);}
}

在这里插入图片描述

相关文章:

【Java】——数据类型和变量

个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录: 1.Java中的注释1.1.基本规则1.2.注释规范 2.标识符3.关键字4.字面常量5.数据类型6.变量6.1变量的概念6.2语法6.3整型变量6.3.1整型变量6.3.2长整…...

docker 安装常用镜像

我们在上篇文章中已经修改了daemon.json 安装镜像时如果search超时就直接pull 安装mysql docker pull mysql:5.7 启动命令 docker run --name mysql-docker -p 3306:3306 -e MYSQL_ROOT_PASSWORDroot1234 -d mysql:5.7 ocker run:运行docker容器命令 --name my…...

SpringMVC 基本概念与代码示例

1. SpringMVC 简介 SpringMVC 是 Spring 框架中的一个 Web 层框架,基于 MVC(Model-View-Controller) 设计模式,提供了清晰的分层结构,适用于 Web 应用开发 SpringMVC 主要组件 DispatcherServlet(前端控…...

MKS HA-MFV:半导体制造中的高精度流量验证技术解析

引言 在半导体先进制程(如3nm节点)中,工艺气体流量的精准控制直接决定刻蚀、沉积等关键步骤的均匀性和良率。MKS Instruments推出的 HA-MFV(High Accuracy Mass Flow Verifier) 通过创新设计解决了传统流量验证技术的…...

版本号标识

Visual Studio 16 2019 是 Microsoft Visual Studio 2019 的版本号标识。具体来说: Visual Studio 是微软提供的一款集成开发环境(IDE),用于开发各种应用程序,如桌面软件、Web 应用、移动应用等,支持多种编…...

基于Python实现手写数字识别

KNN实验——手写数字识别 实验目的: 实验内容: 实现最基本的KNN算法,使用trainingDigits文件夹下的数据,对testDigits中的数据进行预测。(K赋值为1,使用欧氏距离,多数投票决定分类结果&#…...

shell的模拟实现 ─── linux第16课

目录 第一版只能维护命令行参数表创建子进程, 执行非内建命令 第一版的执行结果: 第二版能维护命令行参数表执行cd命令 ,判断了是否是自建命令(mysell自己执行自建命令,可以对环境变量发生改变),子进程执行其他命令. 第二版执行结果: 第三版 模拟真实shell从系统文件中获取环…...

游戏引擎学习第153天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 目前正在进行的是一个比较大的系统调整,原本预计今天会继续深入这个改动,但实际上在昨天的开发中,我们已经完成了大部分的代码编写,并且运行之后几乎一切都能正常工作&#x…...

理解C语言中的extern关键字

在C语言编程中,extern关键字是一个非常重要的概念,尤其在多文件编程和全局变量的使用中。本文将详细解释extern的作用、用法以及常见的应用场景。 1. extern关键字的作用 extern关键字用于声明一个变量或函数是在其他文件中定义的。它告诉编译器&#x…...

【MyBatis Plus 逻辑删除详解】

文章目录 MyBatis Plus 逻辑删除详解前言什么是逻辑删除?MyBatis Plus 中的逻辑删除1. 添加逻辑删除字段2. 实体类的配置3. 配置 MyBatis Plus4. 使用逻辑删除5. 查询逻辑删除的记录 MyBatis Plus 逻辑删除详解 前言 MyBatis Plus 是一个强大的持久化框架&#xf…...

latex问题汇总

latex问题汇总 环境问题1 环境 texlive2024 TeXstudio 4.8.6 (git 4.8.6) 问题1 编译过程有如下错 ! Misplaced alignment tab character &. l.173 International Conference on Infrared &Millimeter Waves, 2004: 667--... I cant figure out why you would wa…...

基于Redis实现限流

限流尽可能在满足需求的情况下越简单越好! 1、基于Redsi的increment方法实现固定窗口限流 Redis的increment方法保证并发线程安全窗口尽可能越小越好(太大可能某一小段时间就打满请求剩下的都拿不到令牌了)这个原理其实就是用当前时间戳然后除窗口大小 在这个窗口大…...

力扣练习之确定两个字符串是否接近

目录 题目: 题解: 详细题解 题目: 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb 操作 2&#xff1…...

大三下找C++开发实习的感受分享

目录 找实习的过程 阶段一:投简历 阶段二:准备面试 阶段三:面试中 阶段四:面试结束后 面试真题 总结 找实习的过程 阶段一:投简历 第一次找实习还是使用BOSS这个软件进行投简历,这个过程其实挺难说…...

基于hive的电信离线用户的行为分析系统

标题:基于hive的电信离线用户的行为分析系统 内容:1.摘要 随着电信行业的快速发展,用户行为数据呈现出海量、复杂的特点。为了深入了解用户行为模式,提升电信服务质量和精准营销能力,本研究旨在构建基于 Hive 的电信离线用户行为分析系统。通…...

Makefile——make工具编译STM32工程

一、Makefile相关指令 1.1、变量 符号含义替换追加:恒等于 1.2、隐含规则 符号含义%.o任意的.o文件*.o所有的.o文件 1.3、通配符 符号含义$^所有依赖文件$所有目标文件$<所有依赖文件的第一个文件 1.4、编译器指令常用参数功能说明 符号含义举例-E预处理&#xff0c;…...

Java EE 进阶:SpringBoot 配置⽂件

什么是配置文件 “配置文件”是一个用来保护程序或者系统设置信息的文件&#xff0c;它的作用是让程序在启动或者运行中&#xff0c;能够读取这些设置并按预期进行工作&#xff0c;而不需要手动的设置。 Spring Boot 配置文件 设置服务器端口、编码格式配置数据库连接控制日…...

【redis】五种数据类型和编码方式

文章目录 五种数据类型编码方式stringhashlistsetzset查询内部编码 五种数据类型 字符串&#xff1a;Java 中的 String哈希&#xff1a;Java 中的 HashMap列表&#xff1a;Java 中的 List集合&#xff1a;Java 中的 Set有序集合&#xff1a;除了存 member 之外&#xff0c;还有…...

基于Python的电商销售数据分析与可视化系统实

一、系统架构设计 1.1系统流程图 #mermaid-svg-Pdo9oZWrVHNuOoTT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Pdo9oZWrVHNuOoTT .error-icon{fill:#552222;}#mermaid-svg-Pdo9oZWrVHNuOoTT .error-text{fill:#5…...

色板在数据可视化中的创新应用

色板在数据可视化中的创新应用&#xff1a;基于色彩感知理论的优化实践 引言 在数据可视化领域&#xff0c;色彩编码系统的设计已成为决定信息传递效能的核心要素。根据《Nature》期刊2024年发布的视觉认知研究&#xff0c;人类大脑对色彩的识别速度比形状快40%&#xff0c;色…...

EB-Cable许可管理中的数据安全与隐私保护

在数字化时代&#xff0c;数据安全与隐私保护已成为企业关注的重中之重。作为专业的电缆管理软件&#xff0c;EB-Cable许可管理不仅在功能丰富和操作便捷方面表现出色&#xff0c;更在数据安全与隐私保护方面为用户提供了坚实的保障。本文将详细介绍EB-Cable许可管理在数据安全…...

解决ubuntu(jetpack)系统下系统盘存储不够的

以下是可以安全清理的内容及操作步骤&#xff0c;按优先级和风险从低到高排序&#xff1a; 1. 清理日志文件&#xff08;低风险&#xff09; /var/log/syslog (7.1G) # 清空syslog文件&#xff08;不删除文件本身&#xff09; sudo truncate -s 0 /var/log/syslog# 或限制sys…...

【无人机路径规划】基于麻雀搜索算法(SSA)的无人机路径规划(Matlab)

效果一览 代码获取私信博主基于麻雀搜索算法&#xff08;SSA&#xff09;的无人机路径规划&#xff08;Matlab&#xff09; 一、算法背景与核心思想 麻雀搜索算法&#xff08;Sparrow Search Algorithm, SSA&#xff09;是一种受麻雀群体觅食行为启发的元启发式算法&#xff0…...

STM32_GPIO系统外设学习

按照STM32MCUWIKI、参考手册的外设介绍----->CubeF4的软件包中相关的Exmple代码----->CubeMX设置截图加深理解记忆 资料链接&#xff1a;嵌入式开发_硬软件的环境搭建 我的飞书文档-GPIO篇 如果觉得内容不错&#xff0c;欢迎给我的飞书文档点赞。同时如果有什么意见或…...

使用Java爬虫根据关键词获取衣联网商品列表:实战指南

在电商领域&#xff0c;通过关键词搜索商品并获取商品列表是常见的需求。衣联网作为知名的电商平台&#xff0c;提供了丰富的服装商品资源。本文将详细介绍如何使用Java编写爬虫程序&#xff0c;根据关键词获取衣联网商品列表&#xff0c;并确保爬虫行为符合平台规范。 一、环…...

【操作系统安全】任务1:操作系统部署

目录 一、VMware Workstation Pro 17 部署 二、VMware Workstation 联网方式 三、VMware 虚拟机安装流程 四、操作系统介绍 五、Kali 操作系统安装 六、Windows 系统安装 七、Windows 系统网络配置 八、Linux 网络配置 CSDN 原创主页&#xff1a;不羁https://blog.csd…...

下载安装启动 VMware 个人免费版本

一、进入官网并登录账号下载软件 进入官网 [ https://www.vmware.com ]&#xff0c;点击Products&#xff0c;将页面划到最底下&#xff0c;点击 “SEE DESKTOP HYPERVISORS”按钮。 然后点击 Desktop hypevisor &#xff0c;会出现如下界面&#xff0c;可以根据自己的操作系…...

C#+AForge 实现视频录制

C#AForge 实现视频录制 ​ 在C#中&#xff0c;使用AForge 库实现视频录制功能是一个比较直接的过程。AForge 是一个开源的.NET框架&#xff0c;提供了许多用于处理图像和视频的类库。 开发步骤 安装AForge库 ​ 首先&#xff0c;确保你的项目中已经安装了 AForge.Video和AFo…...

doris:外表统计信息

外表统计信息的收集方式和收集内容与内表基本一致&#xff0c;目前支持对 Hive&#xff0c;Iceberg 和 Hudi 等外部表的收集。 自 2.0.3 版本之后&#xff0c;Hive 外表支持了自动和采样收集。 注意事项​ HMS 类型的 Iceberg 和 Hudi 外表&#xff0c;以及 JDBC 外表只支持手…...

SAP SD学习笔记31 - 销售BOM

上一篇讲 前受金处理(预付款处理)。 SAP SD学习笔记29 - 前受金处理(预收款处理)_fplt 付款申请与sd 数据表的关联关系-CSDN博客 本章继续讲SAP SD模块的其他知识&#xff1a;销售BOM。 销售BOM在现场还是会用到的。 目录 1&#xff0c;销售BOM概要 2&#xff0c;受注BOM的…...