java基础学习-数据类型和运算符

三、数据类型和运算符

1、java语言属于强类型语言,强类型语言有两个特点

a、所有的变量必须先声明再使用

b、指定类型的变量只能接受与之类型匹配的值,并且强类型语言在编译时能够发现错误的地方

java语言提供了基本的数据类型,包括数值类型和布尔类型,数值类型间可以自动转换和强制转换

四、注释

单行注释 //

多行注释 /* — */

文档注释 /* — /

如果开发的程序编写了详细的注释,使用jdk提供的javadoc文件可以生产系统api文档,

api文档主要用于说明类,方法,成员变量之间的功能,javadoc处理源文件在类、接口、方法、成员变量构造器和内部类之前的注释,忽略其他部分的文档注释,并且javadoc默认处理public、protected的文档注释,可以修改javadoc的类型

五java关键字都是小写的

六、数据类型的分类

强类型语言特征:

a、所有的变量必须先声明再使用

b、指定类型的变量只能接受与之类型匹配的值,并且强类型语言在编译时能够发现错误的地方

java语言提供了基本的数据类型,包括数值类型和布尔类型,数值类型间可以自动转换和强制转换

type varname [=初始化值]

编程的本质就是对内存中的数据进行访问和修改,那变量就是作为一种机制,帮我们操作内存中的数据。

java中数据类型分为:基本数据类型与引用数据类型

基本类型中包括boolean类型和数值类型,数值类型包括整数类型和浮点类型,整数类型 int byte short long char(字符型无符号的整数类型) 浮点类型:float double

java基础学习-数据类型和运算符java基础学习-数据类型和运算符

一个字节在内存中占8位

整形中,int作为最常用的整数类型,如果默认给出一个整数值,那么它默认就是是整形,除了以下两种情况:

一个较小的整数值(在byte和short范围内)赋值给byte或short,系统自动将这个类型转换为byte或short;

一个巨大的整数值(超出int值范围)给long时,系统不会自动将这个类型转换为long,需要在整数值后面加L;

可以把一个较小的整数值赋值给long,系统并不会将该整数值当成long值处理,仍然当成int型来处理,只是int型会自动转换为long值;

java中的整数类型有四种表示方式:

10进制

2进制 0b 0B开头

8进制 0开头

16进制 0x 0X开头

10-15(a-f)表示

定义一个整形默认就是int型,如果以二进制的形式定义一个整形 默认占内存中的32位

字符型 2字节 16位 通常表示单个字符,使用单引号括起来,java使用16字节的unicode字符集座位编码格式

java中的字符型有三种表示方式:

单个字符 ‘A’ '9' '0'

通过转义符表示特殊字符型值: ‘\n’ '\t'

java基础学习-数据类型和运算符

直接使用Unicode值表示字符型值: ‘\uXXXX’ XXXX表示16进制的整数

'\u0000' -'\uffff'一共可以表示65536字符,前256个字符'\u0000' -'\u00ff' 与ascII码完全重合,因为计算机在保存字符时,保存的是对应的编号,因此char类型也可以作为整形来操作,表示16位的无符号整数,范围是0-65535

浮点型: IEEE754标准 二进制数据科学技术法表示浮点型

float 4字节 32位 单精确度 第1位表示 符号位 接下来8位表示指数 接下来23位表示 尾数

double 8字节 64位 双精确度 第1位表示 符号位 接下来11位表示指数 接下来52位表示 尾数

因为二进制的计算中不管是float还是double都会失去部分的精确度,如果想要准确的保存这些精确度,就使用BigDecimal。

java浮点型有两种表示形式:

十进制 .512 5.12 512.0 简单浮点类型 浮点类型必须包含一个.否则会当成int类型处理

科学技术 5.12e2 (5.12*10的2次方)

java浮点型默认double 8字节占64位 如果要把浮点型当float使用,在后面用f或F指定就可以

java有三个特殊的浮点数值:

正无群大 正数除以0

负无群大 负数除以0

非数 0.0除以0.0或对一个负数开方

所有的正无群大都是相等的 所有的负无群大都是相等的 非数NaN不与任何数值相等 包括NaN

java中整数除以0会抛出异常

java7中引用_区别进制数值位数多时的观看问题

布尔型 true false 不与其它基本数据类型进行转换

基本数据类型转换

自动转换

java基础学习-数据类型和运算符

把一个表数范围小的赋值给表数范围大的 称之为自动转换

如果把一个基本数据类型连接成字符串值连接时,基本数据类型自动转换为字符串类型

java基础学习-数据类型和运算符

强制转换

java基础学习-数据类型和运算符

由上图箭头反向转换称为强制转换 (targetType)value

备注:把表数范围大的转换为小的时候,会自动截断,数据就会丢失

生成97-126随机数 Math.randoom()*(m+1-n)+n Math.randoom()*(126+1-97)+97

 

直接量

基本类型 字符串类型 null都是直接量,可以直接赋值,

 

运算符

1、算数运算符 java中常规的就是以下运算符,剩余的可以通过Math类中的工具

+:(算数和连接字符串)

- :(算数和求正) int x=-5 int y=-5 y=5

* :相乘

/:两个整数中除数不能为0

若两个都是浮点型,或一个是浮点型,结果肯定是浮点型,若被除数是浮点型,除数是0或者0.0则结果都是正无群大或负无群大

% :求余的结果不一定是整数,他是两个数相除后的结果剩下的值就是余数

两个整数求余,则一个数不能为0负责会抛出异常

如果求余中的数是浮点型,责允许第二个数未0或者0.0 但结果是NAN 非数

0、0.0对他们以外的数求余都的 0、0.0

++: ++a +b 表示先对a自增后再与b相加

a++ +b 表示先与b相加 后再对a自增

--: --a -b 表示先对a自减后再与b相减

a-- -b 表示先与b相减 后再对a自减

自增和自减只能对变量操作 不能对数值直接量、常量、表达式进行操作

2、赋值运算符

3、位运算符

4、扩展后的赋值运算符

java基础学习-数据类型和运算符

5、比较运算符 > >= < <= == !=

6、逻辑运算符

java基础学习-数据类型和运算符

 

 

 

7、三目运算符 “? :”

string a=5.3 ? "5大于3":"5小于3"