第五天学习,Java的数据类型

数据类型

强类型语言

要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用(安全性高,速度慢)

弱类型语言

要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

Java的数据类型分为两大类

  • 数据类型

  • 引用类型

  •  

public class one {
    public static void main(String[] orgs){
        Byte//Ctrl加点击查看
        //八大基本数据类型
        //整数
        int a=99;//最常用
        byte b=90;
        short c=20;
        long d=99999L;//long类型要在数字后面加一个L
        //小数浮点型
        double f=10.2;
        float e=2.123415241F;//float类型要在后面加一个F
        //字符型
        char m='栋';
        //字符串是String
        String name= "胡政栋";
        System.out.println(name);
        System.out.println(a);
        //布尔值:是非
        boolean flag=ture;
        //boolean flag=false;
    }
}
​

什么是字节

位(bit):是计算机内部数据储存的最小单位,

字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。

1B=8bit

字符是指计算机中使用的字母、数字、字和符号

  • 1bit表示1位

  • 1Byte表示一个字节1B=8b。

  • 1024B=1KB

  • 1024KB=1M

  • 1024M=1G

数据类型扩展

public class two {
    public static void main(String[] args) {
        //整数拓展: 进制   二进制0b   十进制     八进制0    十六进制0x
        int a1 = 10;
        int a2 = 010;
        int a3 = 0x10;
        System.out.println(a1);
        System.out.println(a2);
        System.out.println(a3);
        System.out.println("=====================================");
        //最好完全避免使用浮点数进行比较
        //浮点数拓展?引号业务怎么表示?钱=====================================================
        //float     有限  含有误差    离散  大约  接近但不等于
        //double
        float a=0.1F;
        double b=0.1;
        System.out.println(a==b);//false
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        float d1=21741697;
        float d2=d1+1;
        System.out.println(d1==d2);//true
        //字符拓展=========================================================================
        System.out.println("======================================");
        char b1='胡';//32993
        char b2='政';//25919
        char b3='栋';//26635
        System.out.println((int)b1);//强制转换
        System.out.println((int)b2);//强制转换
        System.out.println((int)b3);//强制转换
        System.out.println("======================================");
        char c1='解';//35299
        char c2='旭';//26093
        char c3='茹';//33593
        System.out.println((int)c1);
        System.out.println((int)c2);
        System.out.println((int)c3);
        //字符拓展=========================================================================
        //所有的字符本质还是数字
        //编码    Unicode 表:(97=a     65=A)2字节    0-65536 Excel   2的16次方=65536
        //U0000     UFFFF
        System.out.println("======================================");
        char d3='\u0061';
        System.out.println(d3);
        //转义字符  \t一个缩进  \n换行······
        System.out.println("======================================");
        String oriqinal;
        String sa = new String ("hello world");
        String sb = new String ("hello world");
        System.out.println(sa==sb);
        System.out.println("======================================");
        String sc = ("hello world");
        String sd = ("hello world");
        System.out.println(sc==sd);
        //对象    从内存分析
        //布尔值拓展
        boolean flag=true;
        if (flag==true){    }//新手写
        if (flag){  }//老手写
        //代码要精简易懂
    }
}
​

类型转换

由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换,优先低级转换为高级

注意避免内存溢出的问题

(忽略中间那行字“哭笑”)

public class three {
    public static void main(String[] args){
        //强制类型转换      需要你去在前面加一个类型强制转换      (类型)变量名     高--低
        int a=128;
        byte b= (byte) a;//b=-128内存溢出
        System.out.println(a);
        System.out.println(b);
        //自动类型转换   直接给你准换了     低--高
        System.out.println("=======================================================");
        int i=99;
        double j=i;
        System.out.println(i);
        System.out.println(j);
        /**注意点
         * 1.不能对布尔值进行转换
         * 2.不能把对象类型转换为不相干的类型
         * 3.在把高容量转换到底容量的时候,强制转换
         * 4.转换的时候可能存在内存溢出,或者精度问题
         * */
        System.out.println((int)27.3);//27
        System.out.println((int)-27.3F);//-27
        System.out.println("=======================================================");
        char c='m';
        int d=c+1;
        System.out.println(d);
        System.out.println((char)d);
        System.out.println("=======================================================");
        //操作比较大的数的时候,注意溢出问题
        //JDk7新特性,数字之间可以加下划线’_‘分割
        int money=10_0000_0000;
        int years=20;
        //int total=money*years;//-1474836480,计算的时候溢出来了
        /*long total=money*years;//默认是int计算的时候,转换之前已经存在问题并且溢出了*/
        long total=((long)money)*years;//可以先把其中一个参与运算的数值转换为Long
        System.out.println(total);
    }
}
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值