概述
java关键字说的简单点就是 是先定义好的,有特殊意义的单词 ,这些关键字 对于 java的便宜 有特殊意义 ,可以 表示数据类型,程序结构等,这些关键字不能当作类名,方法名 ,包名或者参数,
八种基本数据类型的关键字:
整形:int、byte、short、long
浮点型 :float、double
字符型 :char
布尔型 :boolean
这些关键字都是 java的原始类型
整形:
byte:
被称为"字节型",
占一个字节,一个 字节 表示 八个二进制数 (二进制数0,1)
取值范围是 -2^7 到 2^7-1
short:
被称为"短整型",
占二个字节,16位
取值范围是 -2^15 到 2^15-1
int:
被称为"整型",
占四个字节,32位
取值范围是是 -2^31 - 2^31-1、
long:
被称为"长整型",
占八个字节,64位
取值范围是 -2^63 - 2^63-1
float:
被称为"单精度 ",
占四个字节,32位
取值范围是 -2^31 - 2^31-1
double:
被称为"双精度 ",
占四个字节,64位
取值范围是 -2^63 - 2^63-1
char:
被称为"字符型 ",
占2个字节,16位
取值范围是 0 - 2^16-1
boolean:
被称为"布尔型 ",
占1个字节,8位
取值范围是只有两个 true,flase
他们的取值 范围可以 通过 程序来获取较为准确是值,因为 java对着八 数据类型都有不同的封装类 ,
除了char类型跟int类型其他数据 类型的封装类都是第一个 一个字母大写,比方说byte的封装类就是 Byte,short的就是 Short,而char类的是 Characte,int的Integer
package dome11;
public class DataType {
private byte a;
private short b;
private int
c;
private long d;
private float e;
private double f;
private char g;
private boolean
h;
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.MIN_VALUE+"——"+Double.MAX_VALUE);
System.out.println("char的范围:"+Character.MIN_VALUE+"——"+Character.MAX_VALUE);
}
}
输出:
byte的范围:-128——127
short的范围:-32768——32767
int的范围:-2147483648——2147483647
long的范围:-9223372036854775808——9223372036854775807
float的范围:1.4E-45——3.4028235E38
double的范围:4.9E-324——1.7976931348623157E308
char的范围: ——
char为啥是空 ,而不是0-65535,因为是无符号,他的数值的取值范围是0 - 2^16-1,char类型是 根据是unicode字符集里的字符,而unicode中有65535个字符 与 char响应,
比如:
public class DataType {
public static void main(String[] args) {
char a=32541;
System.out.println(a);
}
}
他输出值 是 一个”缝“字,,在 API里面char的封装类 有个方法,就是你输入的值进去,返回一个汉字给你 就是这个方法 toChars()
八种数据类型的 默认值
:四个整形的是默认值 都是 0,float的是 0.0f,double的是0.0,布尔类型的是 flase;float在 给其变量赋值的 时候 要在 最后 面 加上一个f用来 表示他是 float类型的,而long类型后面可以加L或者不加都可以,其他数据类型 不需要加
int跟 float的取值范围看似都是 -2^31 - 2^31-1,但是他俩之间是有区别的,因为他们的存储 结构不同 ,int是整形的存进去 多少 就是 多少 ,而 float是小数,后面 多一位少一位 都 可能损失精度 ,打个比方 ,你去银行存 100.1万跟 100.12万相差还是很大的。
对于这八种数据 类型的转换 ,除布尔类型外,其他七种数据类型都可以转 ,首先 short,char这二种之间不能进行转换,但 这二种 都可以转成int,或者比int的更大的,其他几种都 可以进行转换,,byte,int,long,float,double都可以 之间 相互转换的,
转换:低转高 不需要强转 ,
public class DataType {
public static void main(String[] args) {
byte a=16;
int b=a;
System.out.println(b);
}
}
输出:16
而高转低需要强转
public class DataType {
public static void main(String[] args) {
int a=16;
byte b=(byte) a;
System.out.println(b);
}
}
输出:16
注意 :但是高转低可能 会损失进度 ,
java默认整形的类型是int类型,
public class DataType {
public static void main(String[] args) {
byte a=45;
short b=55;
int c= a+b;
System.out.println(c);
}
}
如果用byte或者short去接受会报错,编译都通过 不了更别提运行了
class IntAnd{
public static void main(String[] args){
byte a=
45;
short b=55;
byte c =a+b;
System.out.println(c);
}
}
F:>javac IntAnd.java
IntAnd.java:6: 错误: 不兼容的类型: 从int转换到byte可能会有损失
byte c =a+b;
^
1 个错误
F:>
当然了也可以用long去接收,默认是整形 ,
以上就是 对 八种数据类型的理解 有不足或者说错之处还望指点 ,;
最后
以上就是眯眯眼爆米花为你收集整理的一、java八种数据类型的全部内容,希望文章能够帮你解决一、java八种数据类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复