首页 > 编程 > Java > 正文

1.java类型及运算

2019-11-08 02:10:04
字体:
来源:转载
供稿:网友

变量的定义

表示示存储空间,可用来存放某一类型的常量,没有固定值,并可以重复使用,也可以用来存储某种类型的未知数据。

变量的特点:

① 占据着内存中的某一块存储区域; ② 该区域有自己的名称(变量名)和类型(数据类型); ③ 可以被重复使用; ④ 该区域的数据可以在同一类型范围内不断变化;

变量的分类:

随着变量定义在类中的位置不同,故把变量分成两大类: 成员变量:直接定义在类里的变量,又称为全局变量或字段。 局部变量:变量除了成员变量之外,其他就是局部变量。根据定义的位置不同有3种表现形式:方法形参,方法内变量,代码块变量。

变量作用域:

指变量的存在范围,只有在这个范围内,程序代码才能访问它。当一个变量被定义时,它的作用域就确定了: 作用域是定义开始到定义所在的花括号结束;

变量使用规则:

1.变量必须先声明,并且初始化后才能使用; 2.声明变量必须有数据类型 3.同一作用域内变量名不能重复定义

java中数据类型整体上分成两大类:

1):基本数据类型/原生数据类型,共8个: 1>:数值型: 整数类型:byte,short,int,long, 不同的整数类型在内存占用的内存空间大小是不一样的. 小数类型:float,double. 2>:字符型:char,什么是字符,字母/符号. 3>:布尔型:boolean,表示对与错.true,false.2):引用数据类型/对象数据类型: 类/接口/数组

数据类型数据类型

boolean类型:通常用于逻辑运算和程序流程控制(条件选择/循环)。该类型的值只能是true 或 false,表示真或假。不可以使用0或非0的整数来代替false和true,区分于C语言。(其实在JVM中对boolean的处理也是用0表示false,非0表示true的。)false和true是boolean的常量。整数类型(byte-short-int-long):byte、short、int、long类型:整型常量的四种表示形式:① 二进制整数:0B或0b开头(Java7的新特性),如:int a = 0B110;② 八进制整数:要求以0开头,如 int a = 012;③ 十进制整数:如:int a = 17;④ 十六进制整数:要求0X或0x开头,如int a = 0x12;Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L,因小写的l容易和数字1相混淆,建议使用大写L。默认情况下,一个整型的字面量默认是int类型.小数类型(float-double):float、double类型:表示小数类型又称为浮点类型,其中float表示单精度类型,double表示双精度类型,但是二者都不能表示精确的小数。Java的浮点类型常量有两种表现形式:十进制形式: 例如:3.14 ,168.0, .618科学计数法形式: 例如:3.14e2, 3.14E2, 1000E-2科学计数法表达式返回的结果是double类型。默认情况下,一个浮点类型的字面量默认是double类型.若要声明一个常量为float型,则需在常量后加上f 或 F,double常量后面的D或d可省略。注意:Java里只有浮点型的变量才可以接受科学计算式结果:因为float和double都不能精确的表示小数,那么在精度要求高的系统比如银行系统里,那怎么表示精确的小数呢?后面我们会讲BigDecimal类型,它表示任意精度的数据。字符类型(char):字符,字母和符号.char类型:表示16位的无符号整数或者Unicode字符,Java对字符采用Unicode字符编码。Unicode收集了世界上所有语言文字中的符号,是一种跨平台的编码方式,Java的字符占两个字节,可以表示一个汉字。什么是编码?计算机只能表示0和1两个数,于是人们做规定使用一个数字去表示一个特定的字符,比如a使用97表示。char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复。char常量有3种表示形式:① 直接使用单个字符来指定字符常量,格式如'◆'、'A','7';② 直接作为十进制整数数值使用,但是数据范围在[0,65535],格式如97,但是打印出来的值依然是ASCII码表对于的符号,如97打印出来是字符a。③ 和2一样,只不过表示的是16进制的数值,格式如'/uX',X表示16进制整数;如:97的16进制是61。那么表示为‘/u0061’打印出来也是a。所以有人说char本质上也是整型,也是有道理的。char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复,可查表。

String类型

除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。引用数据类型默认初始值都是null。 String是一个类,表示字符串(后面详讲),所谓字符串,就是一串字符,也就是N个字符连接在一起(N可以表示0或多个),好比羊肉串。 字符串都得使用 “” 括起来的,连接字符串使用 “+”符号。(“hello”+”world”) 字符串拼接:字符串和任意数据类型相连接,结果都是字符串类型

基本数据类型转换

在8大基本数据类型中,boolean不属于数值类型,不参与转换. 转换规则其实就是各自数据类型的空间大小.看图 把不同的数据类型看出是不同容量的容器. byte是1个字节,最多只能装1斤水. short是2个字节,最多只能装2斤水. 那么short是不能赋值给byte的! 这里写图片描述

强制类型转换,也称为“显示类型转换”:

当把大范围类型的数值或变量赋给另一个小范围类型变量时,此时系统不能自动完成转换,需要加上强制转换符,但这样的操作可能造成数据精度的降低或溢出,所以使用时要格外注意。 这就好比把装两斤水容器里的水倒在可以装一斤水的容器里,是可能造成水溢出的。 若要坚持把4斤苹果塞进一个装3斤的袋子里,我们要怎么办?动用暴力。 强制类型转换,可能造成溢出和精度损失。

表达式类型的自动提升

当一个算术表达式中包含多个基本数据类型(boolean除外)的值时,整个算术表达式的数据类型将在数据运算时出现类型自动提升,其规则是: 所有的byte、short、char类型被自动提升到int类型; 整个表达式的最终结果类型被提升到表达式中类型最高的类型;

double d1 = 123 + 1.1F + 99L + 3.14;System.out.PRintln('a' + 1);//98byte b = 22;b = b + 11;//编译出错,此时结果类型应该是int
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表