java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java类型转换和变量

java中类型转换和变量理解及实例详解

作者:云深路遥

由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换,这篇文章主要介绍了java中类型转换和变量理解的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

一 类型转换

java是强类型语言,所以必须在运算的时候,注意数据是否溢出,此时就需要利用到类型转换

数据类型储存值从低到高如下

byte,short,char,int,long,float,double.

运算中,不同类型的数据先转换为同一类型,然后再进行运算

强制转换

注意点:
1,不能对布尔值进行转换
2,不能把对象类型转换为不相干的类型
3,在把高容量转换到低容量的时候,强制转换(反之就不用动)
4,转换的时候可能存在内存溢出,或者精度问题!
public class deme_3 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte) i; //内存溢出
//        byte b = 128;
​
        //强制转换 (类型)变量名
        //自动转换 从低到高
        System.out.println(i);
        System.out.println(b);
         System.out.println("==================");
        System.out.println((int)23.7); //23
        System.out.println((int)-55.57f);//-55 存在精度问题
        System.out.println("==================");
        char c = 'A';
        int d = 1;
        int s = c + d;
        System.out.println(s); //int
        System.out.println((char)s);//char类型B
 }
}

简单来说就是,计算机的存储单位字节不够用了,要换大的。

操作数字比较大时候,记得要注意溢出问题

例如

public class deme_3 {
    public static void main(String[] args) {
​
//jdk7 以后新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money * years;//计算之后溢出了
        long total1 = money * years;//定义了long也溢出了
        long total2 = money * (long)years;//先把一个数转换为long
        long total3 = (long)money * years;
        System.out.println(total);
        System.out.println(total1);
        System.out.println(total2);
        System.out.println(total3);
​
  }
}

细节:为什么total1 不能转换,因为money和years都是int类型

详细解释

避免这种情况,需要在运算前将其中一个操作数转换为 long

一个数字转换为long就行了

二 变量

注意事项

代码部分:

public class deme_4 {
    public static void main(String[] args) {
        int a = 1,b = 2,c = 3,d = 4;
        System.out.println(a + "," + b + "," + c + "," + d);
    }
}
​

注意:你们仔细看我的println打印值的地方用的是加号(是不是和c语言不一样)。我下面的图片就是错误示范,大家可以去看一下!

java中“同时打印多个变量”的问题

Java 的 System.out.println(或 print不支持像 C 语言 printf 那样直接用 “逗号分隔多个变量” 传参。若要打印多个变量,需通过 “字符串拼接” 或 printf 格式化输出 实现:

之前的代码 System.out.println(a,b,c,d); 报错,是因为 println 方法不支持 “多变量逗号分隔” 的传参语法 —— 它需要将多个变量 ** 拼接成一个整体(字符串或格式化内容)** 后再传入。

接下来大家肯定就要问这个加号为什么要这么用了,注意看我细节:在 Java 中,+ 号在这里的作用是字符串拼接,这是 Java 语法中一种特殊的处理逻辑。

例如:

int a = 1;
String str = ", ";
int b = 2;
System.out.println(a + str + b); // 输出结果:1, 2

当 + 号两边的 “元素” 中至少有一个是字符串类型时,+ 就不再是 “数学加法”,而是 “拼接”—— 它会把所有元素转换成字符串 **,然后首尾连接成一个新的字符串。

代码 a + ", " + b + ", " + c + ", " + d 中:

最后 System.out.println 接收这个拼接好的字符串,打印出结果

和数学中+的区别

如果 + 号两边都是数值类型(比如 intdouble 等),它才会执行数学加法:

int x = 10, y = 20;
System.out.println(x + y); // 输出 30(数学加法)
System.out.println(x + ", " + y); // 输出 "10, 20"(字符串拼接)

变量的作用域

目录

局部变量

代码示例

public class deme_6 {
    //main方法
    public static void main(String[] args) {
        //局部变量,必须声明和初始化值
        int i = 10;
        System.out.println(i);
​
    }
​
    //其他方法
    public  void  add(){
        System.out.println(i); //i在这个方法里是无法表达的,这就是作用域
    }
}​

实例变量

定义:从属于对象

格式:变量类型 +变量名字 = new Deme06()

public class deme_6 {
    //实例变量:从属于对象,在不进行初始化时,默认输出是0
    String name = ",";
    int age = 2;
​
​
    //main方法
    public static void main(String[] args) {
        //局部变量,必须声明和初始化值
        int i = 10;
        System.out.println(i);
//
        deme_6 deme06 = new deme_6();
        System.out.println(deme06.age);
        System.out.println(deme06.name);
    }
​
    //其他方法
    public  void  add(){
//        System.out.println(i);
    }
}​

兄弟们给你们看我的错误:类声明是 public class deme_6(小写开头),但创建对象时写成了 Deme_6 deme06 = new Deme_6();(大写开头),Java 是大小写敏感的,所以编译器找不到名为 Deme_6 的类,也会报 “找不到符号”。

类变量

关键词:tatic (中文:静态的)

public class deme_6 {
    //实例变量:从属于对象,在不进行初始化时,默认输出是0
    String name = ",";
    int age = 2;
//类变量
    static int age2 = 2;
​
    //main方法
    public static void main(String[] args) {
        //局部变量,必须声明和初始化值
        int i = 10;
        System.out.println(i);
//
        deme_6 deme06 = new deme_6();
        System.out.println(deme06.age);
        System.out.println(deme06.name);
        System.out.println(age2);
    }
​
    //其他方法
    public  void  add(){
//        System.out.println(i);
    }
}​

变量命名规则

有效字符与开头限制

int count;        // 正确(字母开头)
int _value;       // 正确(下划线开头)
int $temp;        // 合法但不推荐($ 开头)
// int 123num;    // 错误(数字开头)
// char @sym;     // 错误(含非法字符 @)

命名规范与最佳实践

1. 驼峰命名法(Camel Case)

2. 见名知意原则

总结

到此这篇关于java中类型转换和变量理解的文章就介绍到这了,更多相关java类型转换和变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文