1.分类

  • Java数据类型

    • 基本数据类型

      • 数值型

        • 整数类型
        • 浮点类型
      • 字符型
      • 布尔型
    • 引用数据类型
      • 接口
      • 数组


2.基本数据类型

2.1 综述

java的8种基本数据类型(简单数据类型)

boolean  byte  short  char  int  long  float  double

分为以下四大类型

 逻辑类型:boolean
整数类型:byte short int long
字符类型:char
浮点类型:float double

2.2 简要介绍

逻辑类型 常量

true、false

true 
false
 
变量

用boolean声明

使用关键字boolean来声明逻辑变量,声明时也可以赋给初值

boolean man, male=true;
boolean x,ok=true,关闭=false; //T
有说1位,有说存储范围视内存而定
整数类型 int型 常量  
123//十进制
077//八进制 零开通
0x3ABC//十六进制 零小xyz的x
 
变量 用int声明,声明时也可以赋给初值
int x = 12;
: int x= 12,平均=9898,jiafei;  //T

-231~231-1   4字节 32位

231约21亿

byte型 常量 java中不存在该表示法

可以把范围 -27~27-1 内的int型常量赋给byte变量

???要求0b或0B开头,如:0b01110011

 
变量 用byte声明
byte tom = 28;

-27~27-1   1字节 8位

-128~127

short型 常量

java中不存在改表示法

可以把范围 -215~215-1 内的int型常量赋给short变量  
变量 用short声明
short x = 12;

-215~215-1   2字节 16位

-32768~32767

long型 常量  
108L//十进制
07123L//八进制
0x3ABCL//十六进制
 
变量 用long声明
long width = 12L;
-263~263-1   8字节 64位
字符类型 char类型常量

英文单引号括起Unicode

表中的一个字符

‘a’ ‘好’  ‘&’
 
转意字符常量

有些字符(如回车符)不能通过键盘输入到字符串或程序中,就需要使用转意字符常量

例如:\n(换行), \b(退格),\t(水平制表),\‘(单引号),
\“(双引号),\\(反斜线)等
 
char类型变量 用char声明
char x = ‘a’;//等价于char x = 97

0~65535  216-1   2字节16位

最高位不是符号位,无负char

浮点类型 float型 常量  
32.1f  32.1F  -23.1f//必有f
2e40f//2×10^40 2乘10的40次方

又被称作单精度类型,

可以精确到8位有效数字

变量 用float声明
float x = 22.76f;

-3.403E38~3.403E38

4字节

double型 常量  
21.3d  21.3  21.3D//D或d可省略
1e-90//1*10^-90

数值精度约是float类型的两倍,16位有效数字

又被称作双精度类型

变量 用double声明
double width = 32.56D

-1.798E308~1.798E308

8字节

java中没有无符号的 byte short int long 错误声明:unsigned int m;

2.2.1 浮点数

1.不要使用浮点数进行比较,需要比较使用BigDecimal类

float f = 0.1f;
double d = 1.0/;
System.out.println(f==d);//结果为false float d1 = 423432423f;
float d2 = d1+;
if(d1==d2){
System.out.println("d1==d2");//输出结果为d1==d2
}else{
System.out.println("d1!=d2");
} /*因为由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。
浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。
二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。
并不是所有的小数都能可以精确的用二进制浮点数表示。 java.math包下面的两个有用的类:BigInteger和BigDecimal,
这两个类可以处理任意长度的数值。
BigInteger实现了任意精度的整数运算。
BigDecimal实现了任意精度的浮点运算。
*/

2.浮点类型float,double的数据不适合在不容许舍入误差的金融计算领域。
如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

2.2.2  字符型

1.char 类型用来表示在Unicode编码表中的字符。

Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符

’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。

String类,其实是字符序列(char sequence)

2.字符型的十六进制值表示方法

Unicode具有从0到65535之间的编码,

通常用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)

char c = '\u0061';

3. Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义

转义符 含义 Unicode值
\b 退格backspace \u0008
\n 换行 \u000a
\r 回车 \u000d
\t 制表符tab \u0009
\“ 双引号 \u0022
\' 单引号 \u0027
\\ 反斜杠 \u005c
     

2.3 类型转换运算

2.3.1高低类型转换

1.基本类型从低到高

byte  short  char  int  long  float  double

2.低  ——>  高

系统自动完成数据类型转换
float x = 100;//输出x为100.0

3.高  ——>  低

必须用类型转换运算
格式:(类型名)要转换的值;
int x = (int)34.89;//输出为34

4.当将一种类型强制转换成另一种类型,而又超出了目标类型的表数范围,就会被截断成为一个完全不同的值

int x = ;
byte bx = (byte)x; //值为44 取低的范围内的数

5.不能在布尔类型和任何数值类型之间做强制类型转换

2.3.2字符串型数据与整型数据相互转换

1.字符串转换成数值型数据
数字字符串型数据转换成byte、short、int、float、double、long等数据类型,可以分别使用表3.7所提供的Byte、Short、Integer、Float、Double、Long类的parseXXX方法。

表 字符串转换成数值型数据的方法

