基础知识回顾01

基础知识回顾01(自用)

自用主要是因为自己写的自己容易理解一点,因为写的很乱,表达的不是很好。(看的视频是b站狂神的,有直接截得代码图,然后我整理了一点点,还有很多漏的),大家看的时候有啥建议可以提哈(~o ̄▽ ̄)~o 。。。滚来滚去……o~(_△_o~) ~。。。

程序运行机制

在这里插入图片描述

数据类型

强类型语言

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

弱类型语言

Java的数据类型分为两大类

  • 基本类型(primitive type)
    在这里插入图片描述

    位(bit):是计算机 内部数据储存的最小单位,11001100是一个八位二进制数。

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

    1B(byte,字节)=8bit(位)

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

    1024B=1KB

    1024KB=1M

    1024M=1G

    1024G=1TB

  • 引用类型(reference type)

在这里插入图片描述

  • 实例

在这里插入图片描述

其中字符串String不属于基本数据类型,String是final修饰的Java类,属于引用类型。

数据类型扩展

整数扩展

整数扩展:(进制) 二进制0b 十进制 八进制0 十六进制0x

注意:这里的是数字0,不是字母o

public static void main(String[] args){
    int a = 10;
    int b = 010;//八进制0
    int c = 0x10;//十六进制0x
    
    System.out.println(a);//10
    System.out.println(b);//8
    System.out.println(c);//17
}

浮点数扩展

浮点数扩展:float double

public static void main(String[] args){
    float a = 0.1F;
    double b = 1.0/10;
    
    System.out.println(a==b);//比较结果false
    System.out.println(a);//0.1
    System.out.println(b);//0.1
    //float类型:单精度浮点数,有限的离散数据,舍入误差,指数范围有限(-127~128)。一般在cpu中处理单精度float要比double快。
    float c = 23232345454567F;
    float d = c+1;
    
    System.out.println(c==d);//比较结果true
    
}

字符类扩展

字符类扩展:所有的字符本质还是数字

编码Unicode表,占2字节。

public static void main(String[] args){
    char a = 'a';
    char b = '中';
    
    System.out.println(a);//a
    System.out.println(int)a);//97,强制转换Unicode表中对应的数字
    System.out.println(b);//中
    System.out.println((int)a);//20013,同上
    
    //转义字符
    // \t 制表符,空格
    // \n 换行
    System.out.println("Hello\tworld!");
    System,out.println("Hello\nworld");
}

布尔值扩展

boolean flag = true;

一般新手是这样写if(flag == true){}

老手是if(flag){}

//总之就是代码学到后面就需要开始精简代码,以最少的代码量完成最多的需求

类型转换

类型转换

在这里插入图片描述

其中,小数的优先级高于整数。

public static void main(String[] args){
    int i = 128;
    byte b = (byte)i;
    
    System.out.println(i);//128
    System.out.println(b);//-128,内存溢出
    
    //强制转换  (类型)变量名    高到低
    
    //自动转换     低到高
    double a = i;
    
    char c = 'a';
    int d = c+1;
    System.out.println(d);//98(a的对应Unicode数值为97)
    System.out.println((char)d);//b
    
    /*
    注意点:
    1.不能对布尔值进行转换
    2.不能把对象类型转换为不相干的类型
    3.在把高容量转换到低容量的时候,强制转换
    4.转换的时候可能存在内存溢出,或者精度问题!
    */
    //精度问题
    System.out.println((int)13.7);//13,精度丢失
    System.out.println((int)-45.73f);//-45
}

JDK7新特性

JDK7新特性,数字之间可以用下划线分割

操作较大的数值时,注意溢出问题

public static void main(String[] args){
    int money = 10_0000_0000;//10亿,下划线分割,提高效率
    int years = 20;
    int total = money*yeas;
    Long total_one = money*yeas;//先计算再转换了,默认是int,转换long之前相乘时就已经出错存在问题
    Long total_two = money*(Long)yeas;//200亿,答案正确
    
    
    System.out.println(total);//-1474836480,计算时溢出
    
    //Long long,L l ,容易出错,养成大写的习惯
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值