欢迎光临
我们一直在努力

Java语言提供了八种基本类型。六种数字类型【函数公式168】

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。

Java 的两大数据类型:

  • 内置数据类型
  • 引用数据类型

内置数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

byte:

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是 -128(-2^7);
  • 最大值是 127(2^7-1);
  • 默认值是 0;
  • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
  • 例子:byte a = 100,byte b = -50。

short:

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 – 1);
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 默认值是 0;
  • 例子:short s = 1000,short r = -20000。

int:

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31);
  • 最大值是 2,147,483,647(2^31 – 1);
  • 一般地整型变量默认为 int 类型;
  • 默认值是 0 ;
  • 例子:int a = 100000, int b = -200000。

long:

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
  • 最小值是 -9,223,372,036,854,775,808(-2^63);
  • 最大值是 9,223,372,036,854,775,807(2^63 -1);
  • 这种类型主要使用在需要比较大整数的系统上;
  • 默认值是 0L;
  • 例子: long a = 100000L,long b = -200000L。 "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

float:

  • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 默认值是 0.0f;
  • 浮点数不能用来表示精确的值,如货币;
  • 例子:float f1 = 234.5f。

double:

  • double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
  • 浮点数的默认类型为 double 类型;
  • double类型同样不能表示精确的值,如货币;
  • 默认值是 0.0d;
  • 例子:

    double d1 = 7D ;
    double d2 = 7.;
    double d3 = 8.0;
    double d4 = 8.D;
    double d5 = 12.9867;

    7 是一个 int 字面量,而 7D,7. 和 8.0 是 double 字面量。

boolean:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 这种类型只作为一种标志来记录 true/false 情况;
  • 默认值是 false;
  • 例子:boolean one = true。

char:

  • char 类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \\u0000(十进制等效值为 0);
  • 最大值是 \\uffff(即为 65535);
  • char 数据类型可以储存任何字符;
  • 例子:char letter = 'A';。

实例

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子:

实例

