定义变量的时候,须要给变量赋予一个初值html
自动类型转换:小范围类型能够转换为大范围类型的值,大框子能够装下小框子编程
强制类型转换:大范围类型没法转换为小范围的值,由于小框子装不下大框子,除非强塞工具
强制类型转换:小范围类型名 变量名 = (小范围类型名)大范围类型的值;开发工具
public class demo2{测试 public static void main(String[] args) {spa int a = 10 ;htm long b = 20L ;blog long c = 20 ; //不报错,自动进行类型转换ci double d = 1.234 ;开发 //float e = 1.234 ; 报错,float转换为int可能损失精度 float f = 1.234f ; char g = 'g' ; boolean h = true ; //boolean i; 报错,值未初始化 System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); System.out.println(f); System.out.println(g); System.out.println(h); } } |
自动类型转换:小范围类型能够转换为大范围类型的值,大框子能够装下小框子
强制类型转换:大范围类型没法转换为小范围的值,由于小框子装不下大框子,除非强塞
强制类型转换:小范围类型名 变量名 = (小范围类型名)大范围类型的值;
public class demo5{ public static void main(String[] args) { byte a = -128 ; byte b = 127 ; //byte c = a-1 ; 报错,可能损失精度 byte d = (byte)(a-1); //强制类型转换 System.out.println(a-1); //不会溢出,此时将byte自动转为int System.out.println(b+1); //不会溢出,此时将byte自动转为int //System.out.println(c); 错误: 不兼容的类型: 从int转换到byte可能会有损失 System.out.println(d); //进行强制转换后,输出为127,发生了溢出现象,最小值-1=最大值,最大值+1=最小值 } } |
说明:byte、short、char 之间不会相互转换,若是想要进行操做,则须要把他们先转换为 int类型,而后再执行操做。
public class demo9{ public static void main(String[] args) { byte a = 1 ; short b = 10 ; int c = 100 ; /* char i = a ; 错误: 不兼容的类型: 从byte转换到char可能会有损失 char j = b ; 错误: 不兼容的类型: 从short转换到char可能会有损失 char k = c ; 错误: 不兼容的类型: 从int转换到char可能会有损失 */ char i =(char) a ; char j =(char) b ; char k =(char) c ; System.out.println(i); //输出乱码 System.out.println(j); //输出乱码 System.out.println(k); //输出d } } |
在计算机中,整数能够有 4 种表示方式,分别是十进制、十六进制数、八进制数、二进制数。
public class demo11{ public static void main(String[] args) { int a = 20 ; //十进制 int b = 0x89 ; //十六进制:表示形式0X或0x开头,0-9 A-F int c = 012 ; //八进制:表示形式0开头,0-7 int d = 0b1010 ; //二进制:表示形式0b或0B开头,0或1 System.out.println("十进制:"+a); //输出 十进制:20 System.out.println("十六进制:"+b); //输出 十六进制:137 System.out.println("八进制:"+c); //输出 八进制:10 System.out.println("二进制:"+d); //输出 二进制:10 } } //输出的结果都显示为十进制的数 |
关于整数除法的问题
public class demo15{ public static void main(String[] args) { int a = 20 ; int b = 8 ; System.out.println(a/b); //输出2 a和b都是int类型,因此a/b也是int类型 System.out.println((float)a/b); //输出2.5 a是float,b是int类型,因此a/b自动转换为float类型 System.out.println(a/(float)b); //输出2.5 b是float,a是int类型,因此a/b自动转换为float类型 } } |
转义字符
\r |
归位 |
\b |
倒退一格 |
\f |
换页 |
\’ |
‘ |
\n |
换行 |
\t |
一个制表符 |
\\ |
\ |
\” |
“ |
转义字符的类型是字符类型
public class demo18{ public static void main(String[] args) { char a = '\n' ; //换行 char b = '\t' ; //tab制表符 char c = '\r' ; //归位,表示接受键盘输入,至关于摁下了回车键 char d = '\b' ; //退一格 System.out.println("HELLO"+a+"world"); //HELLO换行world System.out.println("HELLO"+b+"world"); //HELLO world System.out.println("HELLO WORLD"+c+"ABC"); //ABCLO WORLD (把HEL换为ABC) System.out.println("HELLO WORLD"+d+"ABC"); //HELLO WORLABC (把D删除) System.out.println("武汉加油,中国加油"); //武汉加油,中国加油 System.out.println("武汉加油,\"中国\"加油"); //武汉加油,"中国"加油 } } |
+ |
正 |
|
- |
负 |
Int a=1; 打印-a,输出-1 |
! |
否认取反 |
Boolean b=true; 打印!b,输出false |
+ |
加法 |
int a = -10 ; int b = 3 ; int c = 10 ; int d = -3 ; System.out.println("结果为"+(a/b)); //-3 System.out.println("结果为"+(a*b)); //-30 System.out.println("结果为"+(a%b)); //-1 System.out.println("结果为"+(c%d)); //1 System.out.println("结果为"+(a%d)); //-1 |
- |
减法 |
|
* |
乘法 |
|
/ |
除法 |
|
% |
取余 |
>/< |
|
返回结果为boolean类型 |
>=/<= |
|
|
== |
判断是否等于 |
|
!= |
不等于 |
x++ |
先运算后自加 |
int a = 10 ; int b = 20 ; int x = (a++) + (--b) ; System.out.println("x为"+x); //29 System.out.println("a为"+a); //11 System.out.println("b为"+b); //19 |
x-- |
先运算后自减 |
|
++x |
先自加后运算 |
|
--x |
先自减后运算 |
与:要求全部条件都进行判断; 短路与:若是第一个条件为false,则后面的条件再也不判断
或:要求全部条件都进行判断; 短路或:若是第一个条件为true,则后面的条件再也不判断
& |
与 |
int a = 10 ; int b = 20 ; boolean x = (a > b) ; boolean y = (a < b) ; System.out.println(x & y); //false System.out.println(x | y); //true System.out.println(x && y); //false System.out.println(x || y); //true |
&& |
短路与 |
|
| |
或 |
|
|| |
短路或 |
()表明优先级最优先的运算
表达式? 成立时的结果: 不成立时的结果
int a = 10 ; int b = 20 ; int x = a>b?a:b; System.out.println(x); //20 |
& |
按位与:都为1,则取1,不然为0 |
| |
按位或:都为0,则取0,不然为1 |
^ |
异或:相同为0,不然为1 |
~ |
取反 |
x<<2 |
左位移:将x的二进制数总体左移指定的位数2,空位用0填充 |
x>>2 |
右位移:将x的二进制数总体左移指定的位数2,正数用0填充,负数用1填充 |
>>> |
无符号右位移:一概用 0 填充 |
位运算符都是须要转换为二进制后才能进行运算
public class demo25{ public static void main(String[] args) { int a = 3 ; //00000000 00000000 00000011 int b = 6 ; //00000000 00000000 00000110 System.out.println(a & b); //2
// 00000000 00000000 00000011 // 00000000 00000000 00000110 // ----------------------------------- // 00000000 00000000 00000010
System.out.println(a | b); //7
// 00000000 00000000 00000011 // 00000000 00000000 00000110 // ---------------------------------- // 00000000 00000000 00000111
System.out.println(a ^ b); //5
// 00000000 00000000 00000011 // 00000000 00000000 00000110 // ---------------------------------- // 00000000 00000000 00000101 } } |
位移
public class demo26{ public static void main(String[] args) { int a = 3 ; //00000000 00000000 00000011 System.out.println(a<<2); //12 /* 00000000 00000000 00000011 00000000 00000000 0000001100 */ System.out.println(a>>2); //0 /* 00000000 00000000 00000011 0000000000 00000000 00000011 */ System.out.println(a>>>2); //0 /* 00000000 00000000 00000011 0000000000 00000000 00000011 */ } } |
~取反和负数的二进制表示
public class demo27{ public static void main(String[] args) { int a = 3 ; //00000000 00000000 00000011 int b = -3 ; //10000000 00000000 00000011 3的二进制把符号位变为1 //10000000 00000000 00000011 原码 //11111111 11111111 11111100 反码 //11111111 11111111 11111101 补码 -3的二进制表示 //00000000 00000000 00000010 ~b二进制表示 System.out.println(~a); //-4 System.out.println(~b); //2 } } |
表达式一般由多个运算符组成。优先级的规则决定每一个运算符在任何给定表达式中的计算顺序
按操做数多少划分:一元操做符 → 二元操做符 → 三元操做符
按运算类型划分:算术运算符→关系运算符→逻辑运算符→赋值运算符
尽可能多的使用括号:括号优先级别最高
运算符 |
范例 |
至关于 |
备注 |
+= |
a+=b |
a=a+b |
short a = 3 ; a+=1; //a = a + 1; 错误: 不兼容的类型: 从int转换到short可能会有损失 System.out.println(a); //输出4 //说明:此处的a+=1,等价于a = (short)(a+1) |
-= |
a-=b |
a=a-b |
|
*= |
a*=b |
a=a*b |
|
/= |
a/=b |
a=a/b |
|
%= |
a%=b |
a=a%b |
在 JDK1.9 之后,提供了一个交互式的开发工具——JShell。利用此工具能够方便的执行程序。JSheel通常用于测试,开发阶段不使用此工具
进入JSheel的两种方法:直接在dos窗口中输入jsheel 或 在运行中输入JSheel
能够在DOS窗口中,能够直接执行文件的代码,使用指令:/open i:/01.txt
顺序语句:程序至上而下执行,一条语句执行完毕后再执行下一条,一直执行到程序末尾
选择语句:判断语句,根据条件来选择到底执行哪一个语句
循环语句:根据条件来判断执行的次数
If语句语法格式1:
If(判断条件){ 语句; } |
判断语句能够是一个boolean值,也能够是一个表达式(结果也必须是boolean值) |
public class demo30{ public static void main(String[] args) { int a = 3 ; if (a>10){ System.out.println(a); } System.out.println("a<10"); } } |
If语句语法格式2:
If(判断条件){ 成立时的语句; } Else{ 不成立时的语句; } |
public class demo31{ public static void main(String[] args) { int a = 3 ; if (a%2==1){ System.out.println("奇数"); } else{ System.out.println("偶数"); } } } |
System.out.println((a%2==1)?"奇数":"偶数"); 以上if语句等同于此三目运算符 |
If语句中的花括号能够省略,可是不建议省略
做者:kerwin-chyl
文章连接:https:////www.cnblogs.com/kerwin-chyl
本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利