数据类型转换、运算符、方法
1.数据类型转换
Java
程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
1.1自动类型转换
自动转换
:将
取值范围小的类型
自动提升为
取值范围大的类型
。
public class Demo1{
public static
void
main
(
String
[]
args
) {
int
i
=
1
;
byte
b
=
2
;
// byte x = b + i; //
报错
//int
类型和
byte
类型运算,结果是
int
类型
int
j
=
b
+
i
;
System
.
out
.
println
(
j
);
}
}
byte 类型内存占有1个字节,在和 int 类型运算时会提升为 int 类型 ,自动补充3个字节,因此计算后的结果还是 int
转换规则:范围小的类型向范围大的类型转换,byte、short、char运算时直接向int转换。
从小到大:byte--short--int--long--float--double
1.2强制类型转换
范围大的类型向范围小的类型转换
转换格式:数据类型 变量名 =(数据类型)转换值
注意:1.浮点数向整数转换时,直接去掉小数点以后,可能会造成精度损失
2.int 强制转成 short 砍掉2个字节,可能造成数据丢失。
2.ASCll编码表
编码表 :就是将人类的文字和一个十进制数进行对应起来组成一张表格。
常用:0--48、9--57、A--65、Z--90、a--97、z--122
3.运算符
+
加法运算,字符串连接运算
-
减法运算
*
乘法运算
/
除法运算
%
取模运算,两个数字相除取余数
++
、
--
自增自减运算
++
运算,变量自己增长
1
。反之,
--
运算,变量自己减少
1
,用法与
++
一致。
独立运算:
变量在独立运算时,
前
++
和
后
++
没有区别 。
变量
前
++
:例如
++i
。
变量
后
++
:例如
i++
。
混合运算:
和其他变量放在一起,
前
++
和
后
++
就产生了不同。
变量
前
++
:变量
a
自己加
1
,将加
1
后的结果赋值给
b
,也就是说
a
先计算。
a
和
b
的结果都是
2
。
public static
void
main
(
String
[]
args
) {
int
a
=
1
;
int
b
= ++
a
;
System
.
out
.
println
(
a
);
//
计算结果是
2
System
.
out
.
println
(
b
);
//
计算结果是
2
}
变量
后
++
:变量
a
先把自己的值
1
,赋值给变量
b
,此时变量
b
的值就是
1
,变量
a
自己再加
1
。
a
的结果是
2
,
b
的结果是
1
。
public static
void
main
(
String
[]
args
) {
int
a
=
1
;
int
b
=
a
++
;
System
.
out
.
println
(
a
);
//
计算结果是
2
System
.
out
.
println
(
b
);
//
计算结果是
1
}
+
符号在字符串中的操作:
+
符号在遇到字符串的时候,表示
连接、拼接
的含义。
"a"+"b"
的结果是
“ab”
,连接含义
public static
void
main
(
String
[]
args
){
System
.
out
.
println
(
"5+5="
+
5
+
5
);
//
输出
5+5=55
}
赋值运算符
赋值运算符包括:
=
等于号
+=
加等于
-
=
减等于
*=
乘等于
/=
除等于
%=
取模等
赋值运算符,就是将符号右边的值,赋给左边的变量。
public static
void
main
(
String
[]
args
){
int
i
=
5
;
i
+=
5
;
//
计算方式
i=i+5
变量
i
先加
5
,再赋值变量
i
System
.
out
.
println
(
i
);
//
输出结果是
10
}
比较运算符
比较运算符包括:
==
比较符号两边数据是否相等,相等结果是
true
。
<
比较符号左边的数据是否小于右边的数据,如果小于结果是
true
。
>
比较符号左边的数据是否大于右边的数据,如果大于结果是
true
。
<=
比较符号左边的数据是否小于或者等于右边的数据,如果小于结果是
true
。
>=
比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是
true
。
!
=
不等于符号 ,如果符号两边的数据不相等,结果是
true
。
比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值
true
或者
false
。
public static
void
main
(
String
[]
args
) {
System
.
out
.
println
(
1
==
1
);
//true
System
.
out
.
println
(
1
<
2
);
//true
System
.
out
.
println
(
3
>
4
);
//false
System
.
out
.
println
(
3
<=
4
);
//true
System
.
out
.
println
(
3
>=
4
);
//false
System
.
out
.
println
(
3
!=
4
);
//true
}
逻辑运算符
逻辑运算符包括:
&&
短路与
1.
两边都是
true
,结果是
true
2.
一边是
false
,结果是
false
短路特点:符号左边是
false
,右边不再运算
||
短路或
1.
两边都是
false
,结果是
false
2.
一边是
true
,结果是
true
短路特点: 符号左边是
true
,右边不再运算
!
取反
1. ! true
结果是
false
2. ! false
结果是
true
逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值
true
或者 false
public static
void
main
(
String
[]
args
) {
System
.
out
.
println
(
true
&&
true
);
//true
System
.
out
.
println
(
true
&&
false
);
//false
System
.
out
.
println
(
false
&&
true
);
//false
,右边不计算
System
.
out
.
println
(
false
||
false
);
//falase
System
.
out
.
println
(
false
||
true
);
//true
System
.
out
.
println
(
true
||
false
);
//true
,右边不计算
System
.
out
.
println
(
!
false
);
//true
}
三元运算符
三元运算符格式:
三元运算符计算方式:
布尔类型表达式结果是
true
,三元运算符整体结果为结果
1
,赋值给变量。
布尔类型表达式结果是
false
,三元运算符整体结果为结果
2
,赋值给变量。
public static
void
main
(
String
[]
args
) {
int
i
=
(
1
==
2
?
100
:
200
);
System
.
out
.
println
(
i
);
//200
int
j
=
(
3
<=
4
?
500
:
600
);
System
.
out
.
println
(
j
);
//500
}
方法
方法:
就是将一个
功能
抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。
当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。
方法格式:
修饰符 返回值类型 方法名 (参数列表){
代码
...
return
;
}
定义格式解释:
修饰符: 目前固定写法
public static
。
返回值类型: 目前固定写法
void
,其他返回值类型在后面的课程讲解。
方法名:为我们定义的方法起名,满足标识符的规范,用来调用方法。
参数列表: 目前无参数, 带有参数的方法在后面的课程讲解。
return
:方法结束。因为返回值类型是
void
,方法大括号内的
return
可以不写。
方法的调用
方法在定义完毕后,方法不会自己运行,必须被调用才能执行,我们可以在主方法
main
中来调用我们自己定义好的方法。在
主方法中,直接写要调用的方法名字就可以调用了。
练习:
public class Method{
public static void main(String[] args){
Method1();
}
public static void Method1(){
int a = 0;
a =(1==2?100:200);
System.out.println(a);
int b = 0;
b =(3<=4?300:400);
System.out.println(b);
}
}
public static void main(String[] args){
Method1();
}
public static void Method1(){
int a = 0;
a =(1==2?100:200);
System.out.println(a);
int b = 0;
b =(3<=4?300:400);
System.out.println(b);
}
}
方法定义注意事项:
方法必须定义在一类中方法外
方法不能定义在另一个方法的里面
JShell
脚本工具
JShell
脚本工具是
JDK9
的新特性
什么时候会用到
JShell
工具呢,当我们编写的代码非常少的时候,而又不愿意编写类,
main
方法,也不愿意去编译和运
行,这个时候可以使用
JShell
工具。
启动
JShell
工具,在
DOS
命令行直接输入
JShell
命令。