Java之基本数据类型

最近在看Java的一些知识,随手写写~如有不足或错误,欢迎大神指出~

一,基本类型

Java的数据类型可分为基本类型和引用类型,此处只讨论基本类型。

Java的基本数据类型和C语言比较相似,主要可以分为四类八种,有整数类型(byte,short,int,long)、浮点类型(float,double),字符型(char),布尔类型(boolean)。Java当中的整数类型都是带符号的,从负数到正数,没有unsigned。Java的跨平台性在于其数据类型有固定的字段长度和表述范围,不受系统和平台的影响。比如C语言的整数类型在编译完成后放在Linux系统当中可能会由于数据太大而出现数据溢出,而Java则不会。

byte

byte是Java中最小的整数类型,占一个字节,8位。也就是说一个byte的数据容量为-128~127,超过此区间的所有赋值操作对于byte来说都是无效的,编译时是无法通过的,例如byte b = 300,编译器就会报错。还有一点,Java当中整数的默认类型都为int,而浮点类型为double,比如123,默认为int,1.23默认为double。

short

short占2个字节,16位。即一个short的数据容量为-2^15~2^15-1,short在Java中比较少见,因为它的地位比较尴尬,小数据可以用byte,超过byte则基本都有int类型解决。

int

int占4个字节,32位,即一个int的表数范围为 -2^31~2^31-1,上文提到Java当中整数类型默认都为int类型,比如int i = 666,或者long l = 888888888,注意,虽然你声明了long类型,但如果不在数据后加L或者l时,编译器也会默认为是int类型而出现编译错误,所以正确的表达式为long l = 888888888L;

long

long占8个字节,64位,即一个long类型数据的表数范围为 -2^63~2^63-1,一般情况如果数据较大,超出int表数范围,则使用long类型。

float

float占4个字节,32位,表数范围-3.403E38~3.4.3E38,非常大,可以不用精确记忆,当然,精度要求不高的时候可以使用float,精度要求高时使用double。定义一个float时比如,float f = 12.3f,必须在后边加f声明,否则编译器会默认为是double而报错。

double

double占用8个字节,64位,表述范围-1.798E308~1.798E308,,10的308次方个0,好大- -,数0都要数半天,非常精确了。

char

char属于字符类型,属于数据类型的原因是Java中char采用Unicode统一编码(全球语言统一编码),全世界所有的语言都可以使用char表达出来,例如char aChar = ‘A’;、char bChar = ‘中’;,每个字符占用2个字节,所以char类型可用16进制表达出来,如char cChar = '\u0016';

boolean

布尔类型,在Java当中只有true和false,没有0和1,一般用于条件判断。

二,类型转换

在使用数据的过程中经常需要定义各类变量,而他们的类型通常又是各不相同的,所以在进行运算或调用的过程中需要进行类型转换,而转换所遵循的依据则分为两种,一种是自动转换,顾名思义由编译器完成;另一种是强制转换,在数据前加转换符(typed)完成。 boolean类型不参与转换。

容量小的转换为容量大的数据时自动转换,转换时遵循大小顺序为:byte/short/chart->int->long->float->double

比如 int i; byte b = 120; i = b;此时将byte b 转换为int i 时,由于是大容器装小数字,所以编译会自动转换且不会损失精度;long l = 456745L;float f; f = l;(此处看到有些地方说会出现精度损失,比如long->float,不太明白)。

容量大的转换为容量小的数据时强制转换,加强制转换符,会造成精度损失;

比如 byte b; int i = 250; b = (byte)i;若不加强转符,可以试想一下,你一顿饭只能吃2碗,有人强迫你吃10碗,这后果我就不说了~而如果加了强转符,就好像此时还是要你吃10碗饭,但是有一种科技可以实现10碗饭的能量压缩到2碗,你就可以吃的下了。但是这两者的区别就在于你终究没有吃10碗,只能是约等于。所以大容量数据转小容量时会无法避免的出现精度损失。尤其是浮点类型转整型时,强转会将小数点后的数字全部截掉,只保留整数部分。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • 引言: 1.变量就是申请内存来存储值,在创建变量的时候就需要在内存中申请空间,内存管理系统根据变量的类型为变量分配...
    天宇逍遥heart阅读 387评论 0 0
  • 第一类:逻辑型boolean 第二类:文本型char 第三类:整数型(byte、short、int、long) c...
    Jasonme阅读 1,059评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,505评论 18 399
  • 各个基本数据类型比较 整数的不同进制 包装类以上8种基本类型都不是类,Java 提供了对应的类,称之为包装类。包装...
    苏宇lovecc阅读 420评论 0 1
  • 01 我知道我的很多读者都是妈妈,我也知道我写的育儿类文章相对受欢迎一些,但是最近我很少写育儿,主要是因为这段时间...
    迅图阅读 1,173评论 0 1