public class PrimitiveTypeTest { public static void main(String[] args) { // byte System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println("包装类:java.lang.Byte"); System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); // short System.out.println("基本类型:short 二进制位数:" + Short.SIZE); System.out.println("包装类:java.lang.Short"); System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); // int System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("包装类:java.lang.Integer"); System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); // long System.out.println("基本类型:long 二进制位数:" + Long.SIZE); System.out.println("包装类:java.lang.Long"); System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); // float System.out.println("基本类型:float 二进制位数:" + Float.SIZE); System.out.println("包装类:java.lang.Float"); System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); // double System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("包装类:java.lang.Double"); System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); // char System.out.println("基本类型:char 二进制位数:" + Character.SIZE); System.out.println("包装类:java.lang.Character"); // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 System.out.println("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE); // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE); } }

运行实例 »

编译以上代码输出结果如下所示:

基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38

基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308

基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535

Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。

https://avg.163.com/topic/detail/10646579 https://avg.163.com/topic/detail/10646578 https://avg.163.com/topic/detail/10646577 https://avg.163.com/topic/detail/10646576 https://avg.163.com/topic/detail/10646575 https://avg.163.com/topic/detail/10646574 https://avg.163.com/topic/detail/10646573 https://avg.163.com/topic/detail/10646572 https://avg.163.com/topic/detail/10646571 https://avg.163.com/topic/detail/10646570 https://avg.163.com/topic/detail/10646569 https://avg.163.com/topic/detail/10646568 https://avg.163.com/topic/detail/10646567 https://avg.163.com/topic/detail/10646566 https://avg.163.com/topic/detail/10646565 https://avg.163.com/topic/detail/10646564 https://avg.163.com/topic/detail/10646563 https://avg.163.com/topic/detail/10646562 https://avg.163.com/topic/detail/10646561 https://avg.163.com/topic/detail/10646560 https://avg.163.com/topic/detail/10646559 https://avg.163.com/topic/detail/10646558 https://avg.163.com/topic/detail/10646557 https://avg.163.com/topic/detail/10646556 https://avg.163.com/topic/detail/10646555 https://avg.163.com/topic/detail/10646554 https://avg.163.com/topic/detail/10646553 https://avg.163.com/topic/detail/10646552 https://avg.163.com/topic/detail/10646551 https://avg.163.com/topic/detail/10646550 https://avg.163.com/topic/detail/10646549 https://avg.163.com/topic/detail/10646548 https://avg.163.com/topic/detail/10646547 https://avg.163.com/topic/detail/10646546 https://avg.163.com/topic/detail/10646545 https://avg.163.com/topic/detail/10646544 https://avg.163.com/topic/detail/10646543 https://avg.163.com/topic/detail/10646542 https://avg.163.com/topic/detail/10646541 https://avg.163.com/topic/detail/10646540 https://avg.163.com/topic/detail/10646539 https://avg.163.com/topic/detail/10646538 https://avg.163.com/topic/detail/10646537 https://avg.163.com/topic/detail/10646536 https://avg.163.com/topic/detail/10646535 https://avg.163.com/topic/detail/10646534 https://avg.163.com/topic/detail/10646533 https://avg.163.com/topic/detail/10646532 https://avg.163.com/topic/detail/10646531 https://avg.163.com/topic/detail/10646530 https://avg.163.com/topic/detail/10646528 https://avg.163.com/topic/detail/10646527 https://avg.163.com/topic/detail/10646526 https://avg.163.com/topic/detail/10646525 https://avg.163.com/topic/detail/10646524 https://avg.163.com/topic/detail/10646523 https://avg.163.com/topic/detail/10646522 https://avg.163.com/topic/detail/10646520 https://avg.163.com/topic/detail/10646521 https://avg.163.com/topic/detail/10646519 https://avg.163.com/topic/detail/10646518 https://avg.163.com/topic/detail/10646517 https://avg.163.com/topic/detail/10646516 https://avg.163.com/topic/detail/10646515 https://avg.163.com/topic/detail/10646514 https://avg.163.com/topic/detail/10646513 https://avg.163.com/topic/detail/10646512 https://avg.163.com/topic/detail/10646511 https://avg.163.com/topic/detail/10646510 https://avg.163.com/topic/detail/10646509 https://avg.163.com/topic/detail/10646508 https://avg.163.com/topic/detail/10646507 https://avg.163.com/topic/detail/10646506 https://avg.163.com/topic/detail/10646505 https://avg.163.com/topic/detail/10646504 https://avg.163.com/topic/detail/10646503 https://avg.163.com/topic/detail/10646502 https://avg.163.com/topic/detail/10646501 https://avg.163.com/topic/detail/10646500 https://avg.163.com/topic/detail/10646499 https://avg.163.com/topic/detail/10646498 https://avg.163.com/topic/detail/10646497 https://avg.163.com/topic/detail/10646496 https://avg.163.com/topic/detail/10646495 https://avg.163.com/topic/detail/10646494 https://avg.163.com/topic/detail/10646493 https://avg.163.com/topic/detail/10646492 https://avg.163.com/topic/detail/10646491 https://avg.163.com/topic/detail/10646490 https://avg.163.com/topic/detail/10646489 https://avg.163.com/topic/detail/10646488 https://avg.163.com/topic/detail/10646487 https://avg.163.com/topic/detail/10646486 https://avg.163.com/topic/detail/10646485 https://avg.163.com/topic/detail/10646484 https://avg.163.com/topic/detail/10646483 https://avg.163.com/topic/detail/10646482 https://avg.163.com/topic/detail/10646481 https://avg.163.com/topic/detail/10646480 https://avg.163.com/topic/detail/10646473 https://avg.163.com/topic/detail/10646458 https://avg.163.com/topic/detail/10646477 https://avg.163.com/topic/detail/10646476 https://avg.163.com/topic/detail/10646475 https://avg.163.com/topic/detail/10646474 https://avg.163.com/topic/detail/10646471 https://avg.163.com/topic/detail/10646472 https://avg.163.com/topic/detail/10646470 https://avg.163.com/topic/detail/10646469 https://avg.163.com/topic/detail/10646468 https://avg.163.com/topic/detail/10646467 https://avg.163.com/topic/detail/10646466 https://avg.163.com/topic/detail/10646465 https://avg.163.com/topic/detail/10646464 https://avg.163.com/topic/detail/10646463 https://avg.163.com/topic/detail/10646462 https://avg.163.com/topic/detail/10646461 https://avg.163.com/topic/detail/10646460 https://avg.163.com/topic/detail/10646459 https://avg.163.com/topic/detail/10646458 https://avg.163.com/topic/detail/10646457 https://avg.163.com/topic/detail/10646456 https://avg.163.com/topic/detail/10646455 https://avg.163.com/topic/detail/10646454 https://avg.163.com/topic/detail/10646453 https://avg.163.com/topic/detail/10646452 https://avg.163.com/topic/detail/10646451 https://avg.163.com/topic/detail/10646450 https://avg.163.com/topic/detail/10646449 https://avg.163.com/topic/detail/10646448 https://avg.163.com/topic/detail/10646447 https://avg.163.com/topic/detail/10646446 https://avg.163.com/topic/detail/10646445 https://avg.163.com/topic/detail/10646444 https://avg.163.com/topic/detail/10646443 https://avg.163.com/topic/detail/10646442 https://avg.163.com/topic/detail/10646441 https://avg.163.com/topic/detail/10646440 https://avg.163.com/topic/detail/10646439 https://avg.163.com/topic/detail/10646438 https://avg.163.com/topic/detail/10646437 https://avg.163.com/topic/detail/10646436 https://avg.163.com/topic/detail/10646435 https://avg.163.com/topic/detail/10646434 https://avg.163.com/topic/detail/10646433 https://avg.163.com/topic/detail/10646432 https://avg.163.com/topic/detail/10646431 https://avg.163.com/topic/detail/10646430 https://avg.163.com/topic/detail/10646429 https://avg.163.com/topic/detail/10646428 https://avg.163.com/topic/detail/10646427 https://avg.163.com/topic/detail/10646426 https://avg.163.com/topic/detail/10646425 https://avg.163.com/topic/detail/10646424 https://avg.163.com/topic/detail/10646423 https://avg.163.com/topic/detail/10646422 https://avg.163.com/topic/detail/10646421 https://avg.163.com/topic/detail/10646420 https://avg.163.com/topic/detail/10646419 https://avg.163.com/topic/detail/10646418 https://avg.163.com/topic/detail/10646417 https://avg.163.com/topic/detail/10646416 https://avg.163.com/topic/detail/10646415 https://avg.163.com/topic/detail/10646414 https://avg.163.com/topic/detail/10646413 https://avg.163.com/topic/detail/10646412 https://avg.163.com/topic/detail/10646411 https://avg.163.com/topic/detail/10646410 https://avg.163.com/topic/detail/10646409 https://avg.163.com/topic/detail/10646408 https://avg.163.com/topic/detail/10646406 https://avg.163.com/topic/detail/10646405 https://avg.163.com/topic/detail/10646404 https://avg.163.com/topic/detail/10646403 https://avg.163.com/topic/detail/10646402 https://avg.163.com/topic/detail/10646401 https://avg.163.com/topic/detail/10646400 https://avg.163.com/topic/detail/10646399 https://avg.163.com/topic/detail/10646398 https://avg.163.com/topic/detail/10646397 https://avg.163.com/topic/detail/10646396 https://avg.163.com/topic/detail/10646395 https://avg.163.com/topic/detail/10646394 https://avg.163.com/topic/detail/10646393 https://avg.163.com/topic/detail/10646392 https://avg.163.com/topic/detail/10646391 https://avg.163.com/topic/detail/10646390 https://avg.163.com/topic/detail/10646389 https://avg.163.com/topic/detail/10646388 https://avg.163.com/topic/detail/10646387 https://avg.163.com/topic/detail/10646386 https://avg.163.com/topic/detail/10646385 https://avg.163.com/topic/detail/10646384 https://avg.163.com/topic/detail/10646383 https://avg.163.com/topic/detail/10646382 https://avg.163.com/topic/detail/10646381 https://avg.163.com/topic/detail/10646380 https://avg.163.com/topic/detail/10646379 https://avg.163.com/topic/detail/10646377 https://avg.163.com/topic/detail/10646376 https://avg.163.com/topic/detail/10646374 https://avg.163.com/topic/detail/10646373 https://avg.163.com/topic/detail/10646372 https://avg.163.com/topic/detail/10646371 https://avg.163.com/topic/detail/10646370 https://avg.163.com/topic/detail/10646369 https://avg.163.com/topic/detail/10646368 https://avg.163.com/topic/detail/10646367 https://avg.163.com/topic/detail/10646366 https://avg.163.com/topic/detail/10646365 https://avg.163.com/topic/detail/10646364 https://avg.163.com/topic/detail/10646363 https://avg.163.com/topic/detail/10646362 https://avg.163.com/topic/detail/10646361 https://avg.163.com/topic/detail/10646360 https://avg.163.com/topic/detail/10646359 https://avg.163.com/topic/detail/10646358 https://avg.163.com/topic/detail/10646357 https://avg.163.com/topic/detail/10646356 https://avg.163.com/topic/detail/10646355 https://avg.163.com/topic/detail/10646354 https://avg.163.com/topic/detail/10646353 https://avg.163.com/topic/detail/10646352 https://avg.163.com/topic/detail/10646351 https://avg.163.com/topic/detail/10646350 https://avg.163.com/topic/detail/10646349 https://avg.163.com/topic/detail/10646348 https://avg.163.com/topic/detail/10646347 https://avg.163.com/topic/detail/10646346 https://avg.163.com/topic/detail/10646345 https://avg.163.com/topic/detail/10646344 https://avg.163.com/topic/detail/10646343 https://avg.163.com/topic/detail/10646342 https://avg.163.com/topic/detail/10646341 https://avg.163.com/topic/detail/10646340 https://avg.163.com/topic/detail/10646339 https://avg.163.com/topic/detail/10646338 https://avg.163.com/topic/detail/10646337 https://avg.163.com/topic/detail/10646336 https://avg.163.com/topic/detail/10646335 https://avg.163.com/topic/detail/10646334 https://avg.163.com/topic/detail/10646333 https://avg.163.com/topic/detail/10646332 https://avg.163.com/topic/detail/10646331 https://avg.163.com/topic/detail/10646330 https://avg.163.com/topic/detail/10646329 https://avg.163.com/topic/detail/10646328 https://avg.163.com/topic/detail/10646327 https://avg.163.com/topic/detail/10646326 https://avg.163.com/topic/detail/10646325 https://avg.163.com/topic/detail/10646324 https://avg.163.com/topic/detail/10646323 https://avg.163.com/topic/detail/10646322 https://avg.163.com/topic/detail/10646321 https://avg.163.com/topic/detail/10646319 https://avg.163.com/topic/detail/10646317 https://avg.163.com/topic/detail/10646316 https://avg.163.com/topic/detail/10646313 https://avg.163.com/topic/detail/10646315 https://avg.163.com/topic/detail/10646314 https://avg.163.com/topic/detail/10646312 https://avg.163.com/topic/detail/10646311 https://avg.163.com/topic/detail/10646310 https://avg.163.com/topic/detail/10646309 https://avg.163.com/topic/detail/10646308 https://avg.163.com/topic/detail/10646307 https://avg.163.com/topic/detail/10646306 https://avg.163.com/topic/detail/10646305 https://avg.163.com/topic/detail/10646304 https://avg.163.com/topic/detail/10646303 https://avg.163.com/topic/detail/10646302 https://avg.163.com/topic/detail/10646301 https://avg.163.com/topic/detail/10646300 https://avg.163.com/topic/detail/10646299 https://avg.163.com/topic/detail/10646298 https://avg.163.com/topic/detail/10646297 https://avg.163.com/topic/detail/10646296 https://avg.163.com/topic/detail/10646295 https://avg.163.com/topic/detail/10646294 https://avg.163.com/topic/detail/10646293 https://avg.163.com/topic/detail/10646292 https://avg.163.com/topic/detail/10646291 https://avg.163.com/topic/detail/10646290 https://avg.163.com/topic/detail/10646289 https://avg.163.com/topic/detail/10646288 https://avg.163.com/topic/detail/10646287 https://avg.163.com/topic/detail/10646286 https://avg.163.com/topic/detail/10646285 https://avg.163.com/topic/detail/10646284 https://avg.163.com/topic/detail/10646283 https://avg.163.com/topic/detail/10646282 https://avg.163.com/topic/detail/10646281 https://avg.163.com/topic/detail/10646280 https://avg.163.com/topic/detail/10646279 https://avg.163.com/topic/detail/10646278 https://avg.163.com/topic/detail/10646277 https://avg.163.com/topic/detail/10646276 https://avg.163.com/topic/detail/10646275 https://avg.163.com/topic/detail/10646274 https://avg.163.com/topic/detail/10646273 https://avg.163.com/topic/detail/10646272 https://avg.163.com/topic/detail/10646271 https://avg.163.com/topic/detail/10646270 https://avg.163.com/topic/detail/10646269 https://avg.163.com/topic/detail/10646268 https://avg.163.com/topic/detail/10646267 https://avg.163.com/topic/detail/10646266 https://avg.163.com/topic/detail/10646265 https://avg.163.com/topic/detail/10646264 https://avg.163.com/topic/detail/10646263 https://avg.163.com/topic/detail/10646262 https://avg.163.com/topic/detail/10646261 https://avg.163.com/topic/detail/10646260 https://avg.163.com/topic/detail/10646259 https://avg.163.com/topic/detail/10646258 https://avg.163.com/topic/detail/10646257 https://avg.163.com/topic/detail/10646256 https://avg.163.com/topic/detail/10646255 https://avg.163.com/topic/detail/10646254 https://avg.163.com/topic/detail/10646253 https://avg.163.com/topic/detail/10646252 https://avg.163.com/topic/detail/10646251 https://avg.163.com/topic/detail/10646250 https://avg.163.com/topic/detail/10646249 https://avg.163.com/topic/detail/10646248 https://avg.163.com/topic/detail/10646247 https://avg.163.com/topic/detail/10646246 https://avg.163.com/topic/detail/10646245 https://avg.163.com/topic/detail/10646244 https://avg.163.com/topic/detail/10646243 https://avg.163.com/topic/detail/10646242 https://avg.163.com/topic/detail/10646241 https://avg.163.com/topic/detail/10646240 https://avg.163.com/topic/detail/10646239 https://avg.163.com/topic/detail/10646238 https://avg.163.com/topic/detail/10646237 https://avg.163.com/topic/detail/10646236 https://avg.163.com/topic/detail/10646235 https://avg.163.com/topic/detail/10646234 https://avg.163.com/topic/detail/10646233 https://avg.163.com/topic/detail/10646232 https://avg.163.com/topic/detail/10646231 https://avg.163.com/topic/detail/10646230 https://avg.163.com/topic/detail/10646229 https://avg.163.com/topic/detail/10646228 https://avg.163.com/topic/detail/10646227 https://avg.163.com/topic/detail/10646226 https://avg.163.com/topic/detail/10646225 https://avg.163.com/topic/detail/10646224 https://avg.163.com/topic/detail/10646223 https://avg.163.com/topic/detail/10646222 https://avg.163.com/topic/detail/10646221 https://avg.163.com/topic/detail/10646220 https://avg.163.com/topic/detail/10646219 https://avg.163.com/topic/detail/10646218 https://avg.163.com/topic/detail/10646217 https://avg.163.com/topic/detail/10646216 https://avg.163.com/topic/detail/10646215 https://avg.163.com/topic/detail/10646214 https://avg.163.com/topic/detail/10646213 https://avg.163.com/topic/detail/10646212 https://avg.163.com/topic/detail/10646211 https://avg.163.com/topic/detail/10646210 https://avg.163.com/topic/detail/10646209 https://avg.163.com/topic/detail/10646208 https://avg.163.com/topic/detail/10646207 https://avg.163.com/topic/detail/10646206 https://avg.163.com/topic/detail/10646205 https://avg.163.com/topic/detail/10646204 https://avg.163.com/topic/detail/10646203

实际上,JAVA中还存在另外一种基本类型 void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。

类型默认值

下表列出了 Java 各个类型的默认值:

数据类型默认值
int 0
long 0L
short 0
char '\\u0000'
byte 0
float 0.0f
double 0.0d
boolean false
引用类型(类、接口、数组) null

说明:

