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. 前端 HTML文档结构介绍

    <!DOCTYPE HTML> <html> <head>...</head> <body>...</body> </ht ...

  2. ifconfig 查看网卡信息

    [root@linux-node- sss]# ifconfig eno16777736: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu inet ...

  3. vue-watch

    <template> <div> <!-- 监听值的改变: --> <button class="th" @click="add ...

  4. 循环结构 while,do while

    while:先判断条件表达式是否成立,成立则执行循环体,不成立则不执行. 格式:while(条件表达式){ 执行语句(控制循环次数): } 例如: int x=1; while(x<3/*条件表 ...

  5. ML实践详细经典教程----用例图、顺序图、状态图、类图、包图、协作图

    面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language?),这篇课程的目的是展示出UML ...

  6. 机器学习理论基础学习9--- EM 算法

    EM算法的适用场景: EM算法用于估计含有隐变量的概率模型参数的极大似然估计,或者极大后验概率估计. 当概率模型既含有观测值,又含有隐变量或潜在变量时,就可以使用EM算法来求解概率模型的参数. 当概率 ...

  7. RNN实现字符级语言模型 - 恐龙岛(自己写RNN前向后向版本+keras版本)

    问题描述:样本为所有恐龙名字,为了构建字符级语言模型来生成新的名称,你的模型将学习不同的名称模式,并随机生成新的名字. 在这里你将学习到: 如何存储文本数据以便使用rnn进行处理. 如何合成数据,通过 ...

  8. memset函数使用方法

    将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针. 需要的头文件 在C中 < ...

  9. virtualBox虚拟机联网

    1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

  10. http协议基础(八)请求首部字段

    请求首部字段 定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息.客户端信息以及对响应内容相关的优先级等内容 1.Accept 通知服务器用户代理可处理的媒体类型及媒体 ...