2.基本类型数据类型:Java是一种强类型的编程语言
声明周期:有效范围。Java提供了垃圾回收机制
(1)整型 byte 1、short 2、int 4、long 8
- Java采用补码的方式存储数据
- 4中不同的表示方法:十进制、0八进制、0x十六进制、0b二进制
- 在使用字面量,Java中的整数默认类型就是int,如果想表示long则在数值末尾添加l/L,一般建议使用L
(2)浮点数:float 4、double 8 - 在Java中浮点数无法精确存放,除非使用Java提供的类BigDecimal(不允许使用等值==判断,应该使用Math.abs(a-b)<1e-6)
- 字面量的表示方式:十进制123.0、科学计数法1.23e2,注意e后面只能是整数(数值末尾使用f/F表示float,使用D/d表示double)
(3)字符类型 char char c = ‘中’;注意是单引号,不是双引号 - Java中字符采用Unicode编码字符集,2B对应的整数为0-65535
- 字符类型的变量可以当作整数使用
- ‘0’ < ‘A’ < ‘a’
- Java中提供了转义字符,以反斜杠开头
– ddd 1-3位的8进制数对应的字符
– uxxxx 1-4位的16进制对应的字符
– ‘表示单引号,注意不允许’’’
–’'表示双引号
–表示反斜杠字符
(4)布尔类型boolean - 只有两个数值:true表示真,false表示假
- 在Java中整型数据和boolean值之间没有转换关系
int k = 123;
//将十进制数转换为8进制
System.out.println("0"+Integer.toOcatlString(k));
//将十进制数转换为16进制
System.out.println("0x"+Integer.toHexString(k));
//将十进制数转换为2进制
System.out.println("0"+Integer.toBinaryString(k));
3.基本数据类型转换
小转大自动转,大转小需强转 (窄化操作)
//小转大 byte b1 = 123; long k1 = b1; double k2 = k1; //大转小 double d1 = 123.456; long k1 = d1;//语法错误Type mismatch:cannot convert from double to long long k2 = (long)d1;
强制类型转换的语法:(目标类型)变量
注意:Boolean类型和数值类型之间没有任何对应关系,所以进行强制类型转换会报语法错误
浮点数的特殊处理
针对浮点数系统默认的是double类型,所以123.456系统识别为double类型,但是变量f1声明为float,所以这里需要进行数据类型转换或者进行特殊声明
double d1 = 123.456 // long k1 = d1; long k1 = (long)d1;//强制类型转换 System.out.println(k1);//使用强制类型转换可能会导致精度丢失问题 //针对浮点数的特殊处理 //float f1 = 123.456;语法报错,Type mismatch:cannot convert from double to float float f1 = 123.456f; //d/F表示单精度浮点数、d/D表示双精度 float f2 = (float)123.456;4.符合数据类型
符合数据类型包括:类class、接口interface、数组
特殊值null,在运行时并没有对应的类型,但是它可以被转换为任何复杂类型,表示没有存储数据,但是不能赋值给简单类型
注:复合类型的默认值就是null空指针
public class Test{
public static void main(String[] args){
Object b;//定义变量b为复合类型Object,Object类就是系统预定义
//System.out.println(b);这里报错是因为要求临时变量必须先定义后使用,必须先赋初值后使用
b = null;
System.out.println(b);
}
}
5.常量
常量就是值在程序执行的期间其值不能发生变化的数据
final double PI = 3.1415; PI = PI + 1;//语法报错是因为final表示PI是常量,不允许修改 System.out.println(PI);6.表达式
表达式就是运算符、操作数以及方法的调用序列,用来说明某个计算过程并返回计算结果
基本运算符可以分为:算术运算符、关系运算符、位运算符、条件运算符
- 算术运算符:+ - * / % ++ –
- 关系运算符:> >= < <= ==等值 !=不等于
- 逻辑运算符:&&与运算,表示并且的关系;||或运算,表示或者的关系;!非运算,表示不是,中点在于计算过程中支持短路操作
- 位运算:&与 |或 ^异或 ~按位取反 <<左移位 >>右移位 >>>,基本不做要求,位运算不支持短路操作
- 赋值运算符:= += -= *= /= %=
- 三目运算:(表达式1?表达式2:表达式3)
//+ - * / //特殊:整除计算,参与计算的双方都是整数,则计算为整除计算,结果不会有小数部分 //例如:10/3=3,不是3.33333。如果是10./3返回值就是3.3333...,因为10.表示浮点数,不是整数 //%取余[取模] //10%3 = 1实际上就是10除以3的余数 double k = 10.12; System.out.println(k%3);//输出结果为1.12,小数部分不参与除法计算 //++和--是单目运算符 //i++计算结果等价于i=i+1,i--结果等价于i=i-1; //有两种写法:以++为例,--写法实际相同 //i++是先获取i的值,然后针对i执行加1操作 int age = 99; System.out.println(age++); //输出值为99 System.out.println(age); //没有任何运算符,但是输出值为100 //++i是先对i执行加1操作,然后再获取i存储的数据 int age1 = 99; System.out.println(++age); //输出值为100,是因为先执行加1再获取数据 System.out.println(age);//100
今天就先学到这里,后续会更新学习内容!



