/*
java中的八种基础数据类型
整型: byte , short, int, long
浮点数: float , double
字符 : char (两字节)
布尔: boolean
字符串: String
声明变量的方式:
方式1: 数据类型 变量名 = 数据
方式2: 数据类型 变量名1, 变量名2.。。;
*/
public static void main( String[] args ){
/*
+ ( 正数, 加法, 字符串连接符 )
连接符的作用: 让任何的数据都可以与字符串进行拼接.
如果+号用于字符串的时候,那么+号就是一个连接符,并不是做加法功能了;
连接符要注意: 任何类型的数据与字符串使用连接符,那么结果都是字符串类型的数据。
算术运算符: + - * / %
*/
/*
一 算数运算
*/
int i1 = 1;
int i2 = 2;
System.out.println( i1 + " world" );
System.out.println( 1+2+3 + "world"+ 1+ 2+ 3 ); //运算从左到右
double a = 12.0;
int b = 3;
System.out.println(10/3); //int/int,结果是int, 所以结果是3
System.out.println( a / b );
//java中取模运算中,结果的正负号取决于被除数
System.out.println( 10%3 ); // 10 = 3*3 + 1
System.out.println( -10 % 3); // - 10 = 3*(-3)-1
System.out.println( 10 %(-3) ); // 10 = (-3)*(-3) +1
System.out.println( -10 %(-3) ); // -10 = (-3)*(3) -1
/*
二
++, --
前自增: 先自增,后使用
后自增: 先使用,后自增 --> 实际上为 int temp = a; a++; return temp;
所以 int a =0; a = a++;
过程为 int a = 0; int temp = a; a++; a = temp; 所以最后的结果为0;
当然,--也是同样的原理;
*/
/*
三 赋值运算符 +=, *=, -=,^= ...
四 比较运算符 == != > >= < <=
== 用于比较两个基础数据类型数据的时候,比较的是两个变量所存储的值是否一致;
== 用于比较两个引用类型变量的数据时候,比较的是两个引用类型变量所记录的内存地址是否一致;
其实也是比较的引用变量中存储的值,不过由于是对象,而会对该值进行间接引用;
*/
/*
五 逻辑运算符
&&,||具有段路原则,即只要表达式的true,false被确定,那么表达式不再继续执行;
&& 短路与 ,
|| 短路或 ,
! 非,
由于boolean其实只有1bit有值, 所以当左右两边都是boolean操作数时,&,!能起到逻辑运算符的作用;
& , | , ^
对于^的运用: 数据加密,特征,异或同一个数两次的数据,会被还原;
*/
int aa = 3;
int bb = 5;
aa = aa + bb;
bb = aa - bb;
aa= aa - bb;
System.out.println(aa + ":" + bb);
aa = aa ^ bb;
bb = aa ^ bb;
aa = aa ^ bb;
System.out.println(aa + ":" + bb);
/*
位运算: & | ^ ~ << >> >>>
& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 算数右移 3 << 1 相当于 110 --> 6
>> 算数左移动 -3 >> 1 ---> -1
>>> 无符号移动 3 >>> 1 1 (不考虑最高位符号位,直接补0)
*/
/*
三目运算符 ?=
使用三目运算符的时候,一定要使用表达式返回的结果;
*/