java八大类别以及容易出现的错误

java八大基本类型
public class TestClass {

/*
* 类是什么?
* 关键字 class 定义一个类
* 类就是具有相同属性和相同行为的事物的集合(抽象)
* 人类: 相同的属性:肤色、年龄、性别等
* 相同的行为:吃饭、睡觉、打豆豆、呼吸等等
* 汽车类: 相同的属性:颜色、重量、品牌等
* 相同的行为:跑
*
* Java中有八种基本的数据类型:
* “你好”==》二进制流 再进行存储和应用
* 1G=1024M 1M=1024Kb 1Kb=1024Byte 1Byte=8bit 1bit要么是1要么是0
*
* 一、整形(整数)
* 1.byte(关键字)字节 1byte=8bit
* 0000 0011 整数3
* 范围:-128到127
* 0111 1111最大数
* 1111 1111最小数
*
* 2.short(关键字)短整形 占16bit
* 00000000 0000011整数3
* 范围:-32768到32767
* 负2的15到2的15次方-1
*
* 3.int (关键字) 整形 占32bit
* 范围:负2的31到2的31次方-1
*
* 4.long (关键字) 长整形 占64bit
* 范围:负2的63到2的63次方-1
*
* 二、浮点型(小数)
* 5.float(关键字) 单精度浮点类型 32bit 精度:显示到小数点后7位。
* 数值范围:-2的128次方到2的128次方
*
* 6.double(关键字) 双精度浮点类型 64bit 精度:显示到小数点后16位
* 数值范围:-2的1024次方到2的1024次方
*
* 三、字符类型
* 7.char (关键字) 字符 16bit 用单引号包起来 'a' 'b' 'z' ASCII
*
* 四、布尔类型
* 8.boolean(关键字) 8bit 只有两个值 true和false
* 在内存中的存储:
* true 0000 0001
* false 0000 0000
*
* 五、
* 9、字符串(不属于八种基本数据类型之一)
* String 字符串 用双引号包起来的
*
* 注意:优先级:
* 值域小的类型可以自动转化为值域大的。值域大的不能直接转化为值域小的(可以强转)。
*
* 六、
* 引用数据类型:类、接口、数组。( String就是引用数据类中的一种)
*
* 变量:
* 1.定义:在程序运行的过程中,其值在某个范围内可以发生改变的量
* 范围靠数据类型来约束
* 2.变量的组成规则:
* 1.必须对其范围进行限定
* 如何限定?数据类型
* 2.在运算时,咱们不可能拿着内存空间去运算,真正参与运算的是该内存空间
* 所存储的值。我们就把这个内存空间起了一个名字:变量名
* 3.即使有内存空间,也有变量名,但是还需要进行初始化。
* 初始化:就是给这个内存空间存上值。
* 3.变量的定义格式:
* 1.数据类型 变量名 = 初始化值; = 赋值符号。把符号右边的值赋给左边。
* 2.数据类型 变量名;
* 变量名 = 初始化值;
*
*
* 数据类型的转换:
* 1.boolean类型不参与转化
* 2.转换方式:
* 1.默认转化:
* (1)按照优先级从小到大
* byte,short,char -->int -->long-->float-->double
* (2)byte,short,char之间不能相互转化,需要直接转成int类型参与计算(自动升级)
* 2.强制转换
* (1)优先级从大到小的转换
* (2)注意:强制转换有可能会有精度的损失。一般不建议。
* (3)强制转换的格式:
* 目标数据类型 变量名 = (目标数据类型)被转换的数据;
*
* 问
* float f1 = 14.258f;//32--》32
* float f2 = (float)14.258;//64--》32
* 有什么不同?
*
* byte b1 = 3;
* byte b2 = 4;
* byte b3 = b1+b2;
* byte b4 = 3+4;
* 有什么问题?变量相加和常量相加的区别
*
* byte b = (byte)150;
* 150(int) --》 00000000 00000000 00000000 10010110
* 10010110(补码)
* 10010101(反码)
* 11101010(原码) --》-106
* b=? b=-106
*
* 'P'+'Y' =? 看ASCII码 'P'=80 'Y'=89 169
*
* 字符串的拼接:
* 字符串后的+不是计算符号,是拼接符号 字符遇到拼接符号,会转化为int类型?
* "hello"+'A'+1=? helloA1
* "hello"+('A'+1)=? hello66
* 'A' = 65
* 'A'+20+"a"+'b'+'h' = ? 85abh
*/
public static void main(String[] args) {
//定义一个int类型的值
int a = 20;
int b;
b = 30;
//定义一个浮点型的值
float c = 2.3f;//float类型的值后面需要加f或F。
long d = 500L;//long类型的值后面需要加l或L。
System.out.println('a'+' ');
System.out.println(20);
a = 100;
b = 50;
c = 5.5f;
d = 40000;
byte bb = 20;
char cc = 'a';//97
short ss = 30;
int count = bb+cc+ss;//convert from int to byte
double dd = 1.012345678912345;//小数点后15位
float ff = (float)dd;//将double类型的转换为float类型
System.out.println(ff);
int ii = 300;
byte by = (byte)ii;
//300-->00000000 00000000 0000001 00101100
//00101100-->44
System.out.println(by);

}
}

猜你喜欢

转载自blog.csdn.net/qq_37529302/article/details/58601298