首页 > 编程语言 > 详细

【Java 学习之路】02 变量

时间:2021-09-08 22:42:45      阅读:81      评论:0      收藏:0      [点我收藏+]

变量介绍

变量是程序的基本组成单位。

变量由类型、名称以及值三个要素组成

代码演示

int a = 1;

以上代码中,int为变量类型,a为变量名称,1为变量的值

变量相当于内存中一块数据存储空间的表示,不同的数据类型会导致数据存储空间的大小不同。

“+”的使用

  1. 左右为数值做加法运算
  2. 左右一方为字符串做拼接运算
  3. 运算顺序从左到右

代码演示

public class plus{
    public static void main(String[] args){
        System.out.println(100 + 98);
        System.out.println("100" + 98);
        System.out.println("hello" + 100 + 98);
        System.out.println(100 + 98 +"hello");
    }
}

输出

198
10098
hello10098
198hello

基本数据类型

  • 数值型:byte[1]、short[2]、int[4]、long[8]、float[4]、double[8]
  • 字符型:char[2]
  • 布尔型:boolean[1]

PS:方括号内部为该基本数据类型的所占字节长度

整型

  1. Java各整数型有固定的范围和字段长度,不受操作系统影响
  2. Java的整型常量(具体值)默认为int类型,声明long型常量需要在后面加l或者L
  3. Java程序中整型变量常声明为int类型,除非不足以表示大数字才使用long类型

PS:当把一个整型常量赋值给byte时,先判断该数值是否在byte范围内,如果是就可以赋值

浮点型

  1. Java各浮点型有固定的范围和字段长度,不受操作系统影响
  2. Java的浮点型常量(具体值)默认为double类型,声明float型常量需要在后面加f或者F
  3. 浮点型常量通常有两种表现形式

十进制形式:5.12 512.0F .512(等价0.512)

科学计数法形式:5.12E2 5.12E-2

  1. Java程序中浮点型变量常声明为double类型,因为它比float类型更精确
  2. 浮点数使用陷阱比较:2.7和8.1/3比较

代码演示

public class FloatDetail{
    public static void main(String args[]){
        double num1 = 2.7;
        double num2 = 8.1/3;
        System.out.println(num1);
        System.out.println(num2);
    }
}

输出

2.7
2.6999999999999997//接近2.7但不是2.7

原因:计算机不清楚8.1小数点后到底有几位,这是由计算机储存浮点数的机制决定的

使用点:当我们对运算结果为小数的进行相等判断时,要小心;此时应该使用两个数的差值的绝对值,在某个精度范围内进行判断

不能使用以下判断

if(num1 == num2){
    System.out.println("相等");
}

应该使用以下判断

if(Math.abs(num1 - num2) < 0.001){
    System.out.println(math.abs(num1 - num2);
    System.out.println("相等");
}

字符型

  1. 字符常量是用单引号括起来的单个字符
  2. Java中允许使用转义字符来将其后面的字符转变为特殊字符常量
  3. Java中char的本质是一个整数,在输出时,输出Unicode码对应的字符
  4. 直接给char型变量赋一个整数,输出时会按照对应的Unicode码对应的字符
  5. char类型是可以进行运算的,相当于一个整数,因为每个字符都有对应的Unicode码

代码演示

public class CharDetail{
    public static void main(String args[]){
        char c1 = ‘a‘;
        char c2 = ‘张‘;
        char c3 = 97;
        char c4 = ‘\t‘;
        char c5 = ‘b‘ + 1;
        System.out.println(c1);//a
        System.out.println(c2);//张
        System.out.println(c3);//a
        System.out.println(c4);//一个制表位
        System.out.println((int)c1);//97
        System.out.println(‘a‘ + 10);//107
        System.out.println((int)c5);//99
        System.out.println(c5);//c
    }
}

输出

a
张
a

97
107
99
c

布尔类型

  1. 布尔类型也叫boolean类型,该类型数据只允许取值true或者false,无null
  2. boolean类型适用于逻辑运算,一般用于程序流程控制

基本数据类型转换

自动转换类型

基础

当Java 程序在进行赋值或者运算时,精度小的类型自动转换为精度大的类型,其大小排序规则为:

  1. char-->int-->long-->float-->double
  2. byte-->short-->int-->long-->float-->double

代码演示

public class AutoConvert{
    public static void main(String args[]){
        //先转换,后赋值
        int a = ‘c‘;
        double d = 80;
        System.out.println(a);
        System.out.println(d);
    }
}

输出

97
80.0

细节

  1. 多种类型数据混合运算时,系统会先把所有数据转换成精度最大的那种数据类型再进行计算
  2. 当把精度大的数据类型赋值给精度小的数据类型时会报错,反之,则会进行自动转换
  3. (byte,short) 和 char 之间不会互相自动转换
  4. byte、short和 char 三者可以计算,在计算时它们都会转换为int类型
  5. boolean类型不参与转换
  6. 自动提升原则:表达式的结果的类型自动提升为操作数中最大的类型

强制转换类型

基础

强制转换是自动转换的逆过程,会造成精度降低或者溢出,需要注意

细节

  1. 当进行数据从高精度到低精度的转换就需要强制转换
  2. 强制转换符只对最近的操作数有效
  3. char类型可以保存int类型的常量值,但不能保存int类型的变量值,需要强制转换

代码演示

public class ForceConvertDetail{
    public static void main(String args[]){
        //int n = (int)10*3.5+6*1.5;错误,原因:double => int
        int n = (int)(10*3.5+6*1.5);//(int)44.0 => 44
        System.out.println(n);//44
        int m = 100;
        //char c1 = m;//错误,原因:int => char
        char c2 = (char)m;
        System.out.println(c2);//输出100对应的字符(d)
    }
}

输出

44
d

String类型和基本类型转换

基本数据类型转String类型

语法:将基本数据类型的值 + ""

代码演示

public class BasicToString{
    public static void main(String args[]){
        int n1 = 10;
        double d1 = 1.1;
        boolean b1 = true;
        String s1 = n1 + "";
        String s2 = d1 + "";
        String s3 = b1 + "";
        System.out.println(s1 + ‘\t‘ + s2 + ‘\t‘ + s3);
    }
}

输出

10	1.1	true

String类型转基本数据类型

语法:通过基本类型的包装类调用parseXX方法即可

代码演示

public class StringToBasic{
    public static void main(String args[]){
        String s1 = "123";
        String s2 = "10.1";
        String s3 = "true";
        int n1 = Integer.parseInt(s1);
        double d1 = Double.parseDouble(s2);
        boolean b1 = Boolean.parseBoolean(s3);
        System.out.println(n1);
        System.out.println(d1);
        System.out.println(b1);
        //怎么把字符串转成字符?没有办法转换,只能取字符串里的某个字符
        //String.charAt(x),其中用x来确定取第几个字符,x从0开始数起对应字符串的第一个字符
        System.out.println(s1.charAt(0));
        System.out.println(s1.charAt(1));
    }
}

输出

123
10.1
true
1
2

注意事项

  1. 把String类型转成基本数据类型时,要确保String类型可以转成有效的数据,如"123"可以转换成整数,但是"hello"就无法转换成整数
  2. 如果格式不正确,程序就会抛出异常,然后停止运行

【Java 学习之路】02 变量

原文:https://www.cnblogs.com/qi-hei/p/15240062.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!