Java中float a=3.1报错_java基础--变量 - osc_3www0d3o的个人空间 - OSCHINA - 中文开源技术交流社区...

1.变量

1.1.什么是变量:

变量是用来命名一个数据的标志符。

1.2.标志符的命名规则:

不能为关键字(如if,while等等)

由数字,字母,下划线,$组成,但不能以数字作为开头

java是大小写敏感的

inta;int A;

a与A是不同的变量。

java中其他东西的命名规则:(建议使用)

类名:每个单词的首字母大小。如:MyClass

函数名and变量名:第一个单词的首字母小写,其他单词的首字母大写。如addUser()

1.3.如何定义变量:

int i=5;

int表示为int的数据类型,i表示变量名,5为具体的数据

对于变量应该先定义后使用

2.数据类型

2.1java数据类型的分类:

大致可分为基础数据类型和引用数据类型。

基础数据类型又可分为:整型,浮点型,字符型,布尔型

常见的引用类型:如数组等等。

具体如图所示:

c66b82ec7561743b5a887928cb669d4d.png

2.2数据类型的使用:

2.2.1基本数据类型

1)整型(byte,short,int,long)

byte b=1;short s=1;int i=1;long l=1l;

byte  占用内存 一个字节 范围:-128至127

short 占用内存 两个字节 范围:-32768至32767

int   占用内存 四个字节 范围:-2147483648至2147483647

long  占用内存 八个字节 范围:-?至?

注意:对于长整型的定义有点不同,必须在后面加上l(L)。

2)浮点型(float,double)

float f=1f;double d=1;

float 占用内存 四个字节 范围:3.4E-38至3.4E+38 只能提供7位有效数字

double占用内存 八个字节 范围:1.7E-308至1.7E+308 可提供16位有效数字

注意:对于单精度浮点型来说,后面也必须加上f。

3)布尔型(boolean)

可以表示"真"或者"假",取值为true和false。和C语言不同的是不能用0/1代替

boolean b =true

4)字符型(char)

可以表示 单个字符,字符类型是char。char是两个字节(可以存放汉字)

多个字符我们称为字符串,在java中String这种数据类型表示,但是String不是基本数据类型,而是类,类是复合数据类型。

char c='a';

对char进行运算的时候,直接当做ascii码对应的整数对待。

int test1='a'+'b'; //输出值195

char test2='a'+'b'; ///输出值?

char test3='中'; //输出值195

对于中文字符而言:

采用ISO8859-1编码方式时,占一个字节。

采用GB2312或GBK编码方式时,占两个字节。

采用utf-8编码方式时,占3 个字节

2.2.2引用数据类型

3.数据类型的转换

3.1自动转换

数据类型可以自动的从低精度-->高精度。高精度不能转为低精度。

byte小于

在java中的小数默认是double数据类型

int a=1.2; //1

double b=3; //3.0

3.2强制转换

int a=(int)1.2;

int a=1;double b=4.5;

a=b; //报错

int a=1;double b=4.5;

b=a;//成功

错误原因:就是b已经是double类型当然不能直接赋值给a.必须强转

3.3计算过程中的转换

当一个整数和一个double运算的时候,运算结果会向高精度转换

int a=3;double b=a+3.4;

java中byte,short,char在进行计算时都会提升为int类型。

byte b1=1,b2=1,b3;

b3=b1+b2;//报错

关于自动提升类型,有以下几个规则:

所有的byte,short,char被转换为int

如果有long,则结果为long

如果有float,则结果为float

如果有double,则结果为double

如果被final修饰,则不会报错,因为被JVM优化了

4.常量

final修饰的变量

final int a=5;

5.变量的作用域

5.1全局变量

当一个变量被声明在类下面,变量就叫做字段 或者属性、成员变量、Field

比如变量i,就是一个属性。那么从第2行这个变量声明的位置开始,整个类都可以访问得到,所以其作用域就是从其声明的位置开始的整个类

public classHelloWorld {int i = 1;int j = i; //其他的属性可以访问i

public voidmethod1(){

System.out.println(i);//方法1里可以访问i

}public voidmethod2(){

System.out.println(i);//方法2里可以访问i

}

}

5.2局部变量

声明在方法内的变量,叫做局部变量

其作用域在声明开始的位置,到其所处于的块结束位置

public classHelloWorld {public voidmethod1() {int i = 5; //其作用范围是从声明的第4行,到其所处于的块结束12行位置

System.out.println(i);

{//子块

System.out.println(i); //可以访问i

int j = 6;

System.out.println(j);//可以访问j

}

System.out.println(j);//不能访问j,因为其作用域到第10行就结束了

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值