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位。 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;
}
关注我的公众号

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2016-07-06 Mybatis-mapper-xml-基础