数据类型、运算符

  1. 常量的分类:二进制、八进制、十进制、十六进制

  1. 按数据类型分类,可分为基本数据类型和应用数据类型

  1. 基本数据类型可分为4类8种,4类是整型、浮点型,字符型、布尔型,其中整型包括byte、short、int、long,浮点型包括float、short,字符型为char,布尔型为boolean

//数据类型是干啥的?
    //限定 变量 定义中  数据的类型和范围
    public static void main(String[] args) {
        //数据类型:基本数据类型、引用数据类型
        //基本数据类型    4类8种
        //数据格式(数据表达内容不同)    占用字节      表达范围
        //整型(整数)
            /*          byte          1        -128~127
                        short         2       -23768~32767              万3
                         int          4       -2147483648~2147483647    21亿
                        long          8        -2^63 10*10的19次方         */
        //
        byte b=15;
//        byte b1=1111;//报错,超出范围
        System.out.println(b);
        short s=9000;
        short s1=15;//byte->short,只要在范围内就能接收
        short s2='H';
        System.out.println(s+" "+s1+" "+s2);
        int i=9527;
        int renkou=1400000000;//14亿
        //默认写出来的    整数数据    是int类型
//        int quanqiurenkou=7000000000;//整数数据默认是int类型,最大21亿
        System.out.println(i+" "+renkou);
        long l=700000000000000L;//默认整数4个字节,需要申请8个字节空间,32位
        System.out.println(l);
        //浮点型(小数)
        //数据格式(数据表达内容不同)    占用字节      表达范围
        /*float(单精度)        4       1.4*10的-45次方 ~ 3.4*10的38次方
          double(双精度)       8       4.9*10的-324次方 ~ 1.7*10的308次方    */
        //默认小数是double类型,也就是占用了八个字节
//        float f=3.14;//3.14默认用8个字节,float只有四个
        //3.14用四个字节 存储 解决,加上一个F
        float f=3.14f;
        System.out.println(f);
        double d=3.1415926535;
        System.out.println(d);
        //字符型(字符)   一个字符在内存中占用两个字节---16位二进制【0-65535】
        //字符占用两个字节  --  字符对应有一个数字表达式
        //char
        char c='a';//字符a 在内存中 存到了字节里(二进制数据)
        System.out.println(c);
        System.out.println(c+0);//字符 对应 数字(2->10)
        //布尔型(真假)
        //boolean
        boolean flag=true;
        System.out.println(flag);
  1. 字符常量' '有且只有一个字符

字符串常量""可以有内容,也可以没有内容

  1. 数据在计算机底层通过二进制存储,采取逢二进一的特点

  1. 进制转换

十进制转二进制:再用除二取余法

二进制转十进制:8421法,主要表现为2的0次方开始,一直加到2的n次方

八进制表现形式为每三位二进制作为一个单元,其构成主要为0~7

十六进制的表现形式为每四位二进制作为一个 存储单元,其构成主要为0~15,其中10~15的表现形式为A、B、C、D、E、F

  1. 默认情况下,整数是int类型,如果说整数数量过大,long类型接受,需要加L、l提升到long类型

 小数是double【8字节】类型,如果想要使用float【4字节】类型接收,需要加F、f转换为float类型

  1. 计算机的最小存储单位是字节(Byte),一个字节占8位(bit)

数据的大小转换表现为1024=2^10

  1. 字符在计算机中并不是直接存储,而是把字符编为一个整数,存储对应的二进制形式,这样的一个对应关系表,就叫做ASCII码表

字符0对应48,其后依次加1

字符a对应97,其后依次加1

字符A对应65,其后依次加1

  1. 类型转换,即数据的类型发生了变化

  1. 类型转换又分为自动类型转换,表达式类型转换和强制类型转换,

  自动类型转换:范围小的变量,直接赋值给范围大的变量

byte -> short -> int -> long -> float -> double

char ->

  表达式类型转换:表达式的最终类型由最高类型决定

  主要表现:

  在表达式中,byte、short、char直接转换位int类型参与运算。即小范围类型自动转换为大范围类型

  强制类型转换:范围小的类型去接收范围大的类型数据

  默认会报错,只是在强制的执行

  正确的书写格式:小数据类型 变量=(小数据类型)变量/数据;

  一般不建议使用强制类型转换:

  1. 会出去数据丢失

  1. 小数强制转换为整数,直接截断小数 保留整数

int cc=99;
char ccc=(char)cc;
System.out.println(ccc);//c

原理:强行把前面几个字节砍掉,有数据丢失风险

  1. 算术运算符包括加(+)、减(-)、乘(*)、除(/)、取余(%)

  在算术运算符中,尤其注意:整数做除法,其结果还是整数

  +符号除了参与加法运算,还可以做拼接使用,如果+与字符串参与运算,其结果依然是一个字符串

        int a=10;
        int b=2;
        System.out.println(a+b);//12
        System.out.println(a-b);//8
        System.out.println(a*b);//20
        System.out.println(a/b);//5
        System.out.println(a%b);//0

        //除法运算 如果不能整除,得到只能是商
        int c=100;
        int d=33;
        System.out.println(c/d);//3.0303030303....整数相除只能是整数
                        //c整数 1.0小数 整体是小数
        System.out.println(c*1.0/d);
        System.out.println(c%d);

        //"+"连接符
        System.out.println("+号妙用:+号左右两边连上了字符串 整体变成字符串");
        System.out.println("abc"+5);//abc5
        System.out.println("abc"+"5");//上下结果一样

        int e=5;
        System.out.println(e+5);//10
        System.out.println(e+"5");//55

        //+号左右两边连上了字符串 整体变成字符串
        System.out.println("ad"+e+'c');//ad+5+c
        System.out.println('c'+e+"ad");//99+5+ad

数值拆分操作

int ge=number%10;
int shi=number/10%10;
int bai=number/100%10;
int qian=number/1000%10;
System.out.println("个位数:"+ge);
System.out.println("十位数:"+shi);
System.out.println("百位数:"+bai);
  1. 自增自减运算符

++ -- 都可以用在 变量前后

如果是单独使用,前后没有影响

如果参与运算

++在变量前 先自增再参与运算

++在变量后 先运算再自增

同理

--在变量前 先自增再参与运算

--在变量后 先运算再自增

  1. 赋值运算符:+=、-=、*=、/=

 基本赋值运算符 "=",从右往左看

 扩展赋值运算符

byte x=10;
byte y=10;
x=x+y;//byte一旦参与运算编程int类型了,不能用byte类型接收

byte x=10;
byte y=30;
x+=y;//可以 自带强制转换 x=(byte)(x+y)
  1. 关系运算符:>、>=、<、<=、==、!=,主要表现为true、false

  1. 逻辑运算符:&、|、!、^、&&、||

//& 并且  特点:有false则false
//| 或者  特点:有true则true
//! 取反  特点:你真我假 你假我真
//^·相同为false,不同未true【同性相斥,异性相吸】
    //    &&:短路与  执行到一半知道结果就不继续了 好比刮奖 刮到谢...就不往下继续了
    //   &:不管结果如何,继续往下 好比刮奖 刮到谢...继续刮到谢谢惠顾
    //    ||:短路或,知道一半结果就不行
    //   |:不短路,不管前面结果如何,继续往下执行

//需求1:要求手机必须满足尺寸大于等于6.95,且内存必须大于等于8.

//需求2:要求手机要么满足尺寸大于等于6.95,要么内存必须大于等于8.

public class OperatorDemo5 {
    public static void main(String[] args) {
        // 目标:掌握逻辑运算符的使用。
        // 需求:要求手机必须满足尺寸大于等于6.95,且内存必须大于等于8.
        double size = 6.8;
        int storage = 16;
        // 1、& 前后的条件的结果必须都是true ,结果才是true.
        boolean rs = size >= 6.95 & storage >= 8;
        System.out.println(rs);

        // 需求2:要求手机要么满足尺寸大于等于6.95,要么内存必须大于等于8.
        // 2、| 只要多个条件中有一个是true,结果就是true.
        boolean rs2 = size >= 6.95 | storage >= 8;
        System.out.println(rs2);

        // 3、!取反的意思
        System.out.println(!true); // false
        System.out.println(!false); // true
        System.out.println(!(2 > 1)); // false

        // 4、^ 前后条件的结果相同时返回false,不同时返回true.
        System.out.println(true ^ true); // false
        System.out.println(false ^ false); // false
        System.out.println(true ^ false); // true
        System.out.println(false ^ true); // true

        // 5、&& 左边为false,右边不执行。
        int i = 10;
        int j = 20;
        // System.out.println(i > 100 && ++j > 99);
        System.out.println(i > 100 & ++j > 99);
        System.out.println(j);

        // 6、|| 左边是true ,右边就不执行。
        int m = 10;
        int n = 30;
        // System.out.println(m > 3 || ++n > 40);
        System.out.println(m > 3 | ++n > 40);
        System.out.println(n);
    }
}
  1. 三元运算符:关系表达式?值1:值2;

  1. 运算优先级

  &&运算比||运算的优先级高,如果说想要提高优先级,可以通过添加()来实现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值