2_java的数据类型和变量

一、数据类型与变量
1.常见的数据类型   (8种数据类型,这8种数据类型也叫基本数据类型

1.整型

(1)byte   short   int   long

//其中java中相对于c多出来了一个byte的整型类型,占用1个字节

2.浮点型

(1)float   double

(2)float在java中占用4个字节      double在java中占用8个字节

3.字符类型

(1)char

//java中char占用的是两个字节

4.布尔类型

(1)boolean  (这个是关键字)

//没有明确说这个类型占用多少字节

2.上面的这些变量的大小,并不受平台的影响

1.上面的整型和浮点型的数据都是带有符号的

2.整型默认是int类型,浮点型默认是double类型

(1)定义变量的时候的作用很大

3.上面的8种类型叫做基本数据类型

4.类似于String类型的,数组,类,接口等,都叫做引用数据类型

3.变量

1.基本语法格式    数据类型 变量名=初始值;

2.java的局部变量如果没有进行初始化,输出的时候会报错

(1)如果没有合适的数值进行定义,可以先初始化为0

(2)设置的字面值的时候不能超出规定的最大值和最小值的范围。否则会报错

(3)如果使用其他的形式比如xxx+xxx   xxx+a  这样的形式,虽然检测不出来,但是会溢出

3.能输出整型变量的最大值和最小值

(1)图片中的叫做int的包装类,其他类型的也有相似的Long.MAX_VALUE

二、定义变量的注意事项

//包装类型只是针对基本数据类型的

1.定义长整形变量的时候,在初始值后面加上L或者l

1.这两种都是可以的,但是推荐使用大写。当然不写这个L l也是能定义的,这样只是为了更直观的表示出来

2.long类型的包装类名字是Long     (Long.MAX_VALUE)

2.short的包装类的名字是Short
3.byte的包装类名字是Byte

4.关于浮点型数据运行期间的规则

1.如果是两个整型变量进行相除,如果有小数,会将小数部分直接舍弃,取整数作为结果。想要得到小数只能使用浮点类型的变量

2.但是如果其中一个进行了整型提升,再与整型的数据参与计算,其结果也会进行整型提升

(1)第一个输出的结果是0,第二个输出的结果是0.5

3.double的包装类名字叫做 Double

4.定义单精度浮点数的时候,如果不在初始值后面加上f,则会报错。因为默认浮点数是double类型的。

正确的写法是 float a=1.1f;   因为字节数不一样

5.但是对于类似的byte  num1=10,  short num2=10;为什么就不会报错

(1)这是因为赋值的数值没有超过此类型的所表示的范围,也就因此没有被解析为整型

5.定义字符型变量

1.char 类型的变量是两个字节。  汉字也是两个字节,所以在java中定义变量可以表示汉字

2.java中使用单引号+单个字符或者汉字 来表示字符字面值

3.计算机中的字符本质上是一个整数,在c语言中用ascll来表示字符,java中使用Unicode表示字符,因此一个字符占用两个字节,表示的字符种类更多,包括中文

4.如果使用命令行的形式来编译java的代码,就需要在javac后面加上 -encoding UTF-8即可

5.char的包装类型叫做 Character

6.布尔类型的变量

1.关键字boolean

2.这个变量只要有两个变量值,一个false,一个true

3.注意:  java中true并不等于1,false并不表示0     这两个是不同的变量,不能互相转换。而且布尔类型的变量所占字节数并没有明确的告知。

(1)

整型变量赋值true是错误的,并且输出的时候是输出的true。

4.bool类型的包装类为 Boolean

三、数据类型转换

java作为一个强类型编程语言,当不同类型之间的变量相互赋值的时候,会有严格的校验

//在java中,当参与运算数据类型不一致的时候,就会进行类型转换。类型转换分为两类,自动类型转换(隐式),强制类型转换(显示)

//但是类型转换的数据最起码是相关联的,不相干的类型是不能进行转换的

1.自动类型转换(隐式)

1.特点是数据范围小的往数据范围大的类型进行转换。就像下面的图片,在a给b赋值的时候,会将a的数据类型提升为long类型的,再进行赋值

2.类似的还有  

(1)float表示的范围小,double表示的范围大,num1在进行赋值的时候会进行隐式类型转换。

2.强制类型转换(显式)

1.特点是范围大的向范围小的进行转换

(1)就像这张图片,可以使用 a=(int)b;  这样的形式进行转换

(2)但是这样转换可能会丢失数据

3.计算中出现的转换

1.两个字节大小不同的变量进行计算

(1)这样出错的原因是,在计算中a会提升为double,但是c被赋值为一个double类型的变量。出现错误

(2)解决方法就是定义c为double类型的变量,或者将结果进行强制类型转换

2.byte和byte的变量

(1)出现错误的原因是计算的时候,任何小于4字节的类型在计算的时候会提升为4个字节,再进行计算。此时没有进行转换的情况下,就会出现错误

四、字符串类型
1.定义字符串类型的关键字   String

1.常用的使用方式

  也可以使用String arr1=arr;

2.c语言中,字符串结尾是\0.但是java中字符串结尾什么都没有

(1)输出的长度就是5,一共有5个字符

3.将数字字符串专转换成为数字(通过包装类的方法)

(1)此时输出的就是123

4.同样能将整型的数字,转换成为字符串(通过包装类的方法)

5.字符串拼接   +

(1)输出的括号中,前面是字符串的情况下,后面的+都是一个拼接符号,并不是运算符,

//图片上面的这种情况输出的是 hello21

(2)字符串在后面的情况

//这样输出的就是3hello。   只是紧挨着以及字符串后面的 +  才算是拼接符

五、运算符

//常见的见c语言的用法,下面只记录一些特殊的

1.取余数   %

1.答案是 1   1   -1   -1

(1)就是a除以b,上c,余d。   这个d和什么负负得正没有关系

2.在java中 ,%两边可以不是整型。(c语言是)

(1)也可以两边都是浮点数,这样写是正确的

2.向类型大的提升

1.如果输出的是一个算式,两侧操作数类型不同时,向类型大的提升

(1)这个就是向double类型提升

3.关系运算符的值只能是true或者false

1.   >  <   >=    <=   ++    !=

2.但是不能出现a<b<c   这样连续的运算符比较的。

(1)因为返回的类型是布尔类型的,布尔类型的不能和整型或者浮点型变量进行比较

3.还有逻辑运算符,运算的结果同样是布尔类型

(1)&&   ||    !

六、异常

1.异常有很多种类,这种红色的就是异常。  这个叫做算数异常

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值