基本数据类型概念  

  java是一种强类型语言,意味着必须为每一个变量声明一种数据类型。

  java拥有8中基本数据类型,主要包含如下:4中整形类型(long、int、short、byte)表示整形数值;两种浮点型类型(double、float)表示浮点型数值;一种字符类型(char)表示字符单元;一种真值类型(boolean)表示true/false真值。所有的基本类型的包装类都使用了final修饰符,意味着不能再继承他们拓展新的类,也无法重写他们的方法。

  基本数据类型又称内置类型,是指可以数据类型本身直接分配在栈中的数据类型,相对的数据类型是对象类型,其对象的引用存储在栈中,对象本身存储在堆中。

  基本类型相对于包装类型存取速度快,计算速度高;但包装类满足了java一切皆对象的特点,例如集合中的元素必须要求是对象类型。

  浮点数值计算溢出产生三种类型浮点数值,Double.POSITIVE_INFINITY/Double.NEGATIVE_INFINITY/Double.NaN分别表示正无穷,负无穷,不是一个数,判定是否为一个数值应采用Double.isNaN(x),且所有飞数值的值都认为是不相同的。

以下代码通过调用对应包装类查看对应基本类型所占二进制位数以及最大最小值

  1. public class PrimitiveTypeTest {
  2. public static void main(String[] args){
  3. //byte
  4. System.out.println("基本类型:byte二进制位数:"+Byte.SIZE);
  5. System.out.println("包装类:java.lang.Byte");
  6. System.out.println("最小值:Byte.MIN_VALUE="+Byte.MIN_VALUE);
  7. System.out.println("最大值:Byte.MAX_VALUE="+Byte.MAX_VALUE);
  8. System.out.println();
  9. //short
  10. System.out.println("基本类型:short二进制位数:"+Short.SIZE);
  11. System.out.println("包装类:java.lang.Short");
  12. System.out.println("最小值:Short.MIN_VALUE="+Short.MIN_VALUE);
  13. System.out.println("最大值:Short.MAX_VALUE="+Short.MAX_VALUE);
  14. System.out.println();
  15. //int
  16. System.out.println("基本类型:int二进制位数:"+Integer.SIZE);
  17. System.out.println("包装类:java.lang.Integer");
  18. System.out.println("最小值:Integer.MIN_VALUE="+Integer.MIN_VALUE);
  19. System.out.println("最大值:Integer.MAX_VALUE="+Integer.MAX_VALUE);
  20. System.out.println();
  21. //long
  22. System.out.println("基本类型:long二进制位数:"+Long.SIZE);
  23. System.out.println("包装类:java.lang.Long");
  24. System.out.println("最小值:Long.MIN_VALUE="+Long.MIN_VALUE);
  25. System.out.println("最大值:Long.MAX_VALUE="+Long.MAX_VALUE);
  26. System.out.println();
  27. //float
  28. System.out.println("基本类型:float二进制位数:"+Float.SIZE);
  29. System.out.println("包装类:java.lang.Float");
  30. System.out.println("最小值:Float.MIN_VALUE="+Float.MIN_VALUE);
  31. System.out.println("最大值:Float.MAX_VALUE="+Float.MAX_VALUE);
  32. System.out.println();
  33. //double
  34. System.out.println("基本类型:double二进制位数:"+Double.SIZE);
  35. System.out.println("包装类:java.lang.Double");
  36. System.out.println("最小值:Double.MIN_VALUE="+Double.MIN_VALUE);
  37. System.out.println("最大值:Double.MAX_VALUE="+Double.MAX_VALUE);
  38. System.out.println();
  39. //char
  40. System.out.println("基本类型:character二进制位数:"+Character.SIZE);
  41. System.out.println("包装类:java.lang.Character");
  42. System.out.println("最小值:Character.MIN_VALUE="+(int)Character.MIN_VALUE);
  43. System.out.println("最大值:Character.MAX_VALUE="+(int)Character.MAX_VALUE);
  44. System.out.println();
  45. }
  46. }

  执行结果如下:

