java的8种基本数据类型

java的8种基本数据类型

java数据类型有两种一种是基本数据类型,另一种是引用数据类型(引用类型先有个概念),

基本数据类型又分八种从分别是byte,shout,int,long,char,folat,double,boolean,其中整数类型有

4种,分别是byte,shout,int,long,浮点类型有folat,double,字符类型有1种,char,布尔类型有1种,boolean,下图是个类型取值范围:

整型

浮点型:

字符类型char:

char类型比较特殊,存储需求是2个字节,取值是0-65535之间,char类型和Unicode编码机制息息相关,这里要扯一大堆东西想想都怕实在想了解就上百度,char类型是一个描述UTF-16(字符编码)的代码单元,代码中尽量不用char类型除非必须使用

接下来我们看一下代码:

package basis.primary_dataType2;
 
/**
 * 基本数据类型--整型
 * 巧妙记忆:除了基本数据类型以外的所有类型都属于引用数据类型,这里的重点:基本数据类型
 */
public class PrimaryDataType_Integer {
    /**
     *
     */
    /**
     * 整数的常量
     * 几进制就是逢几进一
     * 十进制:10个数进一1-9 10
     * 八进制:8个数进一1-7 10
     * 2进制;1 10
     */
 
    /**
     * 整数的变量
     * 类型       占用的储存空间         表数范围
     * byte         1              -2七次方~2七次方-1(-128-127)
     * short        2              -2十五次方~2十五次方-1(-32768-32767)
     * int          4              -2三十一次方~2三十一次方-1(-2147483648~2147483647)约21亿
     * long         8              -2六十三次方~2六十三次方
     * 比如byte右侧表述范围127怎么算出来的?
     * byte 1字节= 8位  二进制:01111111 = 127
     */
    //代码
    public static void main(String[] args) {
        //定义整型类型的变量:
        //给变量赋值的时候值可以是不同进制的
        int num1 = 12;//默认赋值10进制的情况
        System.out.println(num1);//结果就是12
        int num2 = 012;//变成8进制
        System.out.println(num2);
        int num3 = 0x12;//前面加0x或者0X,那这个值就是16进制
        System.out.println(num3);
        int num4 = 0b10;//前面加0b就是2进制
        System.out.println(num4);
        //定义byte类型的变量
        byte b1 = 12;//定义byte类型的变量,名字b 赋值12
        //byte b2 = 129; 超范围报错
        System.out.println(b1);
        short s= 30000;
        System.out.println(s);
       // int i = 12345678910;100亿超过范围
        int i =123456789;
        System.out.println(i);
        long l = 12345678910L;//赋给long需要在后面加l或者L最好L,对于int类型来说12345678910这个数对于默认的int型超出范围
        System.out.println(l);
        //只要long类型超出int类型才需要加L,没超出不需要加,超不超出都加即可
 
 
 
    }
}


这里根据之前的文章习惯一下注释的用法

正常情况下int类型最为常用,比如要计算地球上有多少人类,这个时候int类型以及不满足我们的需求了,long类型就比较适合我们使用,注意long类型定义的值无论是否超过int类型最好在后面加上L大写为最好,小写容易和阿拉伯数字1混淆,详情看下代码,

byte,shout类型使用主要是某些特定的场合,例如:底层文件处理啥的,这里就不概述了因为看得懂得不需要我交看不懂得,我写上去也懵

 

关于浮点类型

我们来看一下浮点类型代码:

package basis.primary_dataType2;
 
/**
 * 数据类型_浮点型
 * 常量
 * 科学计数法314E2或者314e2   314×10²    314e-2   314×10负二次方
 */
public class PrimaryDataType_Float {
    /**
     * 浮点型变量
     * PS:有效数字指的是从左到右开始第一个不为0的到最后一个数
     */
    public static void main(String[] args) {
        //十进制
        double num1 = 3.14;
        System.out.println(num1);
        //科学计数法形式
        double num2 = 314E-2;
        System.out.println(num2);
 
        //浮点类型的变量:
        //注意:浮点型默认是double类型的,想要将dpuble类型赋给float类型,必须后面加上F或者f
        float f1 = 3.14234567898623F;
        System.out.println(f1);
        //注意:double类型后面可以加D或者不加d,但是一般我们省略不写
        double d1 = 3.1345678976546D;
        System.out.println(d1);
        //注意:我们最好不要进行浮点类型的比较:
        float f2 = 0.3F;
        double d2 = 0.3D;
        /**
         * 区别:
         * =赋值符号
         * ==判断左右两边是否像的能,结果只要true和false(要么相等)(要么不相等)
         * 浮点类型结果都是近似乎相等的数
         */
        System.out.println(f2);
        System.out.println(d2);
        System.out.println(f2==d2);//false,因为底层不相同
    }
}


folat为单精度double为双精度,数值精度double是folat的两倍,大部分情况下基本都使用double类型很少使用folat类型,folat定义后缀为F或者f,double类型后缀为D最好加上会比较规范,注意浮点类型用处很广泛但是不适用于金融计算例如:使用输出语句打印2.0-1.1如图

这里注释和打印结果无关完全就是懒才在原来页面写

从结果上看这里不是我们所想的0.9,这种误差主要源于浮点类型采用2进制表示无法精确表示分数的10/1如同10进制的10/3除不尽一样,10进制就是从小到大老师交的那种1-10

计算金融方面不希望有太大的误差一般采用BigDecimal对象(先有个对象的概念)

布尔类型booleam:

package basis.primary_dataType2;
 
/**
 * booleam类型由两个常量值true和false,在内存中占一位(不是一个字节),不可以使用0或非0的整数代替
 * true和false,这点和C语言不同,booleam类型用来判断逻辑条件,一般用于程序流程控制。
 *
 */
public class PrimaryDataType_boolean {
    public static void main(String[] args) {
        //创建一个布尔类型的变量:只要true和false两个结果
        boolean flag1 = true;
        System.out.println(flag1);
        boolean flag2 = false;
        System.out.println(flag2);
        boolean flag3 = 5==9;
        System.out.println(flag3);//false(错误)
        boolean flag4 = 5<9;
        System.out.println(flag4);
 
    }
}


 
布尔类型也比较特殊只有2个值true和false,主要用于逻辑判断。java中整型和布尔不能进行转换

C++可以这里区分一下,记住不能转换。

运行结果为:

今日重点:回顾上次关键字,记一下关键字:byte,shout,int,long,char,folat,double,boolean,true,false,记一下常用单词flag

 

语文水平差多多谅解,若有不足请评论区联系,如有帮助点个赞

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值