java基本数据类型
基本数据类型概念
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),且所有飞数值的值都认为是不相同的。
以下代码通过调用对应包装类查看对应基本类型所占二进制位数以及最大最小值
- 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("基本类型:character二进制位数:"+Character.SIZE);
- System.out.println("包装类:java.lang.Character");
- System.out.println("最小值:Character.MIN_VALUE="+(int)Character.MIN_VALUE);
- System.out.println("最大值:Character.MAX_VALUE="+(int)Character.MAX_VALUE);
- System.out.println();
- }
- }
执行结果如下:
基本类型: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基本数据类型的更多相关文章
- Java基础-数据类型int,short,char,long,float,double,boolean,byte
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...
- Java中数据类型及其之间的转换
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
- Java 基本数据类型 sizeof 功能【转】
转自:http://blog.csdn.net/sunboy_2050/article/details/7310008 版权声明:本文为博主原创文章,未经博主允许不得转载. Java基本数据类型int ...
- java 的数据类型
java 的数据类型有基本类型和引用类型 java的类的关系:有继承,有依赖,有关联,聚合,组成.
- java基础之java基本数据类型
1.Java数据类型基本概念: 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的.简单的,各种数据 ...
- Java学习笔记之:Java的数据类型
一.介绍 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java语言提供了八种基本类型 ...
- Java SE ---数据类型
Java中数据类型(Data Type)分为基本数据类型(Primitive Data Type)和引用类型(Reference Data Type). Java中的基本数据类型共有以下8种: 1 ...
- [未完成]关于java基础数据类型中的一些总结
java基本数据类型转换图: 有时候也把char型成为字符型,是加上字符型也是一种特殊的整数类型.
- Java学习——数据类型【2】
1. 对象与类 对象:类的一个实例,有状态和行为. 类:一个模板,描述一类对象的行状态和行为. 2. 类可以包含的变量 类型 局部变量 成员变量 类变量(静态变量) 定义位置 方法.或语句块中 类中, ...
- Java语言基础(五) Java原始数据类型的分类以及数据范围
Java原始数据类型的分类以及数据范围 1.基本数据类型分为:整型(byte, short, int, long),浮点型(float, double),字符型(char),布尔型(boolean) ...
随机推荐
- Java面试连环炮问题收集记录贴【JVM方面】
写这类文章是为了记录下网上看到的/自己经历的一些一环扣一环的面试问题,一方面提高自己的理论知识,另外一方面也给自己去参加面试或面试他人提供点参考和帮助. 问题一: 为什么一个对象会被GC? 对象在进行 ...
- Eclipse中使用Maven创建web项目
一.创建一个Maven项目 1.Eclipse中用Maven创建项目 上图中点击next 2.继续next 3.选maven-archetype-webapp后,next 4.填写相应的信息,Pack ...
- "Fatal error: Call to undefined function: file_put_contents()"
打开页面时提示这个错误: Fatal error: Call to undefined function: file_put_contents() 意思是请求未定义的函数,出现这个提示通常有两种情况: ...
- vps_centos_7_系统环境常规配置备忘
1.设置时区(东八区) 1> 选择亚洲东八区北京时间:tzselect (按照提示选择指定的序号直到北京时间) 2>替换时区文件 :cp /usr/share/zoneinfo/Asia/ ...
- 北京电子科技学院(BESTI)实验报告5
北京电子科技学院(BESTI)实验报告5 课程: 信息安全系统设计基础 班级:1452.1453 姓名:(按贡献大小排名) 郑凯杰.周恩德 学号:(按贡献大小排名) 20145314.20145217 ...
- 《转》Unity3D研究院之UGUI一个优化效率小技巧
无意间发现了一个小技巧.如下图所示,可以发现UGUI的Image组件的RaycastTarget勾选以后会消耗一些效率,为了节省效率就不要勾选它了,不仅Image组件Text组件也有这样的问题. 一般 ...
- 未能添加对***.dll的引用 问题解决方法
这个不是什么新问题了,这里说一下我遇到的这个操蛋事. 转载请注明出处 http://www.cnblogs.com/zaiyuzhong/p/6236263.html 我做的和往常一样,找到SDK开发 ...
- map<虽然一直不喜欢map>但突然觉得挺好用的
#include<iostream> #include<cmath> #include<cstdio> #include<algorithm> #inc ...
- Android MediaMetadataRetriever 读取多媒体文件信息,元数据(MetaData)
音乐播放器通常需要获取歌曲的专辑.作者.标题.年代等信息,将这些信息显示到UI界面上. 1.一种方式:解析媒体文件 命名空间:android.media.MediaMetadataRetrieve ...
- Android应用-听听
听听是一款记歌词音乐播放器android应用. 功能特点:1.搜索网络歌词.2.本地音乐分类播放.3.离线保存网络歌词.4.页面整洁干净,风格清新. 下载APP 屏幕截图: