三、数据类型和运算符
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
一个字节在内存中占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'
直接使用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 不与其它基本数据类型进行转换
基本数据类型转换
自动转换
把一个表数范围小的赋值给表数范围大的 称之为自动转换
如果把一个基本数据类型连接成字符串值连接时,基本数据类型自动转换为字符串类型
强制转换
由上图箭头反向转换称为强制转换 (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、扩展后的赋值运算符
5、比较运算符 > >= < <= == !=
6、逻辑运算符
7、三目运算符 “? :”
string a=5.3 ? "5大于3":"5小于3"