Java复习1-基本数据类型-阿里云开发者社区

开发者社区> ryan-miao> 正文

Java复习1-基本数据类型

简介: 数据类型 整形 type 存储 取值范围 int 4字节 -2 147 483 648 ~ 2 147 483 647 (超过20亿) short 2字节 -32 768 ~ 32 7677 long 8字节 -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 byte 1字节 -128 ~ 127 关于范围的计算,1字节=8位。
+关注继续查看

数据类型

整形

type 存储 取值范围
int 4字节 -2 147 483 648 ~ 2 147 483 647 (超过20亿)
short 2字节 -32 768 ~ 32 7677
long 8字节 -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
byte 1字节 -128 ~ 127

关于范围的计算,1字节=8位。 1byte 即8个1和0的组合范围。

需要记住int是4个字节,32位。

浮点类型

type 存储 范围
float 4字节 -2^128 ~ +2^127 有效位6~7位
double 8字节 -2^1024 ~ +2^1023 有效位 15位

double数值精度是float的两倍,绝大部分都应该采用double而不是float。

字符char

char用来表示单个字符,Java中采用16位来表示,即2个字节。但现在unicode字符长度已经超过了65536,一个char并不能完全覆盖所有的字符。所以,通常不要用char,而是string,否则会有乱码产生。

boolean

只有true或false。唯一需要注意的是Java中基本类型和包装类的关系。对于一个class的字段,可以是boolean类型的,也可以是Boolean类型的。二者是不一样的!boolean类型的字段在初始化的时候,如果没有指定则默认位false。而Boolean默认是null。所以,在class里的成员变量的布尔类型都应该采用Boolean。

String

Java对字符处理通常用的是String,但在概念上,String不是数据类型,而一个class。String由char的值序列组成。但前面已经提到char只有两个字节16位,不能够表示所有的unicode编码,有时候需要两个unicode才可表示。那么,String的length方法就很有意思了。

@Test
public void testCodePoint() {
    String a = "\uD835\uDD46㋛Hello";
    System.out.println(a);
    System.out.println(a.length());
    a.codePoints().forEach(value -> System.out.println((char) value));
}

结果

𝕆㋛Hello
8
핆
㋛
H
e
l
l
o

a字符串的第一个字符是一个变形的O,𝕆. 这个字符的unicode是U+1D546, 在java中表示为\uD835\uDD46。所以length是8,但字符一共7个。

/**
 * Returns the length of this string.
 * The length is equal to the number of <a href="Character.html#unicode">Unicode
 * code units</a> in the string.
 *
 * @return  the length of the sequence of characters represented by this
 *          object.
 */
public int length() {
    return value.length;
}

    关注我的公众号

img_acfe50023e4718b33064273d65e4cd67.jpe
唯有不断学习方能改变! -- Ryan Miao

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
是什么让 Gear 与众不同? 在 Gear 上部署有什么好处?
Gear 是一个智能合约平台,任何人都可以在去中心化网络以及 Polkadot 生态系统中开发和部署 dApp,就像在 Layer-1 区块链网络中一样,但效果更胜一筹!
5 0
软件工程专业如何就业!
引言:曾经有两个强盗向他们的大哥说如果世上没有绞刑架该多好,大哥却回答说如果做强盗的代价那么小,人人都去干了,那么行业的竞争压力该有多大啊,正是因为不容易,做的人少,才有去做的价值啊。 在班会的开篇我给大家讲了这样一个故事,我认为人生就是不断地克服困难向上攀登,阻力是不可避免的,定的目标高一些,辛苦一些,当战胜它之后我们会发现这边风景独好。
8 0
Flutter基础笔记
目录 List里面常用的属性和方法: Set Map forEach,map, where,any,every extends抽象类 和 implements Flutter环境搭建 入口文件、入口方法 第一个 Demo Center 组件的 使用 把内容单独抽离成一个组件 给 Text 组件增加一些装饰 用MaterialApp 和 Scaffold两个组件装饰 App Text 组件 Container 组件 图片组件 引入本地图片 裁剪布局之 ClipRect、ClipRRect、ClipOval、ClipPath、CustomClipper 实现圆角以及实现圆形图片 圆形头像
4 0
java 中定时器
java 中定时器
5 0
数据库中间件 MyCAT源码分析 —— PreparedStatement 重新入门
数据库中间件 MyCAT源码分析 —— PreparedStatement 重新入门
4 0
同一浏览器打开两个同源页面引发的bug【@码云 提个小优化】
同一浏览器打开两个同源页面引发的bug【@码云 提个小优化】
6 0
【Linux:开源操作系统】
主要内容 一、 关闭Windows防火墙 关闭Windows防火墙,不要使用wifi共享精灵等软件。 二、 Linux简介
6 0
什么是前端开发?什么是后端开发?
什么是前端开发?什么是后端开发?
9 0
+关注
ryan-miao
A Java developer.
261
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载