JAVA基础-变量

什么是变量?

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

int finger = 5;

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

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

变量的基本类型

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

类型字节数值范围
byte81-128~127
short162-32768~32767
int324-2147483648~2147483647
long648。。。

浮点型(2种)

float

double

默认的小数值是double类型的

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

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

float f2 = 54.321f

类型字节
float324
double648

字符型(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(); 
           }
      }

基本类型转换

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

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

小杯子往大杯子里倒东西,大杯子怎么都放得下
大杯子往小杯子里倒东西,有的时候放的下,有的时候就会有溢出
在这里插入图片描述
低精度向高精度转换
int比较小,要放进比较大的long,随便怎么样,都放的进去。
在这里插入图片描述
同理,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;
这时只能采用强制转换,强制转换的意思就是,转是可以转的,但是不对转换之后的值负责
在这里插入图片描述
除此之外
虽然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

变量的作用域

变量处于不同的位置,其作用域是不一样的,且有不同的名称
分别是
1.字段,属性
当一个变量被声明在类下面 变量就叫做字段 或者属性、成员变量、Field 比如变量i,就是一个属性。
那么从第2行这个变量声明的位置开始,整个类都可以访问得到 所以其作用域就是从其声明的位置开始的整个类
2.参数
如果一个变量,是声明在一个方法上的,就叫做参数 参数的作用域即为该方法内的所有代码 其他方法不能访问该参数 类里面也不能访问该参数
3. 局部变量
声明在方法内的变量,叫做局部变量
其作用域在声明开始的位置,到其所处于的块结束位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值