文章目录
一、变量和数据类型
1、数据类型
Java属于强数据类型的语言,定义一个变量时,这个变量在之后赋值的过程中,只能赋值为相应的类型。
1.1整型变量
int:使用int关键字定义一个整形变量
此时声明一个变量,他的类型是int型,并且初始化变量a的值为10
在变量定义是可以不赋值,但是一般推荐定义变量时赋予初始化值。
1.2长整型变量
long:使用long关键字定义一个长整型变量
long为8字节,取值范围非常大,足够满足日常工作需要。
1.3浮点型变量
1.浮点型变量分为两种:
float: 4字节(单精度浮点数)
double:8字节(双精度浮点数)常用
在java中直接写出来的小数就是double类型的变量
2.浮点数相乘有误差。
在工程中有两种解决办法:
1、仍然使用double,但是我们一般只看小数点后6位左右有效数字。
2、使用BigDecimal类来代替double使用。
3.float说明:
1.4字符型变量
char:使用char来定义一个字符型变量
char位2字节,无论是什么语言,只要是字符型变量,都是2字节,使用’'括起来的都是字符字面量,默认都是char类型
1.5布尔型
boolean只有两个值,真就是true,假就是false,与0和1没有任何关系。
1.6字符串类型变量
string是引用数据类型,不是基本类型
转义字符有很多种,默认String类型
\n:换行
\t:水平制表符
':单引号
“:双引号
\:反斜杠
当碰到一些特殊字符时,需要转义输出,所谓的转义输出,就是告诉编译器,对这个字符不要做特殊处理
在java中,任意数据类型只要和字符串”+",都会把其他类型转变为字符串然后进行字符串的拼接操作。
1.7常量
若程序中的有些属性不能修改,称这些属性为常量,定义之后值无法修改。定义常量使用final关键字
所有的字面量也是常量,直接写出来的值,都叫字面量
2.变量的命名规则
硬性指标:
1.一个变量名只能包含数字, 字母, 下划线
2. 数字不能开头
3. 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量
4. 不能使用java中的关键字作为变量命名
注意: 虽然语法上也允许使用中文/美元符($)命名变量, 但是 强烈 不推荐这样做。
软性指标:
1.变量命名要具有描述性, 见名知意
2. 变量名不宜使用拼音(但是不绝对)
3.变量名的词性推荐使用名词
3. 变量命名推荐: 小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写
Java有以下的关键字,不能作为命名变量
二.数据类型的转换
1.int型和long型的转换
a是一个整型,b是long类型,现在把一个long类型的变量赋值给int类型,有可能会导致整形变量放不下b的值。
程序执行代码都是从右向左执行
a(int)+1(int)=int+int=int ,先进行是a+1=>已经溢出了,把一个移除的值让long b接收了。并不是long放不下,而是储存了一个溢出的值。
解决方案
数据溢出
2.int和byte的转换
对于数值型和字符型来说,小于4字节的数据类型,在存储时会转换为4字节,byte类型在保存时会转换为int类型。
当把byte 类型的保存区间之内的整数赋值给byte时,可以直接赋值,超出byte的范围仍然需要强制类型转换。
当把一个int变量赋值给byte时,无论是否超出保存范围,都需要强转。
a和b自动提升为int,所以仍需强转。
解决方法:
被final修饰的变量除了数值不能改,类型也不能提升,final byte a =10;
存储时,仍然是byte类型
3.int和double的转换
数据部分丢失
解决方法
int/double=double/double
大类型转小类型,发生数据丢失
4.int和char的转换
计算机的内部都是0和1,char字符会按照不同的编码规则转为int存储。
大到小要强转:
5.int和String的转换
int->String
1.直接使用String对象+
2.使用String的ValueOf方法
String->int
调用int包装类Integer.parselent()的方法
当字符串包含了非数字时,转换会出错:由于str中包含了非数字,调用方法时就会报错,称为java运行时异常
三.运算符
1.算术运算符(±*/%)
a.相同数据类型进行数学运算,得到的值仍然是本类型
小类型和大类型进行数学运算,先把小类型提升为大类型然后进行运算
b.除法中,0不能作为除数
c.%称为取模运算,求余数,不仅可以用于整数,也可以用于小数
2. 增量赋值运算(+= *= /= %=)
a+=1
a=a+1
b*=2
b=b*2
3.自增和自减运算符
a++:先取a的值,然后进行自增操作
++a:先自增,然后再取值
4.关系运算符(== != < > <= >=)
关系运算符运算之后得到的都是布尔值
5.逻辑运算符(&& || !)
得到的值也是布尔值
&&:逻辑与
||:逻辑或
!:逻辑取反
6.位运算符(了解即可)
直接在二进制位上进行操作的运算符
7.移位运算(了解即可)
a.<<
b.>>
c.>>>
8.条件运算符(唯一一个三目运算符)
表达式1?表达式2:表达式3
当表达式1位true时取表达式2的值,否则取表达式3的值。