JAVA学习笔记——第三章 变量

发布时间:2024年01月18日

🔥博客主页:?A_SHOWY
🎥系列专栏力扣刷题总结录?数据结构??云计算??数字图像处理??力扣每日一题_?

变量

变量是程序的基本组成单位,是内存中的一个数据存储空间。变量有三个基本要素:类型+名称+值。变量的使用,声明后赋值后即可使用

变量使用注意事项:同c++很类似

程序中+号使用:左右都是数值型的时候,做加法运算,当有其中一边是字符串的时候,做拼接运算。

数据类型

基本数据类型+引用数据类型

整型细节

  1. JAVA整型常量默认值是int,声明long型常量需要在后边加l或者L
    int n1 = 1;//四个字节
    int n2 = 1L;//不对,因为先识别是long型变量不能放入int
    long n3= 1L; //匹配,正确
  2. bit:最小存储单位 byte:基本存储单位? 1byte = 8bit(位)

浮点型细节

  1. 浮点数 = 符号位 + 指数位 + 尾数位
  2. 尾数可能丢失造成精度损失
  3. 默认是double类型,需要float加f
  4. double num = .123;
    System.out.prinln(num5);//0.123
    System.out.prinln(5.12e2);//512.0
    System.out.prinln(5.12E-2);/0.0512
    
    .123等价于0.123,5.12e2【5.12* 10 的2次方】5.12E-1【5.12除以10的-2次方】
  5. 浮点数使用陷阱
    double num1 = 2.7;
    double num2 = 8.1/3;//计算得到的
    System.out.prinln(num1);//2.7
    System.out.prinln(num2);//接近2.7小数
    //得到结果对小数的运算结果进行相等判断的时候,要小心
    //应该是两个数的差值绝对值在某个精度区间内判断
    System.out.prinln(Math.abs(num1 - num2));
    if(num1 == num2) System.out.prinln("相等"); //错误
    if(num1 - num2 < 0.000001) System.out.prinln("相等"); //正确
    

    matools.com? ?api在线文档

字符类型细节?

  1. 一个字符char,一个char两个字节4
  2. 比如当输出94的字符时,输出用94表示的字符
    char c4 = 94;//输出a
  3. char的本质是一个整数,默认输出时,是unicode码对应的字符,要输出数字,要进行(int)强制类型转换

  4. char类型可以运算

    System.out.println("a" + 10); //107
    
    char c5 = 'b' + 1;
    System.out.println((int)c5);//99
    System.out.println(c5);// c
  5. 字符类型本质探讨,字符型存储到计算机中,需要将对应码值找出来

    ? ? ? ? 存储:‘'a'? ——> 码值97——>二进制(1100001)——>存储

    ? ? ? ? 读取二进制(1100001)——>码值97——>’a‘——>显示

  6. 编码特性

? ? ? ? ASCll码由一个字节表示的,128个字符,但是一个字节表示256个字符。Unicode是ASCll扩展由两个字节表示字符,兼容ASCll码表。utf8大小可变编码,字符用一个字节,汉字用三个字节 ,可以认为是unicode码的一个改进,互联网上使用最广unicode实现方式。gbk字符用一个字节,汉字用两个字节。big5 繁体中文

布尔类型细节?

  1. 占用1个字节,适用于逻辑判断
  2. 不可以用0和非0整数代替true或者false,和c语言不同

?API在线文档下·

基本数据类型转换?

精度小的可以无误转换为精度大的

自动类型转换细节?
  1. 有多种数据混合运算,系统自动转成容量最大的数据类型
  2. (byte,short)和char之间不会相互自动转换
  3. ?byte,short和char三者之间可以相互计算,计算时首先转换为int类型
    char b2 = 1;
    short s1 = 1;
    short s2 = b2 + s1;//错误的运算时会提升精度到int
    
    
    
    byte c1 = 1;
    byte c2 = 2;
    byte c3 = c1 + c2;//错误,只要有运算就是int
  4. 布尔类型不参与转换

强制类型转换细节??
  1. 当进行数据精度大的到精度小的运用强制转换
  2. 强制转换符号只针对最近的数有效,可以用小括号提升优先级
  3. char可以保存int的常量值,但是不能保存int的变量值,需要强转
    char c1 = 100;
    int m = 100;
    char c2 = m;//不行
    char c3 = char(m);//可以

基本数据类型 -> string?

int n1 = 100;
double b2 = 2.2;
String str1 = n1 + "";
String str2 = b2 + "";

string -> 基本数据类型??

?保证s5格式正确,如果是字母,就会出现异常

String s5 = "123";
       // 使用基本数据类型对应的包装类的相应方法,得到基本数据类型
        int num1 = Integer.parseInt(s5);
        double num2 = Double.parseDouble(s5);
        float num3 = Float.parseFloat(s5);
        long num4 = Long.parseLong(s5);
        byte num5 = Byte.parseByte(s5);
        boolean b = Boolean.parseBoolean("true");
        short num6 = Short.parseShort(s5);

?字符串转成字符:从字符串取出第一个字符

System.out.println(s5.charAt(0));

取出以后是字符1

作业练习:

String name = "cpy";
        int age = 22;
        double score = 100.0;
        char sex = '男';
        String hoppy = "篮球";
        System.out.println("姓名\t年龄\t成绩\t性别\t爱好\n" + name + "\t" +
                age + "\t" + score + "\t" + sex + "\t" + hoppy);

文章来源:https://blog.csdn.net/showy0/article/details/135642305
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。