关于Java语言基础知识,需要掌握类型转换知识 运算符的使用 如何调用Java写好的一些程序。
一,类型转换
1.自动类型转换
在开发过程中会出现不同类型变量赋值给其他类型变量的情况,自动类型转换是类型范围小的变量,可以直接复制给类型范围大的变量。
如:byte➡short➡int➡long➡float➡double 注意char是直接赋值给int的。如下的理解:
public class TypeDemo {
public static void main(String[] args) {
//目标:理解自动类型转换
byte a =18;
int b =a; //自动类型转换
System.out.println(b); //输出18
int c = 78;
double d = c; //自动类型转换
System.out.println(d); //输出78.0
char e = 'a';
int f =e ; //自动类型转换
System.out.println(f); //输出97
}
}
2.表达式的自动类型转换
在表达式中小范围的变量自动转化成当前较大范围的类型再运算
byte,short,char➡int➡long➡float➡double
注意:•表达式的最终结果类型由表达式中的最高结果类型决定
•在表达式中,byte,short,char 是直接转换成 int 类型参与运算的
如下理解:
public class TypeDemo2 {
public static void main(String[] args) {
//目标:理解表达式中自动转换类型的规则
byte a = 12;
int b = 32;
double c = 2.8;
// int d = a+b+c; //报错
double d = a+b+c; //表达式的最终结果类型由表达式中的最高类型决定
System.out.println(d); //输出46.8
short e = 34;
short f = 13;
// short w =e+f; //报错
int w= e+f;
System.out.println(w);
}
}
3.强制类型转换
强制类型转换是强行的将类型范围大的变量的数据赋值给类型范围小的变量
公式:数据类型 变量 =(数据类型)变量
注意:※可能会出现数据丢失
※小数强制转换成整型是直接保留整数
如下解释:
public class TypeDemo3 {
public static void main(String[] args) {
//目标:理解强制转换并使用
int a = 20;
// byte b =a; //类型范围大的数据或变量,不能直接赋值给类型范围小的变量
byte b = (byte) a;
System.out.println(b); //输出20
int i = 1500;
byte j =(byte)i;
System.out.println(j); //输出-36 //出现数据丢失
double score =99.9;
int sc =(int) score;
System.out.println(sc); //输出99 //小数强制转换成整数直接保留整数
}
}
二,运算符
1.基本算数运算符+ - * / %
重点理解% 取余如3%2 =1
如下:
public class OpertDemo1
{
public static void main(String[] args) {
//掌握基本的运算符+ - * / %
int a =100;
int b =3;
System.out.println(a+b); //103
System.out.println(a-b); //97
System.out.println(a*b); //300
System.out.println(a/b); //33
System.out.println(a%b); //1
}
}
案例:.数据拆分
如一个数678,如何分别输出它的各位,十位,百位 此时就要熟练运用/ %
package opert;
public class OpertDemo1
{
public static void main(String[] args) {
//掌握数据拆分
int date = 678;
//1.输出各位
int gewei =date %10;
System.out.println(gewei); //输出8
//2.输出十位
int shiwei = date/10%10;
System.out.println(shiwei);//输出7
//3.输出百位
int baiwei = date /100;
System.out.println(baiwei); //输出6 注意不要把符号写成% 输出78
}
}
2.+符号做连接符
"+"符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串
•能算则算,不能算则直接连在一起输出
package opert;
public class OpertDemo1
{
public static void main(String[] args) {
//掌握+符号的识别 原则:能算就算,不能算就连在一起输出 //'a'为97
int a =5;
System.out.println("abc" +'a'); //abcd
System.out.println("abc" +a); //abc5
System.out.println(5 +a); //10
System.out.println("abc" +5 +'a'); //abc5a
System.out.println( 12 +"abc" +15); //12abc15
System.out.println(a +'a'); //102
System.out.println(a +"" +'a'); //5a
System.out.println(a+'a' + "fcbx"); //102fcbx
System.out.println("fcbx" +a +'a'); //fcbx5a
System.out.println( "fcbx" +( a +'a')); //fcbx102
}
}
3.自增自减运算符
++ 自加,变量自身加一
-- 自减, 变量自身减一
注意:++ 与-- 可以放在变量前面,也可以放在变量后面
++ --只能操作变量,不能操作字面量
自加,自减运算符如果单独使用时放前后没有区别,但是如果单独使用,
在变量前,先进行变量自增/自减,在使用变量
在变量后,先进行使用变量,在进行变量的自增/自减
如下理解:
package opert;
public class OpertDemo1
{
public static void main(String[] args) {
//目标:学会使用自增自减运算符 ++ --
int a =10;
a++; //a=a+1
// ++a; //a=a+1
System.out.println(a); //11
int b=12;
b--; //b=b+1
//--b
System.out.println(b); //11
//目标:掌握 在表达式或不是单独使用的情况下, ++ --在变量前后的区别
//1. ++ --在变量前,先+1 -1,再使用
int m =12;
int n =++m;
System.out.println(m); //shuchu 13
System.out.println(n); //shuchhu13
//2. ++ --在变量后,先使用,再+1 -1
int i =10;
int j =i++;
System.out.println(i); //11
System.out.println(j); //10
}
}
4.赋值运算符
基本赋值运算符: =
扩展赋值运算符:
+= 加后赋值 a+=b (a=a+b
-= 减后赋值 a-=b (a=a-b
以此类推,*= /= %=
注意:扩展的赋值运算符隐含了强制类型转换,以a的数据类型为准
5.关系运算符:是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)
== a==b 判断a和b是否相等 (成立输出true,不成立输出false)
!= a!=b判断a和b是否不相等 (成立输出true,不成立输出false)
以此类推, < <= > >=
注意:在做相等判断时,不要把==写成 =
6.逻辑运算符:可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。
& 逻辑与 条件必须都是true,结果才是true;否则结果是false
| 逻辑或 只要一个条件为true,结果就是true
! 逻辑非 你假我真,你真我假。 !true=false !false=true
^ 逻辑异或 如果两个条件都是false或true则结果是false,两个条件不同是true
如下:
package opert;
public class OpertDemo1
{
public static void main(String[] args) {
//目标:学会使用逻辑运算符,并能够选择合适的逻辑运算符解决问题
int age =24;
double height =178;
//需求1:年龄大于等于18,且身高大于等于168
System.out.println(age>=18&height>=168); //true
//需求2.年龄大于等于18,或身高大于等于180
System.out.println(age>=18| height>=180); //true
System.out.println(!true); //false
System.out.println(!false); //true
//逻辑异或,必须两个结果不同才是true
System.out.println(false^false); //false
System.out.println(true^false); //true
}
}
短路逻辑运算符
&& 短路与 结果判断与&一样,过程左边是false,右边不执行
|| 短路或 结果判断与|一样,过程是左边为true,右边不执行
注意:&,| 无论左边是false还是true,右边都执行
如下:
package opert;
public class OpertDemo1
{
public static void main(String[] args) {
int a=10;
int b=20;
System.out.println(a>100 && ++b>10); //false
System.out.println(b); //输出20
System.out.println(a>100 & ++b>10); //false
System.out.println(b); //21
System.out.println(a>2||++b>20); //true
System.out.println(b); //21
System.out.println(a>2|++b>20); //true
System.out.println(b); //22
}
}
7.三元运算符介绍
●格式:条件表达式? 值1 : 值2
●执行流程:首先计算关系表达式的值,如果值为true,返回值1;如果值为false,返回值2
具体操作如下:
public static void main(String[] args) {
//目标:学会使用三元运算符,理解其流程
double score=99.9;
String rs =score>=60? "考试通过" :"挂科";
System.out.println(rs); //考试通过
//需求:从两个整数中输出其中较大的
int a =10;
int b=1000;
int MAX = a>b? a:b;
System.out.println(MAX); //1000