Java 基本数据类型

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

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

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

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 .

float:

*float数据类型是单精度,32位,符合IEEE 754标准的浮点数;

*float在储存大型浮点数组的时候可节省内存空间;

*默认值是0.0f;

*浮点数不能用来表示精确的值,如货币;

*例如: float f1 = 234.5f .

double:

*double数据类型是双精度,64位,符合IEEE 754标准的浮点数;

*浮点数的默认类型为double类型;

*double类型同样不能表示精确的值,如货币;

*默认值是0.0d;

*例如: double d1 = 123.4

boolean:

*boolean数据类型表示一位的信息;

*只有两个取值:true 和 false ;

*这种类型只作为一种标志来记录true/false情况;

*默认值是false;

*例如: boolean one = true .

char:

*char类型是一个单一的16位Unicode字符;

*最小值是'\u0000'(即为0);

*最大值是'\uffff ' (即为65,535);

*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

public class TestCast {
public static void main(String[] args) {
//测试数据类型
//byte short int(Integer) long float double char(Character) (boolean)
System.out.println("基础类型byte:\n"+"二进制位数:"+Byte.SIZE+"\n"+"最大值"+Byte.MAX_VALUE+"\n"+"最小值"+Byte.MIN_VALUE+"\n____");
System.out.println("基础类型short:\n"+"二进制位数:"+Short.SIZE+"\n"+"最大值"+Short.MAX_VALUE+"\n"+"最小值"+Short.MIN_VALUE+"\n____");
System.out.println("基础类型int:\n"+"二进制位数:"+Integer.SIZE+"\n"+"最大值"+Integer.MAX_VALUE+"\n"+"最小值"+Integer.MIN_VALUE+"\n____");
System.out.println("基础类型long:\n"+"二进制位数:"+Long.SIZE+"\n"+"最大值"+Long.MAX_VALUE+"\n"+"最小值"+Long.MIN_VALUE+"\n____");
System.out.println("基础类型float:\n"+"二进制位数:"+Float.SIZE+"\n"+"最大值"+Float.MAX_VALUE+"\n"+"最小值"+Float.MIN_VALUE+"\n____");
System.out.println("基础类型double:\n"+"二进制位数:"+Double.SIZE+"\n"+"最大值"+Double.MAX_VALUE+"\n"+"最小值"+Double.MIN_VALUE+"\n____");
System.out.println("基础类型char:\n"+"二进制位数:"+Character.SIZE+"\n"+"最大值"+(int)Character.MAX_VALUE+"\n"+"最小值"+(int)Character.MIN_VALUE+"\n____");
}
}
基础类型byte:
二进制位数:8
最大值127
最小值-128
____
基础类型short:
二进制位数:16
最大值32767
最小值-32768
____
基础类型int:
二进制位数:32
最大值2147483647
最小值-2147483648
____
基础类型long:
二进制位数:64
最大值9223372036854775807
最小值-9223372036854775808
____
基础类型float:
二进制位数:32
最大值3.4028235E38
最小值1.4E-45
____
基础类型double:
二进制位数:64
最大值1.7976931348623157E308
最小值4.9E-324
____
基础类型char:
二进制位数:16
最大值65535
最小值0
____

Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10

的多少倍.比如3.14E3就是3.14×1000=3140, 3.14E-3就是3.14/1000=0.00314 .

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


引用类型

*引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象.这些变量在声明时被指定为一个特定

的类型,比如JavaTest, FirstJavaTest等.变量一旦声明后,类型就不能被改变了.

*对象.数组都是引用数据类型.

*所有引用类型的默认值都是null.

*一个引用变量可以用来引用与任何与之兼容的类型.

*例如: Animal animal = new Animal("giraffe").


Java常量

常量就是一个固定值,它们不需要计算,直接代表相应的值.

常量指不能改变的量,在Java中用final标志,声明方式和变量类似:

final double PI = 3.1415927;

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

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

byte a = 68;
char a = 'A';

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

当使用常量的时候,前缀0表明是8进制,而前缀0×代表16进制.例如:

