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) ...
随机推荐
- TFS API:二、TFS 代码查询工作项
TFS API:二.TFS 代码查询工作项 首先我们需要认识TFS的两大获取服务对象的类. 他们分别为TfsConfigurationServer和TfsTeamProjectCollection, ...
- mysql基准测试
1. 及注册时有两种主要的策略:①正对整个系统的整体测试(集成式full-stack) ②单独测试mysql(但组件式基准测试single-component) 2.获取系统性能和状态(需要记录的数据 ...
- MarkdownPad2 表格不显示处理
1.添加表格的扩展 工具 >选项 > Markdown >Markdown处理器 改为 “Markdown(扩展)”即可. 2.在设置的过程中要注册markdownpad2 邮箱: ...
- PHP发送短信功能
发送短信的功能主要在于获得短信接口后,在函数中模仿用户行为,例如浏览器跳转输出短信接口的链接. 需要运用的函数为 curl_init(); curl_setopt(); curl_exec(); cu ...
- DataTable 只保留想要的几列
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- [BI项目记]-BUG创建
BUG是在项目过程中以及运维过程中经常遇到的工作项.在处理每一个BUG的过程中,通过项目管理系统把BUG相应的内容纪录下来也是很重要的.这里将介绍如何通过TFS来完成BUG的创建工作. 首先我们来看B ...
- linux系统加快大文件的写入速度
linux系统加快大文件的写入速度 setvbuf进行优化内存IO
- AudioSpecificConfig
2个字节. 下面蓝色的为AudioSpecificConfig部分: 000001e0h: 00 00 00 00 00 AF 0011 90 00 00 00 0F 09 00 02; .....? ...
- python/matplotlib库的安装
- selenium使用笔记(一)
有时候在交流群里经常会看到这样的问题,selenium能进行性能测试吗?selenium1和selenium2有什么区别等等问题,在这里谈一下自己学习和工作以后对selenium的认识.我所记录的东西 ...