基本类型: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

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

Java中的常量

  长整形数值常量必须以L/l结尾表示,十六进制前缀0x,八进制前缀0,float数值后缀F/f,带小数点默认为double类型,float f=1.3f(必须加上后缀)。另外还包括字符常量(含转义字符)。例如:int i=100,则i*1000000000为int类型,但计算结果溢出,如果改为i*1000000000L则结果为长整形,计算结果正确。都与浮点型同理。

数据类型之间的转换

  自动转换(隐式转换):不同类型数值表达式计算进行计算时,其结果类型为”大“数据(这里的“大”指数值范围的大小)。数据类型之间的自动转换如下byte-->short-->int-->long;char-->int-->double;float-->double。

  强制转换(显示转换):大数据转换为小数据时需采用强制转换,会丢失精度。

  表达式数据结果类型如下:byte/short/char自东转换为int类型,如byte b=4;b=b*4出错,b=(byte)(b*4)正确;含一个long型,则结果为long型;含一个float型,则结果为float型;含一个double型,则结果为double型;

  包装类型转换:{float f=1.3f;Float F=new Float(f);Double D=F.doubleValue();}使用xxValue进行包装类型转换。

  其他类型转换为字符串:对象类型调用toString()方法;基本类型+“”;基本类型调用String.valueOf(基本类型)方法。

  字符串转换为其他类型:先转换为对应的包装类在转换为基本类型,如{String s="123";Integer I=new Integer(s);int i=I.intValue();}即可完成转换;调用静态parsexxxx方法,如{String s="1";byte b=Byte.parseByte(s);}即可完成转换;

  Date与int/long之间的关系,Date的构造器可以通过int参数创建日期(如Date(int year, int month, int date)),也可通过距离标准格林威治时间1970-01-01-0800-00的差值来计算。

  Date的特定格式转换:通过java.text.SimpleDateFormat类创建对应格式,在通过其format(Date d)方法获取String样式,如String s=new SimpleDateFormat("YYYY-MM-DD").format(new Date)获取实时时间格式。

变量和常量

  程序中的数据表明程序的状态,这些数据随着程序的运行有的发生变化,有的保持不变,这些数据叫做变量或常量。

  在实际的程序设计过程中,可根据数据在整个运行过程中是否发生变化来决定使用变量还是常量。

  变量代表程序的状态,通过改变变量的值来改变程序的状态,宏观上实现程序的逻辑功能。变量名的命名有字母开头,后接字母或者数字的序列(这里的字母包含_/$),定义一个变量语法为:数据类型 变量名(=值);可同时命名多个同类型变量(int a,j),定义一个变量后,必须在使用该变量前初始化变量。

  常量表示程序运行过程中不能改变的值,使用常量主要目的在于便于修改程序中多个相同的不变的值,同时常量变量也增加的程序的可读性,常量名一般要求全大写表示,语法相对于变量而言需要前缀final关键字,其他相一致。

  final关键字的含义为无法改变或者终态的意思。

运算符

  整数与整数相触为整数除法,结果为整数;一个带小数则为浮点除法;

  二元运算符;

  前缀的自增自减运算符表示先进行自增自减后再单于表达式运算;

  关系运算符中的&&、||采用短路方式求值;

  三元运算符:condition?expression1:expression2;

  位运算符:&、|、^、~,非短路运算,可应用与boolean数据。

  移位运算符>>、<<、>>>可用于算数运算,如int i=127,int b=(i>>3)+1<<2;结果为64,>>>无符号右移,高位补0,只对32位或者64位有效 。

  Math类中包含了很多基本的数学公式和数学常量π等。

字符串

数组

  数组不能直接采用equals()方法比较两个数组是否相等,该方法是Object的方法,数组并没有override该方法,可以采用Arrays.equals()方法比较数组是否相等。

  数组创建后未初始化时,JVM按照以下规则初始化数组,数值类型初始化为0;boolean类型初始化为false;char类型初始化为空;对象类型初始化为null

  为了让回收不再使用的数组所占的内存空间,可将该数组对应的全部变量指向null。

  

  

