02 Java学习语言基础——变量

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44787898/article/details/102098053

Java学习语言基础02

什么是变量?

1.变量是一个代词,指代内存中的数据。

变量必须有特定的数据类型,不同的数据类型表示不同的数据存储结构。
在这里插入图片描述

2.变量的关键词-----类型

Java是强类型语言,变量在使用前必须声明,指明其数据类型、编译器会根据变量的类型检测对变量的操作是否合法

int a=100;
System.out.println(a);
System.out.println(b);//变量没有被声明
a=123.456;//对变量的赋值与变量的类型不匹配

可以一条语句声明多个同类型变量

int a,b,c;
int a1=1,b1,c1=2;

3.变量的命名

规定:
3.1 只能包含字母,数字,_,$,并且不能以数字开头
3.2 严格区分大小写
3.3 不能使用关键字(Java已经用了的)
建议:不建议中文命名变量
最好“见名知义”
驼峰命名法----第一个单词首字母小写,其余单词首字母大写

4.变量的关键词----初始化

Java变量在使用前必须初始化,及赋确定的初值,这点和C语言不同

int a;//第一次使用前必须赋以确定值
a=100;
System.out.println(a)



int a=100;//通常声明和赋初值结合在一起


int b;
System.out.println(b);//编译错误,未赋初值



int c;
if(m>0){
c=100;
}
System.out.println(c);//编译错误,if语句块可能不会执行,不能确定变量c一定会被初始化

5.变量的使用

必须与数据类型相匹配

int a=2.5;//错误,类型不匹配

6.变量的关键词----作用域

Java变量有其存在范围,程序运行超出这个范围后,这个变量所占用的空间将被收回
同名变量,作用域不能重叠

//编译错误!同名变量作用域重叠
int a=100;
for(int i=0;i<=100;i++){
int a=100;
//正确编译!三个变量b的作用域没有重叠
for(int i=0;i<=100;i++){
int b=100;
}
for(int j=0;j<=100;j++){
int b=200;
}
int b=300;
}

7.八种基本数据类型

在这里插入图片描述

7.1整数类型----int

  • int(32位)的最大表示范围为:-231~231 -1,即-2147483648 ~ 2147483647 。如果更大的整数可以使用long。
  • 直接量(literal),即直接写出的常量。整数的直接量类型默认是int类型,整数直接量也经常写16进制的形式(以0x或0X开头)。
int a=100000int b=0x186a0;
int c=0303240;
int d=10000000000;//直接量超过整数的整数表达范围。

7.2整数类型----long

  • long ( 64位)的最大表示范围为: -263 ~263-1( 9223372036854775807 )。
  • 如果要表示long直接量,需要以或结尾。
long timeMillis = System.currentTimeMillis();
System.out.printIn(timeMillis);
//System.currentTimeMillis();方法返回1970年1月1日零点到此时此刻所经历的毫秒数,该方法经常用于计时操作。


long d1=100000000;//直接 写出的即为int类型,但超过的整数的表达范围。
long d2=100000000l;

7.3浮点类型

  • 浮点数,就是小数,包括: float和 double
  • double的精度要大于float ,因此,一般只使用double计算浮点数。默认的浮点数字面量是double类型。
  • 由于舍入误差的原因,浮点数不能精确运算。
double money= 3.0;
System.out.printIn(money- 2.9);//01.10000000000000009
//注意舍入误差的问题,如果需要精确计算,可以使用BigDecimal

7.4字符类型

  • 字符类型事实上是一个16位无符号整数,这个值是对应字符的编码
  • Java字符类型采用Unicode字符集编码。Unicode是世界通用的定长字符集, 所有的字符都是16位
  • 字符直接量可以采用诸‘中’的形式,也可以采用16进制的表示形式,例如:’ \u4e2d’
char c1 ='中';
char c2 = '\u4e2d';
//'4e2d' 为'中' 所对应的16位Unicode编码的16进制表示形式。
  • 对于不方便输入的字符采用转义字符表示,如’\n’ ‘\t’ ‘\’ ‘\b’ ‘\r’
  • 数字编码:‘0’–48,‘1’–19,…
  • 英文编码:‘A’–65,‘B’–66,…
  • 字符是整数,可以参与运算
char c='A'+1;
int n='6'-'0';
  • 整数字面量(不超范围)可以给char变量赋值控制字符是没有显示效果
  • 只有本地字符集中存在的字符才能显示

7.5基本类型的转换

  • 自动类型转换(隐式类型转换) : 从小类型到大类型可以自动完成:
byte
short
int
long
float
double
char
  • 强制类型转换:从大类型到小类型需要强制转换符,会造成精度损失或者溢出。
longl= 1024L * 1024 * 1024 * 4;inti= (int) I;//会造成溢出!
double pi= 3.1415926535897932384;
float f = (float) pi;//会造成精度损失
  • java规定两点规则:
    整数直接量可以直接赋值给byte,char,short。
    byte,char,short只要参与运算,则一律转为int。

猜你喜欢

转载自blog.csdn.net/qq_44787898/article/details/102098053
今日推荐