精华内容
下载资源
问答
  • 八大基本类型

    千次阅读 2021-01-11 09:55:29
    八大基本类型 大小 byte,占一个字节 short,占两个字节 char,占两个字节 int,占4个字节 long,占8个字节 float,占4个字节 double,占8个字节 boolean,占1位,但计算机的最小处理单位是字节,《Java虚拟机规范...

    八大基本类型

    大小

    • byte,占一个字节
    • short,占两个字节
    • char,占两个字节
    • int,占4个字节
    • long,占8个字节
    • float,占4个字节
    • double,占8个字节
    • boolean,占1位,但计算机的最小处理单位是字节,《Java虚拟机规范》一书中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。所以java中boolean的大小取决于虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。

    取值范围

    一般来说,计算机科学表示数值的方法有:原码、反码和补码,现在的计算机用补码存储整数数值

    原码,就是用二进制表示的原始编码,
    反码,就是除符号位外,其它位取反
    补码,正数的补码等于原码,负数的补码等于反码加1

    以byte举例,其他的一样。byte的大小是一个字节,也就是8位,第一位是符号位,0是正数,1是负数,最大值也就是0111 1111,由于正数的补码,原码,反码都相同,所以最大值也就是0111 1111,换成十进制就是+127,**对于负数而言,其补码由于需要反码加1 **, 对于11111111其补码就是10000001=-1,依次类推11111110补码为10000010=-2…一直到10000001补码为11111111=-127,接下来最大的负数为10000000十进制其实是-128,所以byte的取值范围是-128~127

    小伙伴可能会疑惑,为什么10000000表示是-128而不是0呢?

    1. 原码计算十进制的表达式: 1-1=0

      1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2

      如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数。为了解决原码做减法的问题, 出现了反码。

    2. 反码计算十进制的表达式: 1-1=0

      1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0

      发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在”0”这个特殊的数值上. 虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0。于是补码的出现, 解决了0的符号以及两个编码的问题。

    3. 补码计算十进制的表达式: 1-1=0

      1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 =[0000 0001]反 + [1111 1110]反= [0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原

      这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了。而且可以用[1000 0000]表示-128:

      (-1) + (-127) = [1000 0001]原 + [1111 1111]原 = [1111 1111]补 + [1000 0001]补 = [1000 0000]补

    参考博客

    Java中,为什么byte类型的取值范围为-128~127?

    展开全文
  • Java八大基本类型详解

    千次阅读 多人点赞 2020-03-27 14:52:59
    Java有八大基本类型,其中包括4个整数类型,2个浮点类型,有个字符类型,1个布尔类型

    Java有八大基本类型,其中包括4个整数类型,2个浮点类型,有个字符类型,1个布尔类型

    八大基本类型及其包装类

    Java8大基本类型

    - 整数类型byte、short、int和long

    byte:字节型;short:短整型;int:整型;long:长整型。
    刚开始学习时有种疑惑,为啥弄这么多整数类型?
    从字节型到长整型,整数的范围总是在不断增加,不够用了自然就要扩展范围,添加新的类型;若范围小的整数浪费空间太多,又会影响程序,所以在使用时就有了类型供我们选择。

    - 浮点型float和double

    float是单精度浮点数,double是双精度浮点数;double类型要比float类型的精度更高。
    举个栗子:分别向一个float和double类型的变量中存入圆周率,打印结果

    public class PrintRange {
    	public static void main(String[] args) {
    		float a = 3.14159265358979323846F;
    		double b = 3.14159265358979323846;
    		System.out.println(a);
    		System.out.println(b);
    	}
    }
    

    输出结果
    在这里插入图片描述

    - 字符型char

    Java采用的是Unicode编码格式,字符类型的变量不仅可以接收单字符常量,还可以接收0~65535之间的整数。
    转义字符表(有些特殊含义的字符需要通过\来协助)
    转义字符表

    - 布尔型boolean

    Java中的布尔型只表示字面true和false,不同C++之处,如果将一个整数值赋值给布尔类型变量,编译器将报错。

    - Java常量默认类型

    在Java中整型常量默认int类型,如果想要使用long类型常量,需要在常量后添加L/l字符,例如:15L
    浮点数默认为double类型,如果想要float类型需要添加F/f,例如:3.14F

    Tips: 添加后缀字符来辅助编译器快速识别常量的类型,这种后缀字符有时可有可无,有时却必须强制我们使用。

    - 基本类型的范围

    我们可以利用基本类型的包装类中的关键字MAX_VALUEMIN_VALUE,打印出基本类型的范围。

    public class PrintRange {
    	public static void main(String[] args) {
    		System.out.println("byte: "+Byte.MIN_VALUE+" ~ "+Byte.MAX_VALUE);
    		System.out.println("short: "+Short.MIN_VALUE+" ~ "+Short.MAX_VALUE);
    		System.out.println("int: "+Integer.MIN_VALUE+" ~ "+Integer.MAX_VALUE);
    		System.out.println("long: "+Long.MIN_VALUE+" ~ "+Long.MAX_VALUE);
    		System.out.println("float: "+Float.MIN_VALUE+" ~ "+Float.MAX_VALUE);
    		System.out.println("double: "+Double.9+" ~ "+Double.MAX_VALUE);
    		System.out.println("char: "+Character.MIN_VALUE+" ~ "+Character.MAX_VALUE);
    	}
    }
    

    Java基本类型范围

    - 基本类型越界行为

    注:这里讨论的越界行为只针对于整型变量(即byte,short,int,lang)
    举个栗子
    在这里插入图片描述
    我们看到变量 a 是强制赋值一个越界的整数(需要强制转换),输出结果确是Byte.MIN_VALUE(128比最大值多了1);变量 b 是通过加法运算越界,结果也是 Integer.MIN_VALUE
    变量越界后,输出的是错误结果,但是我们如何计算这个错误结果呢?
    举个栗子
    在这里插入图片描述
    计算方法(根据MAX_VALUE+1 = MIN_VALUE):
    Integer.MAX_VALUE+10000 = 2147483647+10000 = 2147483647 + 1 + 9999
    =Integer.MIN_VALUE + 9999 = -2147483648 + 9999 = -2147473649 (计算出了错误结果)
    Tips: 不论是其他算术运算导致过界,还是赋值中导致过界(大范围强制赋值给小范围)都可以这样计算

    基本类型间的相互转换

    - 隐式转换

    范围小的类型可以自动转换为范围大的类型,大范围类型能容纳小范围类型(也称显示转换为扩展转换)这些转换都是兼容的。

    byte → short → int → long → float → double;char → int
    自动转换

    - 显示转换

    大的范围转换为小范围类型,会造成信息丢失(也称隐式转换为窄化转换),不兼容性转换。如图,利用类型转换操作符(cast)进行显示转换。
    在这里插入图片描述
    浮点数转换为整数的小数问题
    float和double类型转换为整数时,总是舍去小数点后面的部分,称此行为为截尾。
    如果对小数点后面的部分进行四舍五入,即舍入操作,需要利用java.lang.Math中的round()方法

    基本类型和包装类之间的转换

    - 自动装箱和拆箱

    Java5出现的特性,基本类型和封装类之间可以进行自动拆箱和装箱进行类型转换(由基类转换为包装类)。
    在这里插入图片描述
    包装类中还包含很多将包装类装换为其他基类的接口,详细的可以查看Java API文档

    - 基本类型和String类型之间的转换

    在我们进行Java GUI界面开发时,通常会获取文本输入框的值,这就可能涉及到String类型转换为基本类型的问题。

    public class PrintRange {
    	public static void main(String[] args) {
    		//基类转换为String类型
    		int a = 125;
    		String s = String.valueOf(a);
    		//String类型转换为基类
    		a = Integer.parseInt(s);
    	}
    }
    

    String转换为基类利用的是基类对应包装类的parse···方法,基类转换字符串用的是String类中的valueOf方法,这些在Java API中都有介绍。

    基本类型作为方法参数传递中的转换

    举个栗子
    在这里插入图片描述
    自动转换发生在在重载方法中,要注意方法的选择。

    public class Transboundary
    {
    	public void f(int a){System.out.println("f(int)");}
    	public void f(short c){System.out.println("f(short)");}
    	public static void main(String[] args){
    		Transboundary transboundary = new Transboundary();
    		transboundary.f((byte)1);
    	}
    }
    

    在这里插入图片描述
    Tips: 在重载方法中,会自动选择调用离实参类型范围比较近的方法。

    运算中的类型中转换

    1. 范围小于int类型的变量会先转换为int型变量再进行运算,例如short、byte类型。
      在这里插入图片描述
    2. 范围小的和范围大的参与运算,会先转换为范围大的再进行运算。

    拓展:特殊的基本类型void

    在一些书中将void划归为基本类型,void类型的封装类Void的确在java.lang包中。

    展开全文
  • java八大基本类型初始化

    千次阅读 2017-09-30 09:58:10
    首先,java的八大基本类型为byte short int long float double char boolean对应的八大包装类型 Byte Short Integer Long Float Double Character Boolean 其中对基本类型进行初始化的操作,可以得到一个默认值...

    首先,java的八大基本类型为byte short int long float double char boolean对应的八大包装类型 Byte Short Integer Long Float Double Character Boolean


    其中对基本类型进行初始化的操作,可以得到一个默认值,对于包装类型初始化对象的时候也可以得到一个默认值,但是这两个默认值是不一样的。

    包装类型的初始化值统一为null。基本数据类型有两个特殊,一个是char初始化为空格符,一个是boolean初始化为false,其余的全是0


    在增强for循环中可以用包装类型的引用指向默认模式初始化的数组。反过来就会报错,例如一个null转化为基本数据类型会报空指针错误。

     

    int[] ch = new int[10];
    for(Integer i:ch){
        System.out.println(i);
    }
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    
    char[] ch = new char[10];
    for(char i:ch){
        System.out.println(i);
    }
    输出10个空格
    boolean[] ch = new boolean[10];
    for(boolean i:ch){
        System.out.println(i);
    }
    false
    false
    false
    false
    false
    false
    false
    false
    false
    false

    展开全文
  • JAVA八大基本类型的包装类

    千次阅读 2019-05-15 19:45:53
    Java有八大基本类型及包装类,分别是: byte 包装类是 Byte short包装类是 Short int 包装类是 Integer long 包装类是 Long float 包装类是 Float double 包装类是 Double char 包装类是 Character boolean...

    Java有八大基本类型及包装类,分别是:

    byte    包装类是 Byte

    short   包装类是 Short

    int     包装类是 Integer

    long    包装类是 Long

    float   包装类是  Float

    double  包装类是 Double

    char    包装类是 Character

    boolean 包装类是 Boolean

    然而这几种包装类都是在JAVA.lang中的。

    其中Integer ,Byte,Float,Double,Short,Long都属于Number类的子类,Character和Boolean是属于Object子类。

    包装类的优点:它们给我们提供了很多的使用方法,就好像集合中不允许我们存放基本数据类型,例如:存放数字时要使用包装类型。

    下面是8种基本数据类型,其名称、位数、默认值、取值范围及示例如下表所示:

    这些基本数据类型的方法都是在变量名前面加上类型的关键字,大家如果需要的话可以把它记下来,这样在日后的编写中就可以做到熟练运用。后期还会有数据类型的转换这些都很重要的是一个基础。

     

    接下类我们看下实例:

    public static void main(String[] args) {

    // ===========包装类

    // ‐‐提供一些实用的方法

    String s = "asdasdad";

    int q = Integer.parseInt(s);

    int t = Integer.valueOf(s);

    System.out.println(t);

    // 十进制转成十六进制:

    System.out.println(Integer.toHexString(500));

    // 十进制转成八进制

    System.out.println(Integer.toOctalString(500));

    // 十进制转成二进制

    System.out.println(Integer.toBinaryString(500));

    // 十六进制转成十进制

    System.out.println(Integer.valueOf("FFFF", 16).toString());

    // 八进制转成十进制

    System.out.println(Integer.valueOf("776", 8).toString());

    // 二进制转十进制

    System.out.println(Integer.valueOf("0101", 2).toString());

    // ‐‐自动装箱和自动拆箱

    Integer int1 = t;

    int int2 = int1;

    // ===包装类的一些常用类变量

    // byte

    System.out.println(" 基本类型:byte 二进制位数:" + Byte.SIZE);

    System.out.println(" 包装类:java.lang.Byte");

    System.out.println(" 最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);

    System.out.println(" 最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);

    System.out.println();

    // short

    System.out.println(" 基本类型:short 二进制位数:" + Short.SIZE);

    System.out.println(" 包装类:java.lang.Short");

    System.out.println(" 最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);

    System.out.println(" 最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);

    System.out.println();

    // int

    System.out.println(" 基本类型:int 二进制位数:" + Integer.SIZE);

    System.out.println(" 包装类:java.lang.Integer");

    System.out.println(" 最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);

    System.out.println(" 最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);

    System.out.println();

    // long

    System.out.println(" 基本类型:long 二进制位数:" + Long.SIZE);

    System.out.println(" 包装类:java.lang.Long");

    System.out.println(" 最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);

    System.out.println(" 最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);

    System.out.println();

    // float

    System.out.println(" 基本类型:float 二进制位数:" + Float.SIZE);

    System.out.println(" 包装类:java.lang.Float");

    System.out.println(" 最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);

    System.out.println(" 最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);

    System.out.println();

    // double

    System.out.println(" 基本类型:double 二进制位数:" + Double.SIZE);

    System.out.println(" 包装类:java.lang.Double");

    System.out.println(" 最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);

    System.out.println(" 最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);

    System.out.println();

    // char

    System.out.println(" 基本类型:char 二进制位数:" + Character.SIZE);

    System.out.println(" 包装类:java.lang.Character");

    // 以数值形式而不是字符形式将 Character.MIN_VALUE 输出到控制台

    System.out.println(" 最小值:Character.MIN_VALUE="

     

    + (int) Character.MIN_VALUE);

    // 以数值形式而不是字符形式将 Character.MAX_VALUE 输出到控制台

    System.out.println(" 最大值:Character.MAX_VALUE="

    + (int) Character.MAX_VALUE);

    // boolean

    System.out.println(Boolean.FALSE);

    System.out.println(Boolean.TRUE);

    }

    }

    再看下运行效果图:

     

    补充基本数据类型注意事项:

    1、如果整数字符没有带后缀的默认为int类型;如果有浮点字符后面没带后缀的默认为double类型。

    2、如果一个整数的值超出了int类型的范围,就必须在整数后面添加后缀“L”(不区分大小写,建议用大写)表示为long型。

    3、如果后缀有带“F”(不区分大小写)的整数和浮点数都是float类型的;后缀有“D”的(不区分大小写)整数和浮点数都是double类型的。

    4、编译器会在编译期对byte、short、int、long、float、double、char型变量的值进行检查,要是有超过它们的取值范围的就一定会报错。

    5、int类型值可以赋给所有数值类型的变量;

    long型值可以赋给long、float、double类型的变量;

    float型值可以赋给float、double类型的变量;

    double型值只能赋给double类型变量

    展开全文
  • 八大基本类型(primitive)

    千次阅读 2018-03-17 10:19:53
    八大基本类型:b c b s i l f d(primitive、主数据类型)boolean char byte int long float double ...
  • Java中的八大基本类型及转换

    千次阅读 2018-11-11 22:42:03
    Java中的八大基本类型及转换 分为四种: 1.整数类型 (1)byte,用于表示最小数据单位,如文件中的数据 (2)short,很少用 (3)int,最常用 (4)long,次常用 2.浮点数类型 (1)float,后缀F或f (2)double,...
  • java的八大基本类型

    万次阅读 多人点赞 2018-09-04 16:30:15
    Java基本类型共有种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。...
  • Java八大基本类型详解与包装类

    万次阅读 2016-06-30 14:55:11
    java八大基本类型: 整型: byte: byte数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是-128(-2^7); 最大值是127(2^7-1); 默认值是0; byte类型用在大型数组中节约空间,主要代替整数,...
  • Java八大基本类型

    千次阅读 2018-12-28 12:02:16
    基本类型 基本类型 存储空间 取值范围 默认初始值 boolean 1 bit true或false false char 2字节 0~65535 0 byte 1字节 -128~127 0 short 2字节 -32768~32767 0 int 4字节 约-21亿~21亿 0 long 8...
  • 八大基本类型对应的包装类

    万次阅读 2021-02-26 16:03:44
  • Java SE 八大基本类型

    千次阅读 2016-01-07 16:48:24
    java中有8大基本类型。这8大基本类型是byte、short、char、int、long、float、double和boolean。这是java比其他语言美的地方。有些编程语言类型混乱,比如linux shell语言,这类语言被称为弱类型语言。但不是弱类型...
  • Java中八大基本类型

    千次阅读 2019-03-05 15:39:58
    bite:一个字节,8位; short:两个字节,16位; int:四个字节,32位; long:个字节,64位; boolean:不知道多少字节; char:两个字节,8位 float:四个字节,32位; double:个字节,64位 ...
  • JAVA八大基本类型

    千次阅读 2015-11-04 10:56:53
    1.byte 一个字节 长度有三位数 2.short 二个字节 长度有五位数 3.int 4个字节 长度有十位数 4.long 长度有二十位数 5.float 4个字节 ...数字类型的顺序byte-short-int-long-float-double
  • 八大基本类型以及封装类(JAVA)

    千次阅读 2019-03-21 16:18:16
    类型 默认值 占用存储空间/字节 范围 包装类 byte 0 1 -128~127(-2的7次方到2的7次方-1)(1.8) Byte short 0 2 -32768~32767(-2的15次方到2的15次方-1) Short int 0...
  • Number 类,是八大基本类型的 父类

    千次阅读 2016-03-25 19:29:01
    public abstract class Number implements java.io.Serializable { /** * Returns the value of the specified number as an int. * This may involve rounding or truncation. * * @return
  • 一文详解 Java 的八大基本类型

    千次阅读 2019-10-24 15:20:57
    自从Java发布以来,基本数据类型就是Java语言中重要的一部分,本文就来详细介绍下每种基本类型的具体使用方法和限制。 作者 |Jeremy Grifski 译者 |弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文...
  • 八大基本数据类型

    千次阅读 2019-08-03 08:30:45
    Java八大数据类型~
  • Java八大基本数据类型

    万次阅读 多人点赞 2020-12-17 09:58:05
    Java基本数据类型图: 整数类型:byte 1字节,8位,最大存储数据量是255,存放的数据范围是-128~127之间。 构造方法: public Byte(byte value) 构建了一个新分配的Byte表示指定的byte价值。 参数 value -被 ...
  • Java 八大基本数据类型

    万次阅读 多人点赞 2018-09-11 14:59:48
    Java基本类型共有种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。...
  • java基本类型

    千次阅读 2018-09-27 10:35:30
    java基本类型 Java语言提供了基本类型。 四个整数类型; byte、short、int 、long 两个浮点类型; float、double 一种字符类型; char 一种布尔类型; boolean 基本型别 大小 最小值 最大值 byte ...
  • 八大基本数据类型字节

    千次阅读 2020-06-23 16:44:47
    Java 中基本数据类型占用字节空间总结 基本数据类型 所占用空间大小 byte b; 1字节 short s; 2字节 char c;2字节(C语言中是1字节)可以存储一个汉字 int i; 4字节 long l; 8字节 float f; 4字节 double d; 8...
  • java八大基本数据类型

    千次阅读 2018-07-06 17:34:25
    为什么需要有数据类型? 生活中的数据本来就是有类型的,只不过我们没有在意或者去深入研究。那么计算机语言就是去告诉计算机如何去解决...八大基本数据类型包括:整数类型(byte,short,int,long),浮点类型(floa...
  • 八大基本数据类型的默认值

    千次阅读 2018-11-12 08:55:24
    八大基本数据类型的默认值: boolean false char ‘/uoooo’(null) byte (byte)0 short (short)0 int 0 long 0L float 0.0f double ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 237,504
精华内容 95,001
关键字:

八大基本类型