一.基本数据类型
一基本数据类型
| ||||||||||
1.1逻辑类型:
常量:ture,false
变量:使用关键字声明逻辑变量,若不赋值默认为false boolean ni=ture;
例题1 代码:
运行结果如下:
1:定义一个double变量height存储身高赋值为1.60
2:定义一个int变量weight存储体重赋值为48
3:定义一个double变量exponent存储BMI公式计算结果
4:打印输出赋予身高height的值
5:打印输出赋予体重weight的值
6:打印输出BMI计算后赋予exponent的值
7:打印输出判断结果
8:判断,如果exponent小于18.5,则第七步输出结果显示“体重过轻”
9:判断,如果exponent大于18.5并且小于24.9,则第七步输出结果显示“正常范围”
10:判断,如果exponent大于24.9并且小于29.9,则第七步输出结果显示“体重过重”
11:判断,如果exponent大于29.9,则第七步输出结果显示“肥胖”。
二.java八大类型数据。
1.java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。
2.各基本数据类型详解
byte:
byte 数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是 -128(-2^7);
最大值是 127(2^7-1);
默认值是 0;
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
占1个字节
short:
short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15);
最大值是 32767(2^15 - 1);
Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
默认值是 0;
占2个字节
int:
int 数据类型是32位、有符号的以二进制补码表示的整数;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1);
一般地整型变量默认为 int 类型;
默认值是 0 ;
占4个字节
long:
long 数据类型是 64 位、有符号的以二进制补码表示的整数;
最小值是 -9,223,372,036,854,775,808(-2^63);
最大值是 9,223,372,036,854,775,807(2^63 -1);
这种类型主要使用在需要比较大整数的系统上;
默认值是 0L;
占8个字节
float:
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
float 在储存大型浮点数组的时候可节省内存空间;
默认值是 0.0f;
浮点数不能用来表示精确的值,如货币;
占4个字节
double:
double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
浮点数的默认类型为 double 类型;
double类型同样不能表示精确的值,如货币;
默认值是 0.0d
占8个字节
boolean:
boolean数据类型表示一位的信息;
只有两个取值:true 和 false;
这种类型只作为一种标志来记录 true/false 情况;
默认值是 false;
字节占用数并无精确定义,跟虚拟机具体实现有关系
char:
char类型是一个单一的 16 位 Unicode 字符;
最小值是 \u0000(即为 0);
最大值是 \uffff(即为 65535);
char 数据类型可以储存任何字符;
占2个字节
3.浮点类型
浮点类型简称浮点型,用来存储含有小数部分的数值。Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点(double),它们具有不同的取值范围。
例题2代码如下:
运行结果如下:
浮点型数据类型
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
float | 32位 | 1.4E-45~3.4028235E38 |
double | 64位 | 4.9E-324~1.7976931348631348623157E308 |
在默认情况下小数被看作double型,若想使用float型小数,则需要小数后面添加F或f.
另外,可以使用后缀d或者D来表明这是一个double类型数据,但加不加d或D吧,并没有硬性规定。而定义float型变量时,如果不加F或者f,系统会认为double类型数据,进而出错。定义浮点类型变量代码如下:
float f1=13.23f;
double d1=4562.12d;
double d2=45678.1564;
误区警示:浮点值属于近似值,在系统中运算后的结果的可能与实践有偏差。
例题3代码如下:
运行结果如下:
描述:定义一个boolean变量b1赋值为true\n\n定义一个boolean变量b2赋值为Boolean.FALSE\n\n打印输出赋予b1的值\n\n打印输出赋予b2的值
三.变量与常量
在程序执行过程中,其值不能被改变的量称为常量,其值能被改变的量称为变量。变量与常量都必须使用合法的标识符。有
1.标识符
标识符可以简单地理解为一个名字,是用来标识类名,变量名,方法名,数组名,文件名的有字符序列。
Java语言中规定标识符由任意顺序的字母,下画线(-),美元符号($)和数字组成,并且第一个字符不能是数字。标识符不能是Java中的关键字(保留字)。
下面合法标识符:
name
user_age
$page
非法标识符:4word String User name
2.声明变量
在程序运行过程中一直不会改变的变量的称为常量(constant),通常也被称为"final变量".
例题4下面的示例看出来变量
运行结果如下:
描述:定义一个int变量age赋值为23\n\n定义一个double变量PI赋值为3.14\n\n定义一个int变量number赋值为1235\n\n打印输出赋予number的值\n\n打印输出赋予age的值\n\n打印输出赋予
3.变量的有效范围
一般会根据变量的“有效范围”将变量分为“成员变量”和“局部变量”。
1.1成员变量
在类体中所声明的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可以分为两种,即静态变量和实例变量。
1.2局部变量
在类的方法体中声明的变量(方法的内部定义,"{"与“}" 之间的代码中声明的变量)称为局部变量。 就近原则
在项目中创建类Val,分别定义名称相同的局部变量与成员变量,当名称相同时成员变量将被隐藏。
例题5代码如下
运行结果如下:
4.标识符:标识符可以简单地理解为一个名字,是用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。Java语言规定标识符由任意顺序的字母、下划线(___)、美元符号($)和数字组成,并且第一个字符不能是数字。标识符不能是Java中的关键字(保留字)。\n\n关键字:关键字又称保留字,是Java语言中已经被赋予特定意义的一些单词,不可以把这些单词作为标识符来使用。\n\n声明变量:变量的使用是程序设计中一个十分重要的环节。声明变量就是告诉编译器这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。为了便于操作,给这个空间取个名字,称为变量名。变量的命名必须是合法的标识符。内存空间内的值就是变量值。在声明变量时可以是没有赋值,也可以直接赋给初值。\n\n声明常量:在程序运行过程中一直不会改变的量称为常量(constant),通常也被称为“final变量”。常量在整个程序中只能被赋值一次。
.3字符类型\n\n(1)char型:字符类型(char)用于存储单个字符,占用16(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,如's'表示一个字符。但是“s”则表示一个字符串,虽然只有一个字符,但由于使用双引号,它仍然表示字符串,而不是字符。\n\n例题3.3查看字符与Unicode互转结果。
包声明:一个JAVA应用程序是由若干个类组成的.在例题3.1中就是一个类名为Frist的类,语句package Number为声明该类所在的包,package为包的关键字。\n声明成员变量和局部变量:通常将类的属性称为类的全局变量(成员变量),将方法中的属性称为局部变量。全局变量声明在类体中,局部变量声明在方法体中。全局变量和局部变量都有各自的应用范围。在例题3.1中,s1是成员变量,s2是局部变量。
例题6.代码如下:
运行结果如下:
4.1转义字符:转义字符是一种特殊的字行变量,它以反斜杠“\\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。例如,printf的数的格式串中用到的“\\n”就是一个转义字符,意恩是“回车换行”。例题7,代码如下
运行结果如下
4.2自增和自减运算符:自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整形或浮点型变量。自增、自减运算符的作用是使变量的值增1或减1。放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1)。(符号在前先运算再使用,符号再后先试用再运算。)\n\n比较运算符:比较运算符属于二元运算符,用于程序中的变量之间、变量和自变量之间以及其他类型的信息之间比较。比较运算符的运算结果是boolean型。当运算符对应的关系成立时,运算结果为true,否则为false。所有比较运算符通常作为判断的依据用在条件语句
例题8.代码如下
运行结果如下:
4.3 数据类型的转换\n\n隐式类型
4.3 数据类型的转换\n\n隐式类型转换,也叫自动类型转换,从低级类型向高级类型转换,一定不会丢失数据\n\n显式类型转换,也叫强制类型转换,把高精度的变量值赋给低精度的变量,有可能丢失数据。转换时需要添加被转换类名.
4.4. boolean\nboolean数据类型
boolean\nboolean数据类型表示一位的信息。\n\n只有两个取值:true和false\n\n这种类型只作为一种标志来记录true/false情况\n\n默认值:false\n\n包装类:Boolean\n\n自动类型转换\n指不需要编写代码,有系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所有Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。\n\n转换规则:从存储范围小的类型到存储范围大的类型。\n\n具体规则:byte -> short(char)-> int -> long -> float -> double。\n\n举例说明:byte类型的变量可以自动转换为short类型,\n\nbyte b = 11;\n\nshort sh = b;\n\n这里在给sh赋值时,JVM首先将变量b的值转换成short类型然后再赋值给sh。\n\n当然,在类型转换的时候可以跳跃,也就是byte可以自动转换为int类型,\n\n注意,在整数之间进行类型转换时数值不会发生变化,但是当将整数类型特别是比较大的整数类型转换成小数类型时,由于存储精度不同,可能会存在数据精度的损失。
例题9代码如下
运行结果如下:
4.5隐式类型转换
4.5隐式类型转换(自动类型转换,一定不会丢失数据):从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这些类型按精度从低到高的顺序为byte\u003Cshort\u003Cint\u003Clong\u003Cfloat\u003Cdouble。\n\n使用隐式转换提升数值精度
例题10代码如下
运行结果如下:
5. 位运算符
位运算符\n位运算符除了“按位与”和“按位或”运算符外,其他只能用于处理整数的操作数,包括byte,short,char,int和long等数据类型,\n\n位运算是完全针对位方面的操作;\n\n按位与运算\t都是1才是1\n按位或运算\t有1就是1\n按位取反运算\t1为0,0位1\n按位异或运算\t两者相同为0,不同为1\n除上述运算符,还可以对数据按二进制位进行移位操作。
整体左移,后位补0,溢出去掉\n>>(右移)\t整体右移,整数补0,负数补1,溢出去掉\n>>>(无符号位移)\t整体右移,空位补0,溢出去掉\n三。
最后,在java代码,中关键字与关键字之间如果有多个空格,这些空格均被视作一个。\n\n4、为了方便日后的维护,不要使用技术性很高,难懂,易混淆判断的语句。