java基本数据类型的更多相关文章

  1. Java基础-数据类型int,short,char,long,float,double,boolean,byte

    Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...

  2. Java中数据类型及其之间的转换

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

  3. Java 基本数据类型 sizeof 功能【转】

    转自:http://blog.csdn.net/sunboy_2050/article/details/7310008 版权声明:本文为博主原创文章,未经博主允许不得转载. Java基本数据类型int ...

  4. java 的数据类型

    java 的数据类型有基本类型和引用类型 java的类的关系:有继承,有依赖,有关联,聚合,组成.

  5. java基础之java基本数据类型

    1.Java数据类型基本概念: 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的.简单的,各种数据 ...

  6. Java学习笔记之:Java的数据类型

    一.介绍 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java语言提供了八种基本类型 ...

  7. Java SE ---数据类型

    Java中数据类型(Data Type)分为基本数据类型(Primitive Data Type)和引用类型(Reference Data Type). Java中的基本数据类型共有以下8种:   1 ...

  8. [未完成]关于java基础数据类型中的一些总结

    java基本数据类型转换图: 有时候也把char型成为字符型,是加上字符型也是一种特殊的整数类型.

  9. Java学习——数据类型【2】

    1. 对象与类 对象:类的一个实例,有状态和行为. 类:一个模板,描述一类对象的行状态和行为. 2. 类可以包含的变量 类型 局部变量 成员变量 类变量(静态变量) 定义位置 方法.或语句块中 类中, ...

  10. Java语言基础(五) Java原始数据类型的分类以及数据范围

    Java原始数据类型的分类以及数据范围 1.基本数据类型分为:整型(byte, short, int, long),浮点型(float, double),字符型(char),布尔型(boolean) ...

随机推荐

  1. 【笔记】读取properties文件

    package com.bshinfo.el.userInfo.util; import java.io.BufferedReader; import java.io.File; import jav ...

  2. (2)WebAPI的增删改查

    using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Ne ...

  3. Power BI for Office 365 概览

    伴随着数据量的日益增长,通过自服务式的商业智能把数据转换成辅助决策支持的工具,越来越成为迫切的需求.在以前,处理这些数据往往只是IT人员范围内的事,但是通过Power BI for Office 36 ...

  4. 将一个实体数据保存到不同的数据表中<EntityFramework6.0>

    2014-11-22声明方式 public class Product { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public ...

  5. CozyRSS开发记录13-添加订阅的对话框

    CozyRSS开发记录13-添加订阅的对话框 1.设计对话框 首先,还是先用MockPlus来画个原型图: 因为用了MaterialDesignToolkit,那么可以很方便的有一个蒙层的效果. 2. ...

  6. MIT 6.828 JOS学习笔记17. Lab 3.1 Part A User Environments

    Introduction 在这个实验中,我们将实现操作系统的一些基本功能,来实现用户环境下的进程的正常运行.你将会加强JOS内核的功能,为它增添一些重要的数据结构,用来记录用户进程环境的一些信息:创建 ...

  7. 常见css垂直自适应布局(css解决方法)

    css3的盒模型, css3中添加弹性盒模型,最新弹性盒模型是flex,之前为box <!DOCTYPE html> <html > <head> <titl ...

  8. 我的Python学习之路 Python的输入输出与基本数据类型

    *** python中的变量不需要事先声明再使用,而可以直接来一个变量名,后面一个赋值,接着一个数据值,如 hw = "hello python",相当于Python能智能的根据你 ...

  9. System中记录体函数命名怪异

    //1019unit System; 中发现记录体函数命名怪异//乍一看,很怪异,其实是结构体里面 的变量后面直接写 函数类型了.不像传统先定义T***Event      = procedure(S ...

  10. 线段树 - ZYB's Premutation

    ZYB has a premutation P,but he only remeber the reverse log of each prefix of the premutation,now he ...