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数据类型的分类:
大致可分为基础数据类型和引用数据类型。
基础数据类型又可分为:整型,浮点型,字符型,布尔型
常见的引用类型:如数组等等。
具体如图所示:
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行就结束了
}
}