  • int, short, long, byte 的默认值是0。
  • char 的默认值是 \\u0000(空字符)。
  • float 的默认值是 0.0f。
  • double 的默认值是 0.0d。
  • boolean 的默认值是 false。
  • 引用类型(类、接口、数组)的默认值是 null。

实例

public class Test { static boolean bool; static byte by; static char ch; static double d; static float f; static int i; static long l; static short sh; static String str; public static void main(String[] args) { System.out.println("Bool :" + bool); System.out.println("Byte :" + by); System.out.println("Character:" + ch); System.out.println("Double :" + d); System.out.println("Float :" + f); System.out.println("Integer :" + i); System.out.println("Long :" + l); System.out.println("Short :" + sh); System.out.println("String :" + str); } }

实例输出结果为:

Bool :false
Byte :0
Character:
Double :0.0
Float :0.0
Integer :0
Long :0
Short :0
String :null


引用类型

  • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
  • 对象、数组都是引用数据类型。
  • 所有引用类型的默认值都是null。
  • 一个引用变量可以用来引用任何与之兼容的类型。
  • 例子:Site site = new Site("Runoob")。

Java 常量

常量在程序运行时是不能被修改的。

在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:

final double PI = 3.1415927;

虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。

字面量可以赋给任何内置类型的变量。例如:

byte a = 68;
char a = 'A'

byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。

当使用字面量的时候,前缀 0 表示 8 进制,而前缀 0x 代表 16 进制, 例如:

int decimal = 100;
int octal = 0144;
int hexa = 0x64;

和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子:

"Hello World"
"two\\nlines"
"\\"This is in quotes\\""

字符串常量和字符变量都可以包含任何 Unicode 字符。例如:

char a = '\\u0001';
String a = "\\u0001";

Java语言支持一些特殊的转义字符序列。

符号字符含义
\\n 换行 (0x0a)
\\r 回车 (0x0d)
\\f 换页符(0x0c)
\\b 退格 (0x08)
\\0 空字符 (0x0)
\\s 空格 (0x20)
\\t 制表符
\\" 双引号
\\' 单引号
\\\\ 反斜杠
\\ddd 八进制字符 (ddd)
\\uxxxx 16进制Unicode字符 (xxxx)

自动类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级。

低 ————————————> 高

byte,short,char—> int —> long—> float —> double

数据类型转换必须满足如下规则:

