精华内容
下载资源
问答
  • 一、在JAVA中一共有八种基本数据类型,他们分别是 byte、short、int、long、float、double、char、boolean整型 color=gray 其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样 byte的取值...

    一、在JAVA中一共有八种基本数据类型,他们分别是
    byte、short、int、long、float、double、char、boolean

    整型
    其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样
    byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)
    short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
    int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)
    long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)

    可以看到byteshort的取值范围比较小,而long的取值范围太大,占用的空间多,基本上int可以满足我们的日常的计算了,而且int也是使用的最多的整型类型了。
    在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。

    浮点型
    floatdouble是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同
    float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节
    double 1.797693e+308~ 4.9000000e-324 占用8个字节
    double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。
    浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。

    boolean型(布尔型)
    这个类型只有两个值,true和false(真和非真)
    boolean t = true;
    boolean f = false;

    char型(文本型)
    用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容
    字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加’ ‘,比如 ‘1’表示字符’1’而不是数值1,
    char c = ’ 1 ‘;
    我们试着输出c看看,System.out.println(c);结果就是1,而如果我们这样输出呢System.out.println(c+0);
    结果却变成了49。
    如果我们这样定义c看看
    char c = ’ \u0031 ‘;输出的结果仍然是1,这是因为字符’1’对应着unicode编码就是\u0031
    char c1 = ‘h’,c2 = ‘e’,c3=’l’,c4=’l’,c5 = ‘o’;
    System.out.print(c1);System.out.print(c2);System.out.print(c3);System.out.print(c4);Sytem.out.print(c5);

    二、String为什么不是基本数据类型
    java String 是个对象,是引用类型
    基础类型与引用类型的区别是,基础类型只表示简单的字符或数字,引用类型可以是任何复杂的数据结构
    基本类型仅表示简单的数据类型,引用类型可以表示复杂的数据类型,还可以操作这种数据类型的行为
    java虚拟机处理基础类型与引用类型的方式是不一样的,对于基本类型,java虚拟机会为其分配数据类型实际占用的内存空间,而对于引用类型变量,他仅仅是一个指向堆区中某个实例的指针。

    三、char的取值范围为什么没有负数
    char的取值范围是0~65535
    一开始我也很奇怪为什么char取值没有负数,后面经过学习了解才知道:char表示一个字符,一个整体,Unicode编码中的组成部分——摘自百度。
    也就是说他的取值范围是在Unicode编码中规定的,而Unicode编码规定char的取值范围就是0~65535,没有负值。

    最后贴出百度解释和定义的Unicode编码:
    Unicode码:
    Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字”经”的编码是0x7ECF,注意字符码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制 就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。 编码从0到127的字符与ASCII编码的字符一样,比如字母”a”的Unicode 编码是0x0061,十进制是97,而”a”的ASCII编码是0x61,十进制也是97, 对于汉字的编码,事实上Unicode对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万 多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字 也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用 4个字节来编码字符
    定义:
    Unicode码扩展自ASCII字元集。在严格的ASCII中,每个字元用7位元表示,或者电脑上普遍使用的每字元有8位元宽;而Unicode使用全16位元字元集。这使得Unicode能够表示世界上所有的书写语言中可能用於电脑通讯的字元、象形文字和其他符号。Unicode最初打算作为ASCII的补充,可能的话,最终将代替它。考虑到ASCII是电脑中最具支配地位的标准,所以这的确是一个很高的目标。
    Unicode影响到了电脑工业的每个部分,但也许会对作业系统和程式设计语言的影响最大。从这方面来看,我们已经上路了。Windows NT从底层支持Unicode。
    目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。

    展开全文
  • 基本数据类型是用的最频繁的类型。 而且占用存储空间小,可以把它们存入栈中,实现快速的操作。 而他们的封装类Integer等,必需创建实例,在堆中开辟内存,既消耗资源,又耗费时间。 boolean byte short char int ...

    ①、基本数据类型有哪些?

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

    ②、基本数据类型具有面向对象的特征么?

    不具备

    ③、我们都说java是面向对象的,那为什么会有“基本数据类型”这样不具备面向特征的数据类型呢?

    基本数据类型是用的最频繁的类型。
    而且占用存储空间小,可以把它们存入栈中,实现快速的操作。
    而他们的封装类Integer等,必需创建实例,在堆中开辟内存,既消耗资源,又耗费时间。他们类似于其他大多数非面向对象语言的简单数据类型。

    boolean byte short char int long float double 说他们是基本数据类型是因为他们在内存中值使用栈作为存储空间,而与之相对的引用数据类型(String 数组 对象等等)则是同时占用栈与堆。所以,使用基本数据类型的包装类要比基本数据类型的效率低一些。

    这样做的原因是出于效率方面的考虑。

    ④、为什么不直接全部整成基本数据类型呢?

    Java是一个面向对象的语言,然而基本数据类型不具备面向对象的属性。

    当我们把基本数据类型包装成包装类型后,基本数据类型就具备了面向对象的属性。

    【结论】

    取其精华去其糟粕,没有完全的泾渭分明,我们要以中庸之道看待软件编程。

    以上纯属个人观点,如有不妥,还望大神给予纠正、指点^_^

    展开全文
  •  Java中有8种基本数据类型boolean、byte、short、char、int、flaot、long、double,基本数据类型作为Java语言的一部分,但基本数据类型不是对象,基本数据类型放在堆栈中,对象放在堆中。堆的读写速度远不及栈,...

    Java是一门面向对象的语言,即一切皆是对象!那么为何数据类型中还分为:基本类型和对象?

            Java中有8种基本数据类型boolean、byte、short、char、int、flaot、long、double,基本数据类型作为Java语言的一部分,但基本数据类型不是对象,基本数据类型放在堆栈中,对象放在堆中。堆的读写速度远不及栈,如果使用基本数据类型相当于在栈上进行操作,对变量的创建和销毁速度非常快。相反,如果用类进行定义变量,需要在堆中进行操作,创建和销毁速度都比较慢。

            出于性能方面的考量,为了提高性能这样做是合理的。但有些地方必须用到对象,基本数据类型不是对象,怎么办呢?Java针对每种基本数据类型提供了包装类,即Boolean、Byte等。这样就解决了基本数据类型面向对象用的问题。

            同时,也正是包装类的使用,说明Java是一种纯OO的语言。

    展开全文
  • 基本数据类型不是类,但Java提供了与基本数据类型对应的包装类: 基本数据类型 对应的包装类 char Character byte Byte short Short int Integer long Long float Float double Double —...

    基本数据类型不是类,但Java提供了与基本数据类型对应的包装类:

    基本数据类型 对应的包装类
    char Character
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double

    ——为什么需要包装类呢?

    (以int和Integer为例)
    1.基本数据类型不是对象,在一些场合不能直接使用(例如某些类方法参数必须是对象类型),需要转化为对应的包装类对象才能继续使用。
    2.包装类的一些静态方法可实现不同数据类型的转化,如将字符串类型的数字"123"转为整数类型,可以通过int a = Integer.parseInt(“123”)完成,而将整数转为字符串使用,则要通过String c = String.valueOf(123)来完成。
    3.包装类的静态属性中含有相应数据类型的范围,如Integer.MIN_VALUE(int的最大值),Double.NaN(非数类型)、Double.NEGATIVE_INFINITY(负无穷)、Double.POSITIVE_INFINITY(正无穷)。

    ——它们之间如何转化?

    (以int和Integer为例)
    1.基本数据类型转化为包装类对象通过构造方法来完成。如:
    int s = 0;
    Integer S = new Integer(s);

    2.从包装类对象那里得到其代表的基本数据值需要调用该对象的相应方法,如上面的S可以通过调用intValue()方法得到一个int类型的值。
    如:
    Integer S = new Integer(0);
    int s = S.intValue();

    ——它们的区别?

    (以int和Integer为例)
    1. 声明方式不同:
    基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间。
    2. 存储方式及位置不同:
    基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用。
    3. 初始值不同:
    基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null。
    4. 使用方式不同:
    基本类型可直接赋值使用,而包装类型在集合(如:Collection、Map)时会使用到。

    展开全文
  • @[String为什么不是基本类型和理解final关键字] 八大基本类型 int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。 short:16位,最大数据存储量是65536,数据范围是-32768~...
  • 一,什么基本数据类型 java中提供了八个基本的数据类项:  整型:int(4B),byte(1B),short(2B),long(8B),  浮点型:float(4B),double(8B),  布尔型:boolean(1B),  字符型:char(2B) *...
  • Java中有8种基本数据类型,即boolean、byte、short、char、int、flaot、long、double,基本数据类型不是对象,基本数据类型放在堆栈中,对象放在堆中。堆栈中的数据用完就销毁,访问速度快,因为基本数据类型使用得...
  • 关于基本数据类型中的字节问题8种基本数据类型基本数据类型的范围为什么一个二进制表示8位,而范围却是-128~127?为什么-0就等于了-128呢,而不是其他数值呢 8种基本数据类型 int(整型)、short(短整型)、long(长...
  • 但Java中有8种基本数据类型byte、short、int、long、float、double、char、boolean,这8中基本数据类型在使用时是直接赋值的,并不需要创建对象,也不是什么静态类型。 原因: 基本数据类型放在堆栈中,对象放在堆...
  • oracle数据库中的类型为LONG(这里的long不是数字类型),Java中定义为了String字符串,后台获取的时候报错,说什么流关闭,搜了好多文章,大多数都解决不了,找的道路很漫长,既然最后解决了,那就更要记录一下。...
  • 本文结构如下: 什么基本数据类型 什么是包装类 两者的区别以及使用...因此方便基本类型的数据计算,java创造了八种基本数据类型:整型byte, short, int, long, 浮点型double, float, 字符型char, 布尔型bo...
  • Java提供了一套基本数据类型,总共有八种,也会有人说是有九种。 在我们的印象中,很多人可能会说出byte,short,int,long,float,double,boolean,char这...在Java的API中,并未说明void是基本数据类型,那为什么
  • 1:因为8种基本类型byte,short,int,long,char,float,double,boolean除了char没有默认值,其他都有默认值。 2:有默认值并不是好事,很可能在我们对数据库进行更新的时候,将数据错误的更新了。 3:定义一...
  • Java数据类型

    2020-09-25 22:20:51
    Java数据类型 Java中的数据类型可划分基本类型和复合类型。...(1)基本数据类型不是对象,在一些场合不能直接使用(例如某些类方法参数必须是对象类型),需要转化对应的包装类对象才能继续使用。 (2)包装类的一些静
  • 在《深入理解Java虚拟机:JVM高级特性与最佳实践》(第2版)中,对于虚拟机栈中的局部变量表存放内容是这样描述的:“局部变量表存放了编译期可知的各种基本数据类型(boolean、byte、char、short、int、flat、long、...
  • Java的数据类型分析?

    2020-07-04 09:38:14
    什么是JAVA的数据类型? JAVA的数据类型有两大类, 分为基本类型与引用类型。不是基本类型的就是引用类型,并且基本类型分4类8种 基本类型: 4类: 整数类型:byte、short、int、long 浮点类型:float、double 字符...
  • Java中的Long和Double类型

    千次阅读 2018-01-18 19:53:57
    Long数据范围是-2^63-(2^63-1),为什么Double类型的范围不是它,而是1.7e-308-1.7e+308呢?Java中的原子操作包括:1)除long和double之外的基本类型的赋值操作2)所有引用reference的赋值操作3)java.concurrent....
  • 初识Java之数据类型

    2020-09-26 22:26:33
    homework2 1.java包含哪些数据类型? 基本数据类型: (1)整型:byte、short、int、long. (2)浮点型:float、double. (3)字符型:char. (4)布尔型:booleen. 复合数据类型: ...(1)基本数据类型不是
  • oracle里long类型的总结

    2017-11-10 00:29:00
    转自原文oracle中long类型为什么不推荐使用 不是不推荐使用的,是一般用不到,而有些时候是会用到的,所以不能一概而论。1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。2、对于超出一定长度的文本...
  • String(一个特殊的数据类型

    千次阅读 多人点赞 2020-06-06 10:24:45
    那它为什么它不属于基本数据类型呢,这是因为基本数据类型不能创建对象,而String是可以创建对象的,String它是一个类,而基本数据类型不是,这就是这个数据类型的特别之处。 String创建对象 String创建对象
  • 标识符与数据类型

    2021-03-27 21:48:44
    标识符命名必须合法 类名,变量名,方法名都被称为标识符 变量名不能以-,#,%,*。@,数字开头,可以字母,美元$, _...byte: -128~127 (为什么不是128呢?因为里面加入了一个0) 通常定义整形变量时,使用in
  • java里不是说char类型自动向int型转换吗?那为什么… char b=‘a’+18; 右边’a’是char类型 18是int类型 那两个操作数...解析:首先要明白,在基本类型数据当中,强制类型转换只发生在int、long、float和double之间...
  • 那你有想过吗,为什么同样是基本数据类型,byte ,int short它们的赋值就是原子性的呢? 讲到根本,原来啊,是和你的操作系统是有关的,32位操作系统每次读取最长的是4个字节,32bit,所以,在32位操作系统上,超过32...
  • 为什么Java需要不同的数据类型? 1.理解:你是把鞋子、衣服、内裤...2.基本数据类型:记住兄台!8种是8种!!! 整 型: byte、short、int、long byte 1字节 –128 ~127 short
  • 来看下前面提及的基本数据类型,《JAVA 入坑教程 | 章节二 基本数据类型》,再来看一张图片先:在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。所谓的内置数据类型其实就是:byte、int、...
  • java中的八种基本数据类型, 分别是: boolean,byte,short,int,long,char,float,double 它们还分别对应八种封装好的类: Boolean,Byte,Short,Integer,Long,Character,Float,Double。 而String也是Java中封装好的一...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 179
精华内容 71
关键字:

为什么long不是基本数据类型