数据类型之间可以自动进行转化。(小类型转化到大类型)
//声明一个byte类型的变量
byte a = 123;
//将byte类型的值a赋值给int类型的变量b
int b = a;
System.out.println(a);
Tips:数据在进行四则运算时,数据类型会自动向大类型靠拢。char>short>int>long>float>double,char类型向int类型靠拢
大类型转化到小类型需要强制转换
//声明一个int类型变量a
int a = 123;
//将变量a存储到byte类型的变量b中。
byte b =(byte) a;
System.out.println(b);
Tips:强制转化会造成数据错误,所以强转有风险,转化需谨慎
在程序运行期间其值不会发生改变的量。
在软件开发过程中,有一些值时不允许被多次赋值的,对于这些值,我们通常用常量来定义它,防止程序运行期间发生改变。
用final修饰的变量就是常量
//定义常量a
final int a = 1;
通过所有单词的所有字母均大写,单词之间用“_”分割来给常量命名。
将=右边的数的值赋给左边的变量存储
int a = 10;//将10这个值赋给int类型的变量a
public class Test{
public static void main(String[] args){
int num = +5;//+号当作正号使用
System.out.println(num);
num = 1+2; //+号当作运加法使用
System.out.println(num);
System.out.println("1+1="+1+1);//+号当作连接符使用
}
}
public class Test{
public static void main(String[] args){
int num = -5;//-号当作负号使用
System.out.println(num);
num = 2-1; //-号当作运减法使用
System.out.println(num);
}
}
public class Test{
public static void main(String[] args){
int num = 15;
num = num*2; //乘法运算
System.out.println(num);
num = num/2; //除法运算
System.out.println(num);
num = num%2; //取余运算
System.out.println(num);
}
}
Tips、他们三个只能进行运算
++:是在原来的基础上自增1
–:是在原来的基础上自减1
当++、–作为一条单独语句时,都是单目运算符,在前和在后没有区别。
++num当不是单独一条语句时,先自增,再运算
num++当不是单独一条语句时,先运算,再自增
–num、num–用法相同。
实际上就是算数运算符和位运算符+赋值运算符的结合体(+=、-=、*=、/=)
public class Test{
public static void main(String[] args){
int num = 15;
num += 1; //相当于num = num +1;
System.out.println(num);
num -= 1;// 相当于num = num-1;
System.out.println(num);
}
}
优缺点
优点:
提高编写效率
提高编译速度
自动强制转化(有时候会出现精度问题)
缺点 :
public class Test{
public static void main(String[] args){
int a = 1;
int b = 1;
System.out.println(a==b); //true
System.out.println(a>b); //flase
System.out.println(a<b); //flase
System.out.println(a!=b); //flase
}
}
逻辑运算符中包括(&、|、!、、&&、||),逻辑运算符左右的操作数只能是boolean类型的值,当&、|、两边的操作数不是boolean类型的值时,他们不是逻辑运算符,而是位运算符。
public class Test{
public static void main(String[] args){
System.out.println(ture&ture); //true
System.out.println(ture&flase); //flase
System.out.println(flase&ture); //flase
System.out.println(flase&flase); //flase
System.out.println(ture|ture); //true
System.out.println(flase|ture); //true
System.out.println(ture|flase); //true
System.out.println(flase|flase); //flase
System.out.println(!ture); //flase
System.out.println(!flase); //true
System.out.println(ture^ture); //flase
System.out.println(ture^flase); //true
System.out.println(flase^ture); //true
System.out.println(flase^flase); //flase
System.out.println(ture&&ture); //true
System.out.println(ture&&flase); //flase
System.out.println(flase&&ture); //flase
System.out.println(flase&&flase); //flase
System.out.println(ture||ture); //true
System.out.println(flase||ture); //true
System.out.println(ture||flase); //true
System.out.println(flase||flase); //flase
}
}
Tips:&&运算时,当左边第一个操作数为flase时,就不会再对第二个操作数进行运算,因为结果一定是flase
Tips:||运算时,当左边第一个操作数为true时,就不会在对第二个操作数进行运算,因为结果一定是true