  • 1. 不能对boolean类型进行类型转换。

  • 2. 不能把对象类型转换成不相关类的对象。

  • 3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

  • 4. 转换过程中可能导致溢出或损失精度,例如:

    int i =128;
    byte b = (byte)i;

    因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

  • 5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

    (int)23.7 == 23;        
    (int)-45.89f == -45

自动类型转换

必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。

实例

public class ZiDongLeiZhuan{ public static void main(String[] args){ char c1='a';//定义一个char类型 int i1 = c1;//char自动类型转换为int System.out.println("char自动类型转换为int后的值等于"+i1); char c2 = 'A';//定义一个char类型 int i2 = c2+1;//char 类型和 int 类型计算 System.out.println("char类型和int计算后的值等于"+i2); } }

运行结果为:

char自动类型转换为int后的值等于97
char类型和int计算后的值等于66

解析:c1 的值为字符 a ,查 ASCII 码表可知对应的 int 类型值为 97, A 对应值为 65,所以 i2=65+1=66。

强制类型转换

  • 1. 条件是转换的数据类型必须是兼容的。

  • 2. 格式:(type)value type是要强制类型转换后的数据类型 实例:

    实例

    public class ForceTransform { public static void main(String[] args){ int i1 = 123; byte b = (byte)i1;//强制类型转换为byte System.out.println("int强制类型转换为byte后的值等于"+b); } }

    运行结果:

    int强制类型转换为byte后的值等于123

隐含强制类型转换

  • 1、 整数的默认类型是 int。

  • 2、 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。

这一节讲解了 Java 的基本数据类型。下一节将探讨不同的变量类型以及它们的用法。

赞(0)
未经允许不得转载:171主机测评 » Java语言提供了八种基本类型。六种数字类型【函数公式168】
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址