java基本语法(运算符)
如果是对负数取模,可以把模数符号忽略不计, 如:5%-2 = 1
对于/,整数除和小数除是有区别的,整数之间作除法,保留整数去除余数
+除了字符串相加功能外,还能把非字符串转换成字符串
System.out.println("5+5="+5+5); //5+5=55
System.out.println('*' + '\t' +'*'); //93
System.out.println("*" + '\t' +'*'); //* *
public class TestApp {
@Test
public void test() {
int i1 = 10,
i2 = 20;
int i = i1++;
System.out.print("i="+i); //i=10
System.out.println("i="+i1); //i=11
i = ++i1;
System.out.print("i="+i); //i=12
System.out.println("i="+i1); //i=12
i = i2--;
System.out.print("i="+i); //i=20
System.out.println("i="+i2); //i=19
i = --i2;
System.out.print("i="+i); //i=18
System.out.println("i="+i2);//i=18
}
}
赋值运算符:
当两侧数据不一致的时候,可以使用自动类型进行类型转化
public class TestApp {
@Test
public void test() {
boolean b1 = false;
// 区分好==和=的区别。
if (b1 = true)
System.out.println("结果为真");
else
System.out.println("结果为假");
}
}
结果为真
public class TestApp {
@Test
public void test() {
int i = 1;
i *= 0.1;
System.out.println(i);//0
i++;
System.out.println(i);//1
}
}
@Test
public void test() {
short s = 3;
s=s+2; //编译服务通过
s+=2; //编译成功
}
比较运算符
逻辑运算符
逻辑运算符用于连接布尔型的表达式
&和&&的区别:
&,无论真假,两边都要进行运算
&&,左边为假,不在进行右边的运算
^(异或)与(|)的差异:两边都为true的时候,结果为false
@Test
public void test() {
int x = 1;
int y=1;
if(x++==2 & ++y==2){
x =7;
}
System.out.println("x="+x+",y="+y); //x=2,y=2
x = 1;
y = 1;
if(x++==2 && ++y==2){
x =7;
}
System.out.println("x="+x+",y="+y); //x=2,y=1
x = 1;
y = 1;
if(x++==1 | ++y==1){
x =7;
}
System.out.println("x="+x+",y="+y); //x=7,y=2
x = 1;
y = 1;
if(x++==1 || ++y==1){
x =7;
}
System.out.println("x="+x+",y="+y); //x=7,y=1
}
位运算符
public static void main(String[] args){
int m = 12;
int n = 5;
System.out.println("m:" + m + " n:" + n);
//方法一:提供一个临时变量。
//int temp = m;
// m = n;
// n = temp;
//System.out.println("m:" + m + " n:" + n);
//方法二:当m和n较大时,有可能出现精度损失
//m = m + n;//m = 12 + 5;
//n = m - n;//n = 17 - 5;
//m = m - n;//m = 17- 12
//System.out.println("m:" + m + " n:" + n);
//方法三:优点:没有上面两种方法的缺点。 缺点:难!
m = m ^ n;
n = m ^ n;//(m ^ n) ^ n == m
m = m ^ n;//(m ^ n) ^ m == n
System.out.println("m:" + m + " n:" + n);
}
public static void main(String[] args){
//问题:
//60 手动的方式,从控制台输出60的十六进制。
int i = 61;
//自动调用Integer类现成的方法
String binary = Integer.toBinaryString(i);
System.out.println(binary);
String hex = Integer.toHexString(i);
System.out.println(hex);
/*
char c = 'a';
char c1 = (char)(c + 2);
System.out.println(c1);//c
*/
int j = i & 15;//获取到i的最低4位对应的值。
String k1 = (j <= 9)? j + "" : (char)(j - 10 + 'a') + "";
//System.out.println(k1);
i = i >> 4;
int z = i & 15;
String k2 = (z <= 9)? z + "" : (char)(z - 10 + 'a') + "";
System.out.println(k2 + k1);
}