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

day03_ 基本数据类型丶常量丶变量

基本数据类型

Java的数据类型分为两大类:

  • 基本数据类型:包括 整数、浮点数、字符、布尔
  • 引用数据类型包括 类、数组、接口... 

基本数据类型

注意事项

  • 浮点数底层存储方式与 整数不同有符号位丶指数位 丶尾数位,因此不能精确的表示一个值
  • 浮点数的取值范围,远远大于整数类型
  • double精度:科学记数法的小数点后15~16位 
  • float 精度:科学记数法的小数点后6~7位

基本数据类型详解

byte 类型

// byte字节型  占1个字节  存储范围:-128~127byte b  =127;

short 类型 

 // short短整型 占2个字节  存储范围:-32768~32767short money = 30000;

int 类型

// int 整型 默认的类型 占4个字节(默认使用的类型)  存储范围:-2的31次方 ~ 2的31次方-1
int it = 232442442;

 long 类型

/*
long 类型占内存:8个字节存储范围:-2的63次方 ~ 2的63次方-1
*/long lg = 132223243244244 ; 报错
/*
注意:随便写一个整数字面量默认是int类型的,
132223243244244虽然没有超过long的范围,
但是它超过了本身int类型的表示范围。
*/// 如果希望随便写一个整数字面量当成long类型,需要在其后加L/l
lg = 132223243244244L;

float 类型 

// float单精度 占4个字节  精度:科学记数法的小数点后6~7位
float f = 98.5; 报错
// 注意:小数字面量默认是double类型,如果希望写的小数字面量是float类型的需要在其后加上 F / f
float score = 98.5F;

double类型

// 6、double双精度 占8个字节 小数的默认数据类型  精度:科学记数法的小数点后15~16位
double score2 = 999.99;

char类型

   /*占内存:2个字节字符常量的几种表示方式如下所示*/// 方式一:'一个字符'
char c = 'a';// 方式二:转义字符
c = '\t';// 方式三:\u字符的Unicode编码值的十六进制型
c = '\u5c1a';//方式四:直接给char类型变量赋值十进制的0~65535之间的Unicode编码值
c = 655;

boolean布尔类型

// 布尔类型 boolean 只能存储true或false
boolean rs = true;
boolean rs2 = false;

常量

常量就是在程序执行的过程中,其值不可以发生改变的量

常量的分类:

  • 自定义常量:通过final关键字定义
// java 内置的常量 使用final 定义的
System.out.println(Math.PI); //3.141592653589793
  • 字面值常量:字面量就是数据在程序中的书写格式,字面量也是常量

示例

public class Constant {public static void main(String[] args) {// 1、整数System.out.println(66);System.out.println(-23);// 2、小数System.out.println(99.5);// 3、字符:必须单引号围起来,有且仅能有一个字符System.out.println('中');System.out.println('0');System.out.println('\n'); // \n换行System.out.println('\t'); // \t空格System.out.println('a');// 4、字符串:必须双引号围起来,内容可以随意System.out.println("");System.out.println("我爱你中国!abc");System.out.println("    学习Java使我快乐!~~~");// 5、布尔类型:true falseSystem.out.println(true);System.out.println(false);// 6、空类型 null (以后再详细说明!)//null  不能直接输出}
}

变量 

变量 就是用来存储一个数据的内存区域(可以理解成盒子),且里面存储的数据可以变化。我们声明一个变量,实质就是申请一块内存。

变量的三要素

  • 数据类型:决定空间大小,和数据类型
  • 变量名:只要是合法的标识符即可
  • 变量值:变量中具体存储的数据
声明变量同时赋值

示例

// 数据类型 变量名 = 初始化值; 
int age = 18;
System.out.println(age);

变量也可以先声明,后赋值

        /*先声明,后赋值(使用前赋值即可)数据类型 变量名;变量名 = 初始化值;*/double money;money = 55.5;System.out.println(money);

还可以在同一行定义多个同一种数据类型的变量,中间使用逗号隔开。但不建议使用这种方式,降低程序的可读性。

