Java数据类型的分类

Java 里面的数据类型从大的方面分为两类,一是基本数据类型,一是引用类型。基本的JAVA数据类型层次图如下:

Java类型对照 hive 表结构与 java数据类型表_Java

基本数据类型

第一类:整型 byte short int long
第二类:浮点型 float double
第三类:逻辑型 boolean(它只有两个值可取true false)
第四类:字符型 char
在栈中可以直接分配内存的数据是基本数据类型。
引用数据类型:是数据的引用在栈中,但是他的对象在堆中。
要想学好Java必须知道各种数据的在内存中存储位置。 对内存有了很好的了解,可以有助你分析程序。
字节:
boolean 布尔型 1/8
byte 字节类型 1
char 字符型 2 一个字符能存储一个中文汉字
short 短整型 2
int 整数类型 4
float 浮点类型(单精度) 4
long 长整形 8
double 双精度类型(双精度) 8
java中默认的整数类型是int类型,如果要定义为float型,则要在数值后加上l或L;
默认的浮点型也是双精度浮点,如果要定义为float型,则要在数值后加上f或F。

一个字节等于8位,一个字节等于256个数,就是-128到127一共256。
kB就是kBytes Bytes就是“字节”的意思!
K就是千的意思,因为计算机是通过二进制来计算,10个1正好是1024
1111111111(二进制)=1024(十进制)
1Bytes(字节)=8bit(比特)
一个英文字母或一个阿拉伯数字就是一个字符,占用一个字节
一个汉字就是两个字符,占用两个字节。
一般讲大小是用Bytes,大写的“B”,讲网络速率是用bit,注意是小写的“b”。
例:一个文件有8MBytes
例:我下载文件的速率是256KB/s,即2Mbit,这通常就是我们宽带上网的速率。

基本数据类型自动转换
byte->short,char -> int -> long
float -> double
int -> float
long -> double
记住:小可转大,大转小会失去精度!!!

引用数据类型

数组
String:字符串型,用于存储一串字符
Java变量声明及使用:
数据类型变量名 =值、表达式;
例:String name = “柯南”;
int a= 50;
注:“=”并不是数学中的“等号”,而是一个赋值运算符
Java变量命名规则:
1:必须以字母、下划线“_”、或“$”符号开头
2:可以包括数字、区分大小写
3:不能使用Java语言的关键字,例如int、class、public等
Java中的六种运算符:
· 算术运算符
· 赋值运算符
· 关系运算符
· 逻辑运算符
· 位运算符
· 三元运算符

算术运算符:
+:加法运算,求操作数的和
-:减法运算,求操作数的差
*:乘法运算,求操作数的乘积
/:除法运算,求操作数的商
%:求余运算,求操作数相除的余数
++:自增,操作数自加1
–:自减,操作数自减1

赋值运算符:
=:将右边的值赋给左边,例:int a = 1;
+=:左右两边的和相加赋给左边,例:int a = 1; a+=2;结果a的值为3
-=:左边减去右边的差赋给左边,例:int a =5;a-=2;结果a的值为3
=:两边数值相乘的值赋给左边,例:int a = 2;a=2;结果a的值为4
/=:左边除以右边的值赋给左边,例:int a = 6;a/=2;结果a的值为3
%=:左边除以右边的余数赋给左边,例:int a =7;a%=2;结果a的值为1

关系运算符

:大于,例:int a = 1;int b = 2;System.out.print(a > b);其结果为false
 <:小于,例:int a = 1;int b = 2;System.out.print(a
 < b);其结果为true
 =:大于等于,例:int a = 1;int b = 2;System.out.print(a
 = b);其结果为false
 <=:小于等于,例:int a = 1;int b = 2;System.out.print(a
 <= b);其结果为true
 ==:等于,例:int a = 1;int b = 2;System.out.print(a
 == b);其结果为false
 !=:不等于,例:int a = 1;int b = 2;System.out.print(a
 != b);其结果为true
 其结果都是boolean类型,即要么是true要么是false

逻辑运算符
&&:与、并且(短路),
两个条件同时为真时,结果为真
||:或、或者(短路),
两个条件有一个为真时,结果即为真
!:非,(!+条件) 条件为真时,结果为假

Java中的数据类型转换
1:自动数据类型转换(放大转换)
满足自动数据类型转换条件:
1)两种类型要兼容:如数值类型(整型和浮点型)
2)目标类型大于源类型:例如int型数据可以自动转换为double类型

2:强制数据类型转换(缩小转换)
在变量前加上括号,在括号中指定要强制转换的类型
例:double a = 40.9;
int b= (int)a;
注:强制转换会损失数值精度,例如double类型变量a,经强制转换为int类型后值变为40。