Java的基本数据类型

来源:互联网 发布:centos ssh 限制连接 编辑:程序博客网 时间:2024/06/06 17:13

Java的基本数据类型

类型意义取值boolean布尔值true或falsebyte8位有符号整型-128~127short16位有符号整型-pow(2,15)~pow(2,15)-1int32位有符号整型-pow(2,31)~pow(2,31)-1long64位有符号整型-pow(2,63)~pow(2,63)-1float32位浮点数IEEE754标准单精度浮点数double64位浮点数IEEE754标准双精度浮点数char字符型16位不带符号,Unicode字符

JVM本地对应的类型

typedef unsigned char   jboolean;typedef signed char jbyte;typedef short           jshort;typedef int jint;typedef long long jlong;或typedef __int64 jlong;typedef double          jdouble;typedef float           jfloat;typedef unsigned short  jchar;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Java的boolean在jvm中对应unsigned char类型(0为false而非0为true);byte对应signed char类型;short对应short类型;int对应int类型;long对应long long或者_int64类型;double对应double类型;float对应float类型;char对应unsigned short类型。

执行时的类型

在指令执行时JVM并不需要指明类型,因为指令已经包含了类型信息,但由于bytecode指令只用1个字节来表示,所以指令数量需要控制,并不是每种基础数据类型都有对应的操作指令,比如iload lload fload dload对应int long float and double。类似还有ireturn lreturn freturndreturn

所以执行引擎只要根据不同的指令做不同的类型处理即可。

Java调本地

如果某个java对象调用了native方法,此本地方法由编译器编译后access flags 会生成ACC_NATIVE标识,执行引擎执行bytecode时,根据java-jvm类型的映射也可能会涉及到类型处理。


原创粉丝点击