int decimal = 100;
int octal = 0144;
int hexa = 0×64;

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

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

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

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

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

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

Java自学入门新的体会0.2的更多相关文章

  1. Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结

    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...

  2. java自学入门心得体会 0.1

    之前记录了java的简介和基本语法 这里记载下对象和类 不太懂的我理解java对象和类的概念很模糊,因为有了 Abstract修饰符 让对象与类更加的扑朔迷离 - - 所以,就像很开放的语言,创建对象 ...

  3. java自学入门心得体会 从环境配置开始

    java —— 一种可以撰写跨平台应用软件的面向对象的程序设计语言. 很多教程里都要概述java语言的诞生发明.其实像图灵的”图灵机“和”图灵测试“一样,当初的java并不是这样. 是用来操控一些电冰 ...

  4. 自学 Java 怎么入门

    自学 Java 怎么入门? 595赞同反对,不会显示你的姓名     给你推荐一个写得非常用心的Java基础教程:java-basic | 天码营 这个教程将Java的入门基础知识贯穿在一个实例中,逐 ...

  5. Java SE 6 新特性: Java DB 和 JDBC 4.0

    http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...

  6. Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观

    Java 入门课程视频实战-0基础 已经上传完了.欢迎小伙伴们过来围观 直接进入: http://edu.csdn.net/course/detail/196 课程文件夹例如以下: 1 初识Java  ...

  7. java自学:从零基础到入门系列--java环境变量的配置JDK的下载安装图解

    一.首先去官网下载 Java 语言的软件开发工具包–JDK,下载JDK8即可,下载地址为:https://www.oracle.com/technetwork/java/javase/download ...

  8. 大学四年,总结一套适合小白的Java自学路线和方法

    前言篇 大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂(文底阅读原文可达). 无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班.报班通常太费钱,时间又不 ...

  9. 【转】JAVA自学之路

    JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...

随机推荐

  1. 查看修改MySQL字符集

    查看修改MySQL字符集 http://blog.sina.com.cn/s/blog_70ac6bec01016fts.html 查看修改MySQL字符集 (2012-08-22 09:53:21) ...

  2. 混淆矩阵在Matlab中PRtools模式识别工具箱的应用

    声明:本文用到的代码均来自于PRTools(http://www.prtools.org)模式识别工具箱,并以matlab软件进行实验. 混淆矩阵是模式识别中的常用工具,在PRTools工具箱中有直接 ...

  3. jquery两稳定版本比较~~

    jquery历经了多个版本的更新,版本上的比较貌似没什么必要性,一般来说新的版本会比旧的版本各方面都略有提升,但由于新版中增加了各种新的功能,难免会引起bug的发生.评估一个版本是否适合当前开发场景使 ...

  4. [vue]vue条件渲染v-if(template)和自定义指令directives

    条件渲染: v-if/template <div id="app"> <h1>v-show: display: none</h1> <di ...

  5. [py][mx]xadmin详细设置-将app注册到xadmin

    首先createsuperuser,创建用户, 然后登陆xadmin. 理解下models的各个字段 复数形式及返回 注册app users/adminx.py 显示字段 users/adminx.p ...

  6. Python 列表 extend() 方法

    描述 Python 列表 extend() 方法通过在列表末尾追加可迭代对象中的元素来扩展列表. 语法 extend() 方法语法: L.extend(iterable) 参数 iterable -- ...

  7. KMP(http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2772)

    #include <stdio.h>#include <string.h>#include <stdlib.h>char a[1000001],b[1000001] ...

  8. ComBSTR的使用

    用 CComBSTR 进行编程 Visual Studio .NET 2003   3(共 3)对本文的评价是有帮助 - 评价此主题   ATL 类 CComBSTR 提供对 BSTR 数据类型的包装 ...

  9. Oracal 11 g 数据库安装

    一:下载安装包 http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/112010-win64soft- ...

  10. Java接口多线程并发测试 (一)

    本文为作者原创,禁止转载,违者必究法律责任!!! 本文为作者原创,禁止转载,违者必究法律责任!!! Java接口多线程并发测试 一,首先写一个接口post 请求代码: import org.apach ...