欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA基础-变量

程序员文章站 2022-05-15 09:15:39
...

什么是变量?

变量的定义是: 用来命名一个数据的标识符。

int finger = 5;

int 是数据类型,表示是整数
finger 是一个标识符
= 是赋值操作符
5 是一个数字类型的值
; 表示该行结束

变量的本质是具体的进程空间里的一个临时存储空间。
声明一个变量即:在进程中开辟一个空间分配一个随机地址,该空间拥有一个别名叫做变量名,空间中有储存某个数据的真实的物理的地址。
变量空间里存的永远是数据的地址
c语言中的指针无非只是一个变量储存了另外一个变量的地址。
储存的地址有三种类型:
常量地址->常量池
对象地址->堆内存
变量地址->同进程(指针)

变量的基本类型

整形(4种)
byte
short
int
long
区别在于不同类型的整型,数值范围不一样
如果试图给byte类型的变量赋予超出其范围的值=,就会产生编译错误,这个时候就需要进行类型转换

类型 字节 数值范围
byte 8 1 -128~127
short 16 2 -32768~32767
int 32 4 -2147483648~2147483647
long 64 8 。。。

浮点型(2种)

float

double

默认的小数值是double类型的

所以 float f = 54.321会出现编译错误,因为54.321的默认类型是 double,

在数字后面加一个字母f,直接把该数字声明成float类型

float f2 = 54.321f

类型 字节
float 32 4
double 64 8

字符型(1种)
char
用于存放一个字符(只能存放一个字符,超过一个字符就会产生编译错误),值用单引号’表示 (双引号表示字符串)
其长度为2字节/16位

布尔型(1种)
true
false
布尔型用于表示真假
其长度为1位

布尔型真正存放的数据是0(false) 1(true)
但是,不能直接使用0 1 进行赋值
注意:
Python中Sry是一种基本数学类型,但是在Java中String类型其实并不是基本类型,但是它是如此广泛的被使用,常常被误以为是一种基本类型。

变量的字面值

什么是字面值?
java的四类八种基本类型是Java语言里的一种内置的特殊数据类型,并不是某个类的对象。
所以给一个基本类型变量赋值就直接赋值操作。
而一个Hero对象赋值时会用到new关键字。

给基本类型的变量赋值的方式叫做字面值

public class HelloWorld {
    public static void main(String[] args) { 
    	   //整型
           long a1 = 26L; //以L结尾的字面值表示long型
           int a2 = 26; //默认就是int型
           int a3 = 0x1a; //16进制
           int a4 = 032; //8进制
           int a5 = 0b11010; //2进制
           //浮点型
	   float b1 = 123.4F;// 以F结尾的字面值表示float类型
	   double b2 = 123.4;// 默认就是double类型        
	   double b3 = 1.234e2;// 科学计数法表示
	   //字符与字符串
	   double  String c = "盖伦";        
	   char c= 'c';         
	   //转义字符       
	   char tab = '\t'; //制表符        
	   char carriageReturn = '\r'; //回车        
	   char newLine = '\n'; //换行        
	   char doubleQuote = '\"'; //双引号        
	   char singleQuote = '\''; //单引号        
	   char backslash = '\\'; //反斜杠


             System.out.println(); 
           }
      }

基本类型转换

不同类型之间的数据可以互相转换,但是要满足一定的转换规则

精度高的数据类型就像容量大的杯子,可以放更大的数据
精度低的数据类型就像容量小的杯子,只能放更小的数据

小杯子往大杯子里倒东西,大杯子怎么都放得下
大杯子往小杯子里倒东西,有的时候放的下,有的时候就会有溢出
JAVA基础-变量
低精度向高精度转换
int比较小,要放进比较大的long,随便怎么样,都放的进去。
JAVA基础-变量
同理,byte向short,folat向double也可以直接转换
高精度向低精度转换

byte b = 5;
int i1 = 10;
int i2 = 300;
b = i1;
b=i2;

b的类型是byte,其长度是8,最大只能放127
i1 的类型是int, 其长度是32,超过127
所以, 把int类型的数据转成为byte类型的数据,是有风险的
有的时候是可以转换的,比如 b = i1;
有的时候不可以转换 比如 b= i2;
这时只能采用强制转换,强制转换的意思就是,转是可以转的,但是不对转换之后的值负责
JAVA基础-变量
除此之外
虽然short和char都是16位的,长度是一样的
但是彼此之间,依然需要进行强制转换

char c = 'A';
short s = 80;
c = s;//之间转换会报错
c = (char)s;//强制转换成char型,编译成功

变量的命名规则

规则:
1.不能使用关键字
2.必须是一个连续的词(不能有空格)
3.由数字、字母、_、$组成
4.数字不能开头
5.严格区分大小写
规范:
1.类名 所有单词首母大小
YourGirlFriend
2.函数名,变量名 除了第一个单词外其他单词首字母大写
makeMoney
playGame
isContinue
3.常量名全大写 单词之间用_分开
play_game
_make_money

变量的作用域

变量处于不同的位置,其作用域是不一样的,且有不同的名称
分别是

字段,属性

参数

局部变量

相关标签: 变量