例如:
String MyNumber="1234.567"; //定义字符串型变量MyNumber
float MyFloat=Float.parseFloat(MyNumber);
//1234.567
例如:
String MyNumber="1234a.567"; //定义字符串型变量MyNumber
float MyFloat=Float.parseFloat(MyNumber);
//

2.4 常量和变量

2.4.1 常量

1)常量通常指的是一个固定的值,

例如:1、2、3、’a’、’b’、true、false、”helloWorld”等,

一般将称为字面常量

2)在Java语言中,主要是利用关键字final来定义一个常量,

常量一旦被初始化后不能再更改其值,

使用final修饰的PI等称为符号常量

常量:大写字母和下划线:MAX_VALUE

声明格式为:
final type varName = value;

常量的声明及使用:
public class TestConstants {
public static void main(String[] args) {
final double PI = 3.14;
// PI = 3.15; //编译错误,不能再被赋值!
double r = ;
double area = PI * r * r;
double circle = * PI * r;
System.out.println("area = " + area);
System.out.println("circle = " + circle);
}
}

为了使用上的方便Java提供了数值型数据的最大值与最小值的标识符及常量值。如表3.4所示。

表3.4 数值型常量的特殊值代码

强制转换前判断是否在范围内防止失真,如double到float

2.4.2 变量

Java是一种强类型语言,每个变量都必须声明其数据类型,可以是基本类型,也可以是引用类型

变量的分类:局部变量、实例变量、静态变量

变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。

格式为:type  varName [=value][,varName[=value]...];
//[]中的内容为可选项,即可有可无
数据类型 变量名 [=初始值] [,变量名 [=初始值]…];
double salary;
long earthPopulation;
int age;

3021Java_数据类型的更多相关文章

  1. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

  2. JS 判断数据类型的三种方法

    说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...

  3. Python高手之路【二】python基本数据类型

    一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...

  4. UniqueIdentifier 数据类型 和 GUID 生成函数

    UniqueIdentifier 数据类型用于存储GUID的值,占用16Byte. SQL Server将UniqueIdentifier存储为16字节的二进制数值,Binary(16),按照特定的格 ...

  5. SQL Server常见数据类型介绍

    数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...

  6. 由js apply与call方法想到的js数据类型(原始类型和引用类型)

    原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...

  7. python 数据类型 ----字典

    字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...

  8. SQL数据类型

    1.Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多8,000个字符. n varchar(n) 可变长度的字符串.最多8,000个字符.   varchar ...

  9. 跟着老男孩教育学Python开发【第二篇】:Python基本数据类型

    运算符 设定:a=10,b=20 . 算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**3 ...

随机推荐

  1. ActiveReports 报告应用程序教程 (2)---上市类报告

     大多数数字在报告中系统类报告列表.实例:客户名单.产品列表.设备清单.采购清单.优惠券.商品发票.工作人员清点等..根据报告,查看类别列表相对简单.但,分丰富,在清单类报表中能够增加数据统计.数 ...

  2. JSON.parse(JSON.stringify()) 实现对对象的深度拷贝,从而互不影响

    JSON.parse(JSON.stringify({"key": "value"})) 根据不包含引用对象的普通数组深拷贝得到启发,不拷贝引用对象,拷贝一个字 ...

  3. 在echarts中自定义直方图bar上悬浮透明窗文本内容

    直接贴代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...

  4. AI2XAML's Bug(sequel)

    原文:AI2XAML's Bug(sequel) I wrote an article about AI2XAML's Bug the day  before yesterday. This arti ...

  5. ValueStack和OGNL达到Struts2形式的数据存储原理

    (1)最近学习struts相框,我们在快乐struts强大.为了便于使用转发,但不了解详细的内部数据存储: (2)网上找了很多关于struts数据存储的原理,但我还没有找到一个具体的解释,本书上找到了 ...

  6. Get and Post(Unity3D六个发展)

    猴子原创,欢迎转载. 转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=565 unity3d中的www ...

  7. cocos2d-x 在XML分析和数据存储

    无意中起到一周中的游戏,哎,时间过得总是打得那么快时,. .. 于是今天决定看一下之前不怎么非常熟悉的XML;(之前做游戏时数据的储存用到过XML.但这块是还有一个同事在做,所以不怎么熟悉), 看了看 ...

  8. Spring框架:Spring安全

    在传统的Web发展,安全码被分散在各个模块,这样方便管理,有时你可能会错过一个地方导致安全漏洞.为了解决这个问题,它的发明Spring Security.它是业务逻辑的有关安全代码的作用全部转移到一个 ...

  9. WPF依赖属性对内存的使用方式

    WPF允许对象在创建时候并不包含存储数据的空间,只保留在用到时获取数据默认值,借用其他对象数据或者实时分配空间的能力

  10. 关于QSocket的释放的一个需要注意的情况(必须先断开连接)

    最近在用QtNetwork编写服务器程序进行TCP/IP通信,大体过程如下: 1. 创建一个QTcpServer实例,监听目标IP和端口: 2. 一旦监听到有连接,获取和客户端之间的socket: 3 ...