上一节简单的介绍了JAVA的一些基础知识,现在来看看它程序运行的开始
本节的关键字是:变量,标识符,关键字,数据类型
与其他计算机语言类似,java语言也是从主方法开始的,就是从main方法开始执行的。
Java中也有变量和常量之分,想要在程序中声明一个存放整数类型的变量可以使用的
程序语句是
int num;//num是这个变量的名称,int是变量的类型
变量是:利用声明的方式在内存中找到一个空闲的内存块,来保存程序中要用到的信息。
floata=200.0f;//特殊的声明
a=3000.0f;
longb=300L;//特殊的声明
常量就是一个固定的值,值不能被改变的量。
变量就是在程序运行中值可以被改变的量。
final float PI=3.1415f;//Π的值是固定的。
标识符(区分大小写)
Java中的标识符可以是任意顺序的大小写字母,或者下划线(_),美元符号($),限制的是不能使用数字作为开头,在命名变量或者某个东西的名字时,也遵循这个规则(java中的关键字不能作为名称出现,java中一共有48+2个关键字)。
正确的标识符(个人建议用字母开头),类必须得用大写字母开头。
My,Your_Name123等。
错误的标识符
123Y,空格也是非法的。
命名规范:
1,由字母,数字,下划线(_),美元符号($)构成,数字不能开头
2,不能是java中的关键字或保留字
3,大小写敏感;无长度限制;见名知意;驼峰式命名
Java中的关键字
这个不用死记硬背,50个,有2个保留的(const 、goto);true、false、null虽然不是关键字,但是属于单独的标识符类型,也不能直接使用,新增加的有(assert、enum)。这里注意一下,主方法中的 main 不是关键字,只是java中的一个特殊的字符。
声明一个类:
2种方式----public class 和class。
其中public class是要求类名和文件名相同,class则不要求,但是必须会生成class文件。
上面说到对变量的声明,变量在使用前,必须进行声明(也就是要确定它的数据类型)。
那么这里就来介绍数据类型:
Java中的数据类型有:基本数据类型(也叫原始数据类型)和引用数据类型。
引用数据类型中,目前需要知道的就是它有:String(字符串类型)和数组类型,class类型,自定义类型,其他的就再后边做以补充。
整数类型:数据中不带有小数和分数时,可以用它来声明整数变量。其中:
Byte(8位)—>short(16位)-->int(32位)—>long (64位)的顺序是由小及大的
这里注意一点,用大范围的数据类型可以声明小的数,也就是说,这个顺序是包含的关系,比如,可以用int 声明的整数,就一定可以用long来声明。使用时应注意他们的范围变化,不要出现数据溢出的情况。
同样的道理,若是int 类型的溢出,就可以使用long来声明,也就是强制类型转换,但是long的换就只能采用变量值的界限检查来确保它运行时不会出错。
intmax=integer.MAX_VALUE;
这句代码是取出int 类型的最大值 赋给max这个变量的意思,当给max+1,就会出现上面所提到的溢出现象。
字符类型
相信每个了解计算机的人,都知道,它的工作是采用2进制的,就是所谓的01代码,前辈们采用特殊的算法,将几乎所有的字符都用01代码来表示,我们可以这么认为,字符类型也是整数类型的一种。
比如: char abc=97;
当采用输出语句时,abc就是a了,因为a的Unicode编码是97,所以在输出字符类型的97时,就是在输出a。
浮点数类型和双精度浮点数类型
它的范围是float(+-3.4*10的38次方) double(1.7*10的308次方)
可以这么说,float是包含在double中的,因为它的精度小于double类型的精度。
这里需要注意,声明float类型时,
floatnum =3.1f;//这里红色的f是不能省略的,意思是把3.1这个数赋值给num。
当采用科学计数法时,float num=3.1e12; 意思是3.1*10的12次方这个数赋值给num,这里的e也可以用大写,double类型也是相同的用法,需要注意的是范围,不能把超出范围的数赋值给它们。
基本数据类型的默认值
byte、short、int -- 0
long -- 0L
float --0.0f
double --0.0d
char --空
Boolean --false
一般而言,都会给一个变量赋予初始值,当没有初始值的时候,就会采用默认值。
数据类型的转换
分为2种:“自动类型转换”和“强制类型转换”。
自动类型转换(2个必要条件,同时满足时,才可以自动转换):
1、转换前后的数据类型兼容,例如,整型之间的转换,从short 到int 的转换就是自动的,当然它还满足第二个条件。这里应特别注意,String类型兼容任何类型。
2、从小范围到大范围的转换,主要是没有损失精度,所以可以自动转换。
强制类型转换
强制类型转换就可以从这两个必要条件中得到它的条件:所谓强制,就是java不会自动转换,因为会损失数据的精度,也就是说从大范围到小范围的转换就需要强制类型转换了。
例如:
float a=4.14;
int b=(int)a;
这里就是把4.14这个float类型的数强制转换成int类型的数,之后在赋值给b,这里的b输出结果是4,显然已经损失了精度。需要注意的是,转换的时候,与等号左边的int是无关的。