数据类型

来源:互联网 发布:aim 霹雳 知乎 编辑:程序博客网 时间:2024/05/22 00:19

变量的使用范围在{},变量的生命周期

例如

class CommentDemo{

public static void main(String[] args){

{

int age =23;

}.

/* 打印不出来 age 作用域不对*/

System.out.println(age);

}

}

-------------------------------------------------------

强类型语言(具体类型要指定)

java中有8种基本类型

1. byte 8

2.short 16

3.int 32

4.long 64

5.float 32

6.double 64

7.boolean 8

8.char 16(跟C不一样)

引用类型:

1.class

2.interface

3.[]


整数是默认是int类型,比如100, 小数默认是double

------------------------------------------------------------------------

定义 byte b=128; 会报错,不兼容, int转成byte 精度损失

byte byte =127; 没报错,但int是四个字节 ,会有精度损失,但编译通过,没抛出错误,127是静态常量,编译时候能识别  

int age=23; byte=age; 会报错,不兼容,因为age是变量

byte b=(byte)age; 高位的丢弃 可以通过

byte bb=12; int age2=bb; 不需要强转 没错


字符类型 数字类型 运算时候 变成整数运算 如byte 变成int计算

---------------------------------------------------------------------- 

char c; int ic=c; 正确,因为小类型可以赋给大类型
c=98; 正确,98是静态类型不需要强转,如果是动态的话要强转,否则精度丢失
----------------------------------------------
unicode 0x0000-0xffff
c='\u61' 编译通不过,一定c='\u0061' 不需要写0x
-------------------------------------------------
表达式 byte, short, char自动升级成int运算
System.out.println('d'+3);
打印出103,因为自动升级

byte b=3;
int x=4;
x=x+b; //b自动提升为int

byte b=3;
b=b+4;//报错,b自动升级成int,+4 还是int,然后不能赋值给byte类型,因为大类型不能赋值给小类型
b=(byte)b+4;//报错,没意义
b=b+(byte)4;//报错,没意义,首先它是常量,没有超限制,一旦用了加法,两边同时升级,都变成int
b=(byte)(b+4); //对

byte b1=3, b2=4, b;
b=b1+b2;//错,+法自动升级int
b=3+4;//对,3,4静态常量,即使有四则运算,加后还是会在编译期间,变成对应类型



原创粉丝点击