基本数据类型概念  

  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. 51nod1240(莫比乌斯函数)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1240 题意:中文题诶- 思路:直接暴力筛选就好了... 代码 ...

  2. Android使用CountDownTimer倒计时

    1.布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android ...

  3. tensorflow中的lstm的state

        考虑 state_is_tuple     Output, new_state = cell(input, state)     state其实是两个 一个 c state,一个m(对应下图的 ...

  4. 从零起步搭建Wordpress个人博客——Windows 平台篇(上)

    本文以 Windows Server R2 64bit 标准版 为基础,其他windows版本可能会略有不同. 参考资料: https://codex.wordpress.org/Installing ...

  5. Mac 显示隐藏文件

    defaults write com.apple.finder AppleShowAllFiles -bool true 此命令显示隐藏文件defaults write com.apple.finde ...

  6. 设置CentOS不启用图形界面

    由于linux服务器放在机房长时间运行,或者只是在后台运行,一般通过secureCRT连接服务器: 所以在虚拟机上都不需要图形界面,而且图形界面占用内存. 所以,我们可以通过简单的设置,让linux只 ...

  7. MIT 6.828 JOS学习笔记18. Lab 3.2 Part B: Page Faults, Breakpoints Exceptions, and System Calls

    现在你的操作系统内核已经具备一定的异常处理能力了,在这部分实验中,我们将会进一步完善它,使它能够处理不同类型的中断/异常. Handling Page Fault 缺页中断是一个非常重要的中断,因为我 ...

  8. 常用的sublime text插件(很爽哦)

    个人比较懒,平时喜欢用webstorm,但是因为webstorm打开实在太慢了,并且太看设备,所以本人编辑简单的文件依然会选择使用sublime,虽然网上有很多关于此类插件的分享了,但是感觉都是片段, ...

  9. 关于2016.12.12——T1的反思:凸包的意义与应用

    2016.12.12 T1 给n个圆,保证圆圆相离,求将圆围起来的最小周长.n<=100 就像上图.考场上,我就想用切线的角度来做凸包.以圆心x,y排序,像点凸包一样,不过用两圆之间的下切线角度 ...

  10. phpstorm常用快捷键

    mac电脑phpstorm快捷键    command + a 全选    command + c 复制    command + v 粘贴    command + z 撤消    fn+comma ...