java初始数据类型

初识java

1、基本数据类型在这里插入图片描述
(1)整型变量
定义方法:int 变量名 =初始值;
所占字节:4
(2)长整型变量
定义方法:long 变量名 =初始值;
所占字节:4


```java
在这long num =10L;
        System.out.println(Long.MAX_VALUE);//最大值9223372036854775807
        System.out.println(Long.MIN_VALUE);//最小值-9223372036854775808;
        综合:long定义长整形,数字后常用L或l,占8个字节,所占位数为64,数取值范围为“-2^63~(2^63-1)里插入代码片

``
(3)长整型变量

    double num = 1.1;
        System.out.println(num*num);//运行结果1.2100000000000002(java中的double虽然是八个字节但是浮点数的内存布局和整数差别很大,不能单纯的用2^n的形式表示数据范围,是用有限的内存空间表示可能无限的小数,势必会存在一定的精度误差)

所以当用double类型进行小数运算时 精度会出现不准,使用BigDecimal替代`

//精度不准
System.out.println(1.1*1.1);
//使用此类表示小数
BigDecimal b1 = BigDecimal.valueOf(1.1);
BigDecimal b2 = BigDecimal.valueOf(1.1);
System.out.println(b1.multiply(b2));

(4)单精度浮点型变量

float num = 2.0f;
      System.out.println(num);

(5)字符类型变量

 char ch ='呵';
       System.out.println(ch)char//一个汉字占一个字节

(6)字节类型变量

  byte value = 0;
       System.out.println(value);//字节类型表示的也是整数,只占一个字节,表示的范围(-128~+127)

(7)短整型类型变量

  byte value = 0;
         System.out.println(value);//字节类型表示的也是整数,只占一个字节,表示的范围(-128~+127)

(8)布尔类型变量

boolean value = true;
      System.out.println(value +1);java: 二元运算符 '+' 的操作数类型错误
//        第一个类型:  boolean
//        第二个类型: int    这几行为错误代码

(9)字符串类型变量

String name = "zhangsan,lisi ";
       System.out.println(name);/String(字符串)不是基本类型,而是引用类型
//
       String  a = "hello";
       String  b = "java";
       String  c = a+b;
       System.out.println(c);//字符串的+操作表示字符串的拼接
//    
       String str = "result =";
         int a = 100;
        int b = 200;
       String result = str + a + b;
       System.out.println(result);//运行结果result =100200;用字符串和整数进行拼接

#字符串和整数进行拼接

    int a =15;
    int b =38;
    System.out.println("a="+a+",b ="+b);//a=15,b =38
   int a =10;
   long b =20;
 //   a=b;/编译不通过,从long转换到int可能会有损失
//    b=a;/编译通过
   int a =10;
   double b =20.0;
//    a = b;/编译不通过,从double转换到int可能会有损失
//    b = a;编译通过

结论 ;不同数字类型变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型,反之则不行。

    int a =20;
    double b =10.5;
    a =(int)b;//强制转化,可能导致精度丢失,且互不想干的类型无法强转,例如int和boolern
   byte a =10;
   byte b =20byte c =a+b;
   System.out.println(c);//程序报错,不兼容的类型: 从int转换到byte可能会有损失
   byte d =(byte)(a+b);
   System.out.println(d);//30

结论;
1、byte和byte都是相同类型,但是出现编译报错,原因是虽然a、b都是byte,但是计算a+b会先将a和b都提升为int,再进行计算,这赋给c,就会出现上述错误;
2、由于计算机的CPU通常是按照四个字节为单位从内存中读写数据,为了硬件上实现方便,诸如byte和short这种低于四个字节的类型会先提升为在参与运算。

数据类型的转换
1.大的转小的(需要强制转换),会出现精度丢失问题(溢出问题,不推荐)
2.小的转大的(隐式提升)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值