b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

char[]数组 Java基础知识之数据类型

电脑杂谈  发布时间:2017-12-18 23:05:07  来源:网络整理

指针数组如何定义_char_char[]数组

java语言是一种强类型语言

变量或常量必须有类型:声明变量或常量必须声明类型。

赋值时类型必须一致:值的类型必须和变量或常量的类型完全一致。

运算时类型必须一致:参与运算的数据类型必须一致才能运算。

java中的数据类型分为基本数据类型和引用数据类型

基本数据类型:基本数据类型共有8种,分别是:布尔型boolean, 字符型char和数值型byte/short/int/long/float/double。由于字符型char所表示的单个字符与Ascii码中相应整形对应,因此,有时也将其划分到数值型中

引用数据类型:引用类型具体可分为:数组、类和接口。

基本数据类型:

数值类型在内存中直接存储其本身的值,对于不同的数值类型,内存中会分配相应的大小去存储。如:byte类型的变量占用8位,int类型变量占用32位等。相应的,不同的数值类型会有与其存储空间相匹配的取值范围

这里写图片描述

在java中整数的默认数据类型是int, 例如数字4, 小数的默认数字类型是double, 例如3.12. 当float a = 3.12时会报错, 因为3.12的默认数据类型是double

看下面例子

public class Test {
    public static void main(String[] args) {
        byte a = 128;   //编译出错
        byte b = 127;   //编译正确

        float c = 3.12; //编译出错
        float d = (float) 3.12; //编译正确
    }
}

char_char[]数组_指针数组如何定义

将一个int型的128赋值给byte a编译出错,将127赋值给byte b编译正确,为什么呢?

原因在于:jvm在编译过程中,对于默认为int类型的数值时,当赋给一个比int型数值范围小的数值类型变量(在此统一称为数值类型k,k可以是byte/char/short类型),会进行判断,如果此int型数值超过数值类型k,那么会直接编译出错。因为你将一个超过了范围的数值赋给类型为k的变量,k装不下嘛,你有没有进行强制类型转换,当然报错了。但是如果此int型数值尚在数值类型k范围内,jvm会自定进行一次隐式类型转换,将此int型数值转换成类型k。这一点有点特别,需要稍微注意下。

在其他情况下,当将一个数值范围小的类型赋给一个数值范围大的数值型变量,jvm在编译过程中俊将此数值的类型进行了自动提升。在数值类型的自动类型提升过程中,数值精度至少不应该降低(整型保持不变,float->double精度将变高)。

public class Test {
    public static void main(String[] args) {
        long a = 11111111111;   //编译出错
        long b = 11111111111L;   //编译正确

        int z = 10; //编译正确
        long q = z; //编译正确
    }
}

如上:定义long类型的a变量时,将编译出错,原因在于11111111111默认是int类型,同时int类型的数值范围是-2^31 ~ 2^31-1,因此,11111111111已经超过此范围内的最大值,故而其自身已经编译出错,更谈不上赋值给long型变量a了。

此时,若想正确赋值,改变11111111111自身默认的类型即可,直接改成11111111111L即可将其自身类型定义为long型。此时再赋值编译正确。char[]数组


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-54328-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...