常量 :

C语言中:使用const定义常量Java中,使用final定义常量,可以不在定义的同时进行初始化,但一旦被初始化就不能修改值Final不仅可以修饰变量,还能修饰类等。

常量: 运行期间不可以被改变
变量: 运行期间可以改变

字面值常量:

10 // int 字面值常量(十进制) 
010 // int 字面值常量(八进制) 由数字 0 开头. 010 也就是十进制的 8 
0x10 // int 字面值常量(十六进制) 由数字 0x 开头. 0x10 也就是十进制的 16 
10L // long 字面值常量. 也可以写作 10l (小写的L) 
1.0 // double 字面值常量. 也可以写作 1.0d 或者 1.0D 
1.5e2 // double 字面值常量. 科学计数法表示. 相当于 1.5 * 10^2 
1.0f // float 字面值常量, 也可以写作 1.0F 
true // boolen 字面值常量, 同样的还有 false 
'a' // char 字面值常量, 单引号中只能有一个字符
"abc" // String 字面值常量, 双引号中可以有多个字符.
变量转化:

Int a=10;
Long b=12l;
Double c=12.5;
b=a;//小类型——>大类型(隐式类型转换)
a=b;//大类型给小类型

强制类型转化:

int a=10;
long b=12L;
a=(int)b;//大类型给小类型,(强转目标类型)但布尔类型不能强转为int、short等数据类型 

short S1=10;
char C1=S1;//报错,字符大小一样但类型不同
char C1=(char)S1;//强制类型转化,可以通过  

int a=10;
long b=12L;//a先提升为long类型然后进行运算
int c=(int)(a+b);
long d=a+b;//小类型提成为大类型,然后直接运算,不用考虑强转 
 
byte a=10;
byte b=20;
byte c=a+b;//byte c=(byte)(10+20);//在a和b相加之前,会先将a和b进行整型提升,由于cpu是以4个字节为单位,进行内存的读写,不够四个字节的类型,系统会自行提升。
system.out.println(c);

数据类型默认值:
整型:byte、short、int、long(默认为0)
布尔:boolean(默认为false)

运算符:

基本运算符: + - * / %
/:除数为0时,java会报出运算异常。
(异常可以帮助程序更快找到逻辑错误)

处理异常:
异常:运行时异常(当运行时报错)、编译时异常(当编译时报错)、自定义异常()
通常使用try{} catch{}处理异常
当程序出现异常时,程序会立刻中止且报错,不会向下

%:在Java中可以对小数进行取余(C语言只能对整型取余)

自增自减运算符:++ - -
++(- -)x:前置加加(减减)
x++(- -):后置加加(减减)

  1. 如果不取自增自减运算的表达式的返回值,则前置和后置没有区别(java中建议使用后置++)
  2. 如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值.

关系运算符:== >= <= != < >
以上返回值为boolean类型

system.out.println(5<a<20);//直接报错,5<a 返回值为true,true<20(布尔类型与整型无法比较)无法判断

逻辑与:&&
表达式1&&表达式2 //表达式1和2必须是布尔类型的表达式,
返回值为ture/false(布尔类型)短路与

逻辑或:||
表达式1||表达式2//表达式1和2必须是布尔类型的表达式,返回值为true/false(布尔类型)短路或

逻辑非:!
!表达式(操作数) //操作数必须是布尔类型(true/false)
短路求值:
( 10>20 && 10/0 == 0)//false
( 10<20 || 10/0 == 0)//true

运行&和|(&按位与和|按位或 ,不建议运行)当左右的表达式(操作数)为布尔类型时,也表示逻辑运算,但不支持短路

位运算:& | ~ ^
&(按位与)
|(按位或)
~(按位取反)
^(按位异或)
以0开头的是八进制
以0X开头的是十六进制

移位运算:

<<:  左移(左移相当于乘法)
>>:右移(右移相当于除法)看符号位 1补1  0补0
>>> : 无符号右移(不看符号位,直接补0)//-1>>>1:  1111 1111>>>1  : 01111111

条件运算符(java中唯一一个三目运算符):表达式1?表达式2:表达式3
返回值为布尔类型

逻辑控制:

顺序结构: 按照代码一行一行执行
分支结构:
If(表达式)//表达式必须为boolean表达式
Swich语句:
不能做swich参数的类型:long、double、float、boolean(C语言只有double和float不可以)
可以做参数的类型:整数(不包含long)、字符串和字符、枚举类型可以作为参数

循化结构:
基本循环语句:
While(true)//java中只能这样写死循环
{
}
break:结束当前循环层,进入外层循环或者跳出循环Continue:结束当前循环的本次循环,进入下一次循环。