首页 > 其他分享 >变量

变量

时间:2022-09-21 21:11:43浏览次数:46  
标签:short 变量 int 数据类型 类型 byte

概念

  • 变量:计算机内存当中存储数据的最基本的单元。
  • 变量就是内存当中的一块空间。
  • 变量有三要素:数据类型、变量名、字面值。

定义

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

int i = 10;
//int g 编译错误: 可能尚未初始化变量xxx

int j ;
j = 12;

//int a,b,c = 30 表示声明三个int类型变量a, b没有赋值,c赋值30。
int l = 11,m = 12,n = 13;
int a,b,c;
l = 20;
m = 30;
n = 40;

//System.out.println(t);编译错误: 找不到符号
//int t = 5; 在java程序的方法体当中,代码是有执行顺序要求的,遵循自上而下的顺序依次逐行执行

j = 30;//重新赋值
//int j = 30;编译错误: 已在方法 main(String[])中定义了变量 j

要点

  1. Java中每个变量必须先声明、后使用。
  2. 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  3. 变量只有在其作用域内才有效。
  4. 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
  5. 不提倡(int i ,j; // 两个变量的数据类型都是 int)这种风格,逐一声明每一个变量可以提高程序可读性。
  6. 同一个作用域{}内,不可以声明两个同名的变量。 
  7. 变量区分大小写,书写时遵循 lowerCamelCase 风格。
  8. 有两个域并且存在包含关系,允许存在同名变量,但是遵循就近原则。       

分类

  • 按照数据类型

详细说明:
整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)
        ① byte范围:-128 ~ 127
      ② 声明long型变量,必须以"l"或"L"结尾
        ③ 通常,定义整型变量时,使用int型。
        ④整型的常量,默认类型是:int型。整型变量默认值是:0
浮点型:float(4字节) \ double(8字节)
        ① 浮点型,表示带小数点的数值
        ② float表示数值的范围比long还大
        ③ 定义float类型变量时,变量要以"f"或"F"结尾
      ④ 通常,定义浮点型变量时,使用double型。
        ⑤ 浮点型的常量,默认类型为:double。浮点变量默认值是0.0
字符型:char (1字符=2字节=1个汉字)
        ① 定义char型变量,通常使用一对'',内部只能写一个字符
        ② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量。字符变量的默认值为'\u0000'。
布尔型:boolean
      ① 只能取两个值之一:true 、 false
      ② 常常在条件判断、循环结构中使用。布尔变量的默认值为false。

  • 按照声明的位置

               

类型 声明位置 从属于 存储位置 生命周期 初始值
局部变量

方法或者语句块内部

方法/语句块 栈帧

从声明位置开始,直到方法或语

句块执行完毕,局部变量消失

局部变量在使用前必须先声明、初始化(赋初值)再使用

实例变量 方法外,不带static 对象

对象创建,成员变量也跟着创建。

对象消失,成员变量也跟着消失

如果不自行初

始化,它会自动初始化成该类型的默认初始值。

静态变量 方法外、带static 方法区

类被加载,静态变量就有效;类

被卸载,静态变量消失

如果不自行初始化,与成员变量相同会自动初始

化成该类型的默认初始值

显式转换和隐式转换

  • 显式转换 又叫强制转换。小范围数据类型 变量=(小范围数据类型)大范围数据;int n = (int)6.7;
  • 隐式转换:又叫自动转换。大范围数据类型 变量=小范围的数据; double d = 10000;
//隐式转换
short b = 12; //合法 
short b = 1234567; //非法,1234567 超出了 short 的表数范围
short s1 = 1;
s1 = s1 + 1;//s1+1 进行运算时,s1自动转换成int类型,右边运算结果是int类型,经过编译器检查,两边数据类型不一致会报错。
s1 += 1;//+= 或者 ++ 运算符会执行隐式类型转换,相当于s1 = (short) (s1 + 1);

//显式转换
int x = (int)3.14 //x = 3 强制转换可能会导致精度丢失,浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。
byte i = (byte) 128;// i = -128 字节转换可能会导致数据溢出。
int money = 1000000000; //右边的数值超过了int的范围,产生溢出行为。

类型转换的规则

  1、八种基本数据类型中,除了boolean类型之外,剩下的7种类型之间都可以进行类型转换。
  2、当整数型字面值没有超出byte、short、char取值范围,那么可以直接将它赋值给byte、short、char类型的变量。
  3、byte short char在做数学运算的时候,各自会先转换成int类型,再做运算。
  4、小容量可以自动转换成大容量。八种基本数据类型容量从小到大的顺序:
      - byte < short < int < long < float < double 
      - ​           < char
      - char和short容量相同,都是2个字节,只不过char可以表示更大的正整数。
  5、多种数据类型做混合运算,各自先转换成容量最大的类型之后再做运算。
  6、大容量转换成小容量的时候,必须添加强制类型转换符,这样编译才能通过,但是运行的时候可能会损失精度。

标签:short,变量,int,数据类型,类型,byte
From: https://www.cnblogs.com/sunlincode/p/16716901.html

相关文章

  • 指针--变量互换
    #include<stdio.h>intswap(int*p1,int*p2);intmain(){  inta=5;  intb=4;  printf("a=%db=%d\n",a,b);  swap(&a,&b);  printf......
  • Java基础06 变量、常量、作用域
    变量变量是什么:就是可以变化的量!◆Java是-种强类型语言,每个变量都必须声明其类型。◆Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。typeva......
  • 分析mybatis的#{}、${}(#绑定变量超过一定值导致Oracle挂掉)
    我后来改成了1万条,数据库相对小点压力不大,也不会出现重启的问题; 最近跟数据库干上了先说下问题起源,算奖确认订单,需要批量update订单,查了相关资料,是mybatis一次性绑定变......
  • 面试--Go函数返回局部变量的指针是否安全
    点击查看代码packagemainfuncadd(x,yint)*int{ res:=0 res=x+y return&res}funcmain(){ add(1,2)}![image](https://img2022.cnblogs.com/b......
  • 变量提升与函数提升
    一、变量提升  变量提升即将变量声明提升到它所在作用域的最开始的部分。通过var定义(声明)的变量,在定义语句之前就可以访问到;值:undefined;console.log(a);//un......
  • 第二章 变量
    一、变量介绍1什么是变量?量指的是记录事物的状态变指的是事物的状态是可以发生变化的#变量本质就是一种数据存储的机制,变量的数据都是存放于内存中的2为何要有变量?......
  • 前端面试总结02-变量类型和计算
    值类型与引用类型值类型:   引用类型常见值类型:consta//undefinedconsts='abc'constn=100constb=trueconsts=Symbol('s')常见引用类型:constobj={x:......
  • 如何使用 JavaScript 在 Camunda 外部任务中使用瞬态变量
    你怎么做使用JavaScript的Camunda外部任务中的瞬态变量在本文中,让我们看看如何在使用java脚本实现Camunda外部任务的同时使用瞬态变量。先决条件:1.卡蒙达7.1......
  • 第十一章 Ansible-playbook变量注册和Facts缓存
    一、变量注册概述当absible的模块在运行之后,其实都会返回一些result结果,就像是执行脚本,我们有的时候需要脚本给我们一些return返回值,我们才知道,上一步是否可以执行成功,但......
  • 第十章 Ansible-playbook变量基础
    一、ansible变量概述ansible变量提供了便捷的方式来管理Ansibleplaybook的每一个项目中的动态值,比如nginx-1.6.3这个软件包的版本,在其它地方或许会反复使用,那么如果讲此......