JAVA基础知识(二)
一.变量使用注意事项
- 定义变量不能重名。
- 变量赋值才能使用。
- 改变默认类型:long(L)和float(F)。
- 小类型的转大类型强制类型转换可能会导致数据精度丢失。
- byte,short,char已经优化了,可以直接接收,而不用标注类型,但是当有变量参与运算的时候,会被转换成int类型。
二.自动类型转换和强制类型转换
-
代码示列
public static void main(String[] args){
//自动类型转换
double a=10;
byte b=50;
short s=b;
int c=b;
int d=s;
//强制类型转换
int k=(int)88.88;
System.out.println(a);
System.out.println(b);
System.out.println(s);
System.out.println©;
System.out.println(d);
System.out.println(k);
}
运行结果10.0
50
50
50
50
88
三.标识符命名
- 由数字,字母,下划线,美元符组成
- 不能以数字开头
- 不能是关键字
- 尽量使用有意义的英文单词,区分大小写
- 小驼峰命名法:(方法,变量)一个单词的时候,首字母小写,多个单词的时候,第一个单词首字母小写,后面的单词首字母大写。
大驼峰命名法:(类)所有单词的首字母大写
a. 包名全部小写
b. 类名和接口名使用大驼峰命名法
c.常量名所以字母大写,单词之间使用下划线连接
d.变量名和方法名使用小驼峰命名法
四.四则运算
-
代码示列
int a=1; int b=2; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/b); System.out.println(a%b);
运行结果
3
-1
2
0
1
五.字符运算
-
ASCLL表
'A’的值为65,A-Z是连续的
'a’的值为97,a-z是连续的
'0’的值为48,0-9是连续的 -
byte,short,char参与运算就会被提升成int,后面是谁大及被提升成什么类型。
-
代码示列
int a=1; int b=2; //字符的+操作 char c='A';//'A'的值为65,A-Z是连续的 char d='a';//'a'的值为97,a-z是连续的 char e='0';//'0'的值为48,0-9是连续的 System.out.println(a+c); System.out.println(a+d); System.out.println(a+e);
运行结果
66
98
49
六.字符串的运算
- 注意
- 数字在后面的时候会直接做字符串拼接,数字在前面的时候先做数字的+操作。
- 遵循先计算小括号里面的内容,先乘除后加减。
-
代码示列
int a=1; int b=2; System.out.println("it"+"heima"); System.out.println("it"+"heima"+666); System.out.println(666+"it"+"heima"); System.out.println("黑马"+6+666);//数字在后面的时候会直接做字符串拼接 System.out.println("黑马"+(1+99));//先计算小括号里面的内容 System.out.println(1+99+"heima");//数字在前面的时候先做+操作 System.out.println("a和b的值"+a*b);//先乘除后加减 System.out.println("a的值的"+a);
运行结果
itheima
itheima666
666itheima
黑马6666
黑马100
100heima
a和b的值2
a的值的1
七.赋值运算符
-
注意
使用赋值运算符+=可以进行自动的强制类型转换,而普通的四则运算则不行。 -
代码示列
int g=10; System.out.println(g+=5);//g=g+5 System.out.println(g-=5);//g=g-5 System.out.println(g*=5);//g=g*5 System.out.println(g/=5);//g=g/5 System.out.println(g%=5);//g=g%5 //注意:使用赋值运算符+=可以进行自动的强制类型转换 short w=10; w+=20; //w=(short)(w+20); System.out.println(w);
运行结果
15
10
50
10
0
30
八.自增自减运算符
-
++:变量值加一
-
–:变量减一
-
注意
单独使用的时候i++和++i没有任何区别
参与操作混合使用时i++和++i有很大的区别
i++:先使用后++
++i:先++后使用 -
代码示列
//单独使用 int i=8; i++; System.out.println(i); ++i; System.out.println(i); //参与操作混合使用时i++和++i有很大的区别 //int j=i++;//先赋值后++ int j=++i;//先++后赋值 System.out.println(i); System.out.println(j); //++与输出语句混合使用 int h=10; System.out.println(h++); System.out.println(h);
运行结果
9
10
11
11
10
11
九.关系运算符
-
代码示列
int i=10; int b=20; int c=10; Integer f=1; Integer m=1; System.out.println(f.equals(m)); System.out.println(f==m); System.out.println(i==c); System.out.println(i==b); System.out.println(i!=b); System.out.println(i<b); System.out.println(b>c); System.out.println(i<=c); System.out.println(b>=c);
运行结果
true
true
true
false
true
true
true
true
true
十.逻辑运算符和短路运算符
-
基本规律
&中,有false则false,只有全部都是true时,结果才是ture。
|中,有true则true。
^中,相同为false,不同为true。
!中,结果相反。
&&中,有false则false,只有全部都是true时,结果才是ture。&&中只要有false结果就一定是false,后面就不执行了,具有短路效果。
||中,有true则true。||中只要有true结果就一定是true,后面就不执行了,具有短路效果。 -
代码示列
int a=10; int b=20; int c=30; //&中,有false则false,只有全部都是true时,结果才是ture System.out.println(a>b&a>c); System.out.println(a>b&a<c); System.out.println(a<b&a>c); System.out.println(a<b&a<c); System.out.println("--------------------------"); //|有true则true System.out.println(a>b|a>c); System.out.println(a>b|a<c); System.out.println(a<b|a>c); System.out.println(a<b|a<c); System.out.println("--------------------------"); //^相同为false,不同为true System.out.println(a>b^a>c); System.out.println(a>b^a<c); System.out.println(a<b^a>c); System.out.println(a<b^a<c); System.out.println("--------------------------"); //!结果相反 System.out.println(a>b); System.out.println(!(a>b)); System.out.println("------------------------------------------"); //短路运算符 //&&中,有false则false,只有全部都是true时,结果才是ture System.out.println(a>b&&a>c); System.out.println(a>b&&a<c); System.out.println(a<b&&a>c); System.out.println(a<b&&a<c); System.out.println("--------------------------"); //||有true则true System.out.println(a>b||a>c); System.out.println(a>b||a<c); System.out.println(a<b||a>c); System.out.println(a<b||a<c); System.out.println("--------------------------"); //&&和& System.out.println((a++>100)&(b++>100)); //&&中只要有false结果就一定是false,后面就不执行了,具有短路效果 //System.out.println((a++>100)&&(b++>100)); System.out.println("a:"+a); System.out.println("b:"+b);
运行结果
false
false
false
true
--------------------------
false
true
true
true
--------------------------
false
true
true
false
--------------------------
false
true
------------------------------------------
false
false
false
true
--------------------------
false
true
true
true
--------------------------
false
a:11
b:21
十一.三元运算符
-
基本格式
关系表达式?表达式1:表达式2; -
执行流程
首先计算关系表达式的值;
值为true的话,表达式1为运算结果;
值为false的话,表达式2为运算结果; -
代码示列
int a=10; int b=20; int max=a > b ? a : b; System.out.println(max); int w1=180; int w2=200; boolean win=w1==w2?true:false; System.out.println(win); int h1=150; int h2=210; int h3=165; int hhh=(h1>h2?h1:h2)>h3?(h1>h2?h1:h2):h3; int hh=h1>h2?(h1>h3?h1:h3):(h2>h3?h2:h3); System.out.println(hh); System.out.println(hhh);
运行结果
20
false
210
210
十二.数据输入Scanner
-
基本步骤
a.创建对象Scanner sc=new Scanner(System.in);
b.接收数据int x=sc.nextInt();
c.输出数据System.out.println(“x:”+x);
-
代码示列
//创建对象 Scanner sc=new Scanner(System.in); //System.out.print("请输入数据x:"); // //接收数据 //int x=sc.nextInt(); // //输出数据 //System.out.println("x:"+x); System.out.print("请输入第一个和尚的身高:"); int h1=sc.nextInt(); System.out.print("请输入第二个和尚的身高:"); int h2=sc.nextInt(); System.out.print("请输入第三个和尚的身高:"); int h3=sc.nextInt(); int temp=h1>h2?(h1>h3?h1:h3):(h2>h3?h2:h3); System.out.println("最高的和尚改的身高是:"+temp);
运行结果
请输入第一个和尚的身高:169
请输入第二个和尚的身高:176
请输入第三个和尚的身高:182
最高的和尚改的身高是:182