package javaleaning;
public class basic {
public static void main(String[] args) {
/*String 类型变量
* string不属于基本的数据类型,属于引用数据类型
* 声明String
* 声明变量时要使用“ ”
* String可以和8种数据类型做运算,但是只能是做连接运算+,注意进行连接运算过后的数据类型仍然是String类型
*
*/
String s1 = "hello world";
String s2 = "a";
String s3 = "";
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
/*比较char类型
* *********************************************************************************
*/
char c1 = 'a';
/*
char c2 = '';//区别与string类型的声明,在''当中时是不可以有空缺的
*/
System.out.println(c1);
/*所谓的string就是将char穿起来
*/
//String类型与8种数据类型进行运算******************
String s4 = "钛金手机";
short s5 = 8848;
String s6= s5 + s4;//注意连接运算过后的结果仍然是String类型
System.out.println(s6);
//注意:"\t":转义字符,表示一个tab、'\t'相当于't'其中的\是转义
//算数运算符的使用******************************************************************(一)
int num1 = 12;
int num2 = 7;
System.out.println(num1/num2);
System.out.println(num1/num2*num1);
double result = num1 / num2;
System.out.println(result);
//***********************************************************************************(一)
byte b1=127;
b1++;
System.out.println(b1);//在计算机当中数据的存储都是以二进制的形式(且是补码)进行存储,所以127+1应该是127的补码加上1的补码在计算b1的大小,补码计算,先求反码再加一
/*赋值运算符的应用
* ***********************************************************************************(二)
*/
int j = 1;
j+=7;//+=就是在自己的基础之上在加一,*=;/=类似
System.out.println(j);
double s = 3;
//s+=2与s=s+2的区别
s = (short)(s + 2);//s+=2与s=s+2有区别,s是short型,2是int型,当s+2时,和就变成了整型,此时不能直接将整型赋值给short型
System.out.println(s);
//比较运算的结果为布尔类型**************************************************************(三)
int i = 2;
int j1= 9;
System.out.println(j1>i);//计算的结果为true
/*逻辑运算符仅适用与布尔类型***************************************************************(四)
* &:逻辑与 ; |:逻辑或 ; !:逻辑非 ; ~:取反操作
* &&:短路与 ; ||:短路或 ; ^:异或
* &与&&、|与||结果一致,注意异或:两个相同才是true,否则是false
*/
//区分&\&&
boolean f1 = false;
int f2 = 10;
if (f1 & (f2++ > 0)) { //逻辑与要将前一项与后一项进行比较,要执行后一项
System.out.println("xsl");
}
else {
System.out.println("awsl");
}
System.out.println(f2);
boolean f3 = false;
int f4 = 10;
if (f3 && (f4++ > 0)) { //所谓的短路与就是如果前一个是false那么就不用看后面的,直接往下一项执行,也就是说&&后的内容将不会被执行
System.out.println("xsl");
}
else {
System.out.println("awsl");
}
System.out.println(f4);
/*位运算符********************************************************************************(五)
<< 左移,右移几位就乘以2的几次幂
>> 右移,左移几位就除以2的几次幂
>>> 无符号右移
& 与,按位与
| 或
~ 取反
^ 异或
*/
int q1 = 27;
int q3 = 7;
double q2 = 12.3;
System.out.println("q1 << 2:" + (q1 << 2));//*2*2
System.out.println("q1 >> 2:" + (q1 >> 2));// /2/2
System.out.println("q3 << 27:" + (q3 << 2));
System.out.println("q1 & q3:"+(q1 & q3));
/*27: 0 1 1 0 1 1
* 7: 0 0 0 1 1 1
* &: 0 0 0 0 1 1
* 结果:3
*/
//System.out.println("q2 >> 2:" + (q2 >> 2));报错,位移运算只能针对整型数据
/*结论
* 位运算符操作的都是整型数据
* 两数异或的结果去异或其中一个数必然会得到另一个数
*/
//三元运算符 (表达式1)?(表达式2):(表达式3)*************************************************(六)
String z1 = "我们可以生存";
String z2 = "我们不可以生存";
int x1 = 1;
int x2 = 2;
int c11 = (x1 > x2)?(x1=99):(x2=90);
System.out.println(c11);
}
}