        int a = 10, b = 20; // 定义int类型的变量a和b,中间使用逗号隔开System.out.println(a);System.out.println(b);int c,d; // 声明int类型的变量c和d,中间使用逗号隔开c = 30;d = 40;System.out.println(c);System.out.println(d);

变量的使用方式

通过变量名直接引用 变量内存空间存储的值

        int age = 18;//输出变量的值System.out.println(age);

变量参与运算

     age = age + 1;//年龄增加1岁

变量重新赋值

      int age = 15;//对变量重写赋值时  前面一定不要加 数据类型  否则 相当于 重新声明一个新的变量 会 报错age  = 18;

使用变量时的注意事项

某个变量存储了其他类型的数据
  int age = "年龄";  //错误 不兼容的类型: java.lang.String无法转换为int

变量的有效范围是从定义开始到“}”截止,同一个范围内部不能定义2个同名的变量。所谓的有效范围是:变量从内存开辟到内存释放过程

      int age = 18;//  double age = 18.8; 错误 : 已在方法 main(java.lang.String[])中定义了变量 age

变量定义的时候可以没有初始值,但是使用的时候必须给初始值

        int age;//  System.out.println(age);  错误:可能尚未初始化变量age

定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围

  //  long age = 1545454546654;  错误: 过大的整数: 1545454546654long age = 1545454546654L;

定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容

     // float f = 3.14;  错误:不兼容的类型: 从double转换到float可能会有损失float f = 3.14F;
变量存在访问范围,超过范围会报错
        {int age = 15;System.out.println(age);}// System.out.println(age); 错误:java: 找不到符号

方法体当中的代码遵循自上而下的顺序依次逐行执行,变量先访问,再声明肯定是不行的 

    public static void main(String[] args) {// System.out.println(myAge); 错误 java: 找不到符号int myAge = 15;}

示例:定义所有基本数据类型的变量和字符串变量并输出

public class Demo05Variable {public static void main(String[] args) {// 定义字节型变量byte b = 100;System.out.println(b);// 定义短整型变量short s = 1000;System.out.println(s);// 定义整型变量int i = 123456;System.out.println(i);// 定义长整型变量long l = 12345678900L;System.out.println(l);// 定义单精度浮点型变量float f = 5.5F;System.out.println(f);// 定义双精度浮点型变量double d = 8.5;System.out.println(d);// 定义布尔型变量boolean b1 = false;System.out.println(b1);// 定义字符型变量char c = 'A';System.out.println(c);// 定义字符串变量String s1 = "HelloWorld";System.out.println(s1);}
}

相关文章:

  • UE自动索敌插件Target System Component
  • Linux_su命令
  • 三类思维坐标空间与时空序位信息处理架构
  • 6.DOS
  • AI编译器对比:TVM vs MLIR vs Triton在大模型部署中的工程选择
  • 自动化测试项目1 --- 唠嗑星球 [软件测试实战 Java 篇]
  • 百度后端开发一面
  • vue3+ts项目 配置vue-router
  • HarmonyOS NEXT第一课——HarmonyOS介绍
  • Java实现区间合并算法详解
  • 2025A卷华为OD机试真题-数组二叉树(C++/Java/Python)-100分
  • 学习springboot-条件化配置@Conditional(条件注解)
  • 数字智慧方案5872丨智慧交通解决方案(54页PPT)(文末有下载方式)
  • AI大模型-RAG到底能做些什么?
  • 镜像和容器的深度介绍和关系
  • 使用xlwings计算合并单元格的求和
  • 改进算法超详细:双变异樽海鞘群算法:从最优性能设计到分析
  • MySQL数据库上篇
  • 怎么实现动态提示词,并提升准确率
  • 【IPMV】图像处理与机器视觉:Lec9 Laplace Blending 拉普拉斯混合
  • 美国将于6月14日举行阅兵式,美媒报当天是特朗普生日
  • 澎湃读报丨央媒头版头条集中刊发:大国应有的样子
  • 美“群聊泄密门”始作俑者沃尔兹将离职
  • 侧记|“五五购物节”启动!最大力度补贴,买买买 “666”
  • 李强签署国务院令,公布修订后的《中华人民共和国植物新品种保护条例》
  • 【社论】法治是对民营经济最好的促进