java基础—运算符


一.标识符
在程序中自定义的一些名称
由26个英文字母,数字0-9,两个符号:_(下划线)及$(美元符号)组成
定义合法标识符的规则:数字不可开头;不可以使用关键字
Java中严格区分大小写。
注意:在起名字时,为了提高阅读性,要尽量有意义。


二.常量与变量
1.常量表示不能改变的数组
2.Java中常量分类
(1)整数常量。所用整数
(2)小数常量。所有小数
(3)布尔型常量。较为特有,只有两个数值 true false
(4)字符常量,将一个数字字母或者符号用单引号标识
(5)字符串常量。将一个或者多个字符用双引号标识
(6)null常量。只有一个数值就是null
3.对于整数:java有三种表现形式
(1)十进制:0-9,满10进1
(2)八进制:0-7,满8进1,用0开头表示
(3)十六进制,0-9,A-F,满16进1,用0x表示。


每个字节(byte):由8个开关组成,也就是八个二进制位
 8个二进制位代表一个字节
八进制是二进制的3位代表1位
十六进制是二进制的4位代表1位
进制越大,表现形式越短。
1KB=1024B;   1MB=1024KB;     1GB=1024MB
负数的二进制表现形式
6=110
-6:其实就是6的二进制取反+1
取反:将二进制的1变成0,0变成1
 0000-0000  0000-0000  0000-0000  0000-0110
  1111-1111  1111-1111   1111-1111  1111-1001
 + 0000-0000  0000-0000  0000-0000  0000-0001
   1111-1111  1111-1111   1111-1111  1111-1010=-6
负数的最高位都是1

变量
变量:就是将不确定的数据进行存储。也就是需要在内存中开辟一个空间。
如何开辟内存空间呢?
就是通过明确数据类型,变量名称,数据来完成的
数据类型  变量名= 初始化值  (int x = 4)


三.算术运算符
//算术运算符
//+ -  * / %(取模):其实就是取余数  5%2=1  10%4=2 5%5=0
//1%-5=1   -1%5=-1(如果是负数只看左边,不看右边)
// 5%1=0  1%5=1  2%5=2(规律:左边如果小于右边,结果就是左边)
//++(自增)  --(自减)
//+:字符串连接符
//字符串和任何数据使用+,都是相连接,最终都会变成字符串
/*class Demo
{
	public static void main(String[] args)
	{
	int a = 3,b;
	 b = a++;//(先赋值,后自增(自增就是加1))
     b = ++a;先自增,
 b = ++a;先自增,后赋值
	 System.out.println(b);//b=3
	System.out.println(a);//a=4
	}
}*/
class Demo
{
	public static void main(String[] args)
	{
	int a = 4, b;
	    b = a--; //先赋值,后自减
	b = --a;  // 先自减,后赋值
   // System.out.println(b);//b=4
	//System.out.println(a);//a=3
	System.out.println("a="+a+",b="+b);
	}
}

四.转义字符

class Demo
{
	public static void main(String[] args)
	{
	System.out.print("hello world");//加上ln就是换行的意思
	转义字符:通过\来转变后面字母或者符号的意义
	\n:就是换行
	\b:退格
	\r:按下回车键  window系统中,回车符是由两个字符来表示\r\n
	\t:制表符 相当于tab键
	System.out.println("hello \njava");
	System.out.println("\"hello world\"");//打印带有双引号的"hello world"
	System.out.println("\\hello\\")//打印带有双引号的\hello world\
	char ch = '你';//一个汉字两个字节也就是16个二进制位
	//字符型也是16个二进制位
	System.out.println(ch);
	}
}


五.赋值和比较运算符
//赋值和比较运算符
class Demo
{
	public static void main(String[] args)
	{
	int x =4;把右边的值赋给左边
	//+=  -=   *=   /=    %=
	x+=4;//相当于x=x+4;把左右两边的和赋给赋给左边
	short s = 4;
	//s = s+5;这句话编译失败(两次运算)
	s+=5;//这句话编译成功(一次运算)
	int a,b,c;
	a=b=c=3;
//比较运算符
//==(等等于)  !=(不等于)
//>    <       >=    <=
//  instanceof   是......类型
//比较运算符的结果都是boolean型,要么是true,要么是false
    }
}


六.逻辑运算符
//逻辑运算符
//&(与)  |(或)
//^(异或)  !(非)
//&&(短路)||(短路)
int x = 4;
		//逻辑运算符用于连接boolean类型的表达式
		x>3 & x<6 
与
true & true = true
true & false = false
false & true = false
false & false = false

//只要两边的boolean表达式,有一个为false,
//那么结果就是false
//只有两边都为true,结果为true

|和||的特点
1.两边都参与运算
2.当左边为true,右边不运算
或
true | true = true;
true | false = true;
false | true = true;
false | false = false;
//只要两边的boolean表达式,有一个为true,
//那么结果就是true
//只有两边都为false,结果为false
异或^:就是和或有点不一样,当 true ^ true = false;
true ^ true = false;
true ^ false = true;
false ^ true = true;
false ^ false = false;
两边相同,结果为 false
两边不同,结果为 true
int a =2;
	a>3 && a<6;
&和&&的特点
1.无论左边是true 还是false,右边都运算
2.当左边为false时,右边不运算


七.位运算符
位运算符
>>(右移)  << (左移) >>>(无符号右移)
&(与运算)|(或运算) ^(异或运算) ~(反码)
(位运算符是直接对二进制进行运算)
3<<2=12;     3<<1=6;   3<<3=24
3*4=12       3*2=6     3*8=24

6>>2=1;     6>>1=3;
6/4=1       6/2=3;

<<:左移其实就是乘以2的移动的位数次幂
>>:右移其实就是除以2的移动的位数次幂


>>:最高位补什么由原有数据的最高位值而定
    如果最高位是0,右移后,用0补空位
    如果最高位是1,右移后,用1补空位

>>>:无论最高位是什么,右移后,都用0补

&         |           ^
6&3=2     6|5=7       6^5=3
  110      110        110
 &011     |101        101
  010=2    111=7      011=3
//0为假,1为真
~(反码)
~6=-7(就是6的取反-1再取反,加上负号)
一个数异或同一个数两次,结果还是那个数。


八.位运算符练习
//1.最有效率方式算出2*8等于几?  2<<3
//2.对两个整数变量的值进行互换

class Demo
{
	public static void main(String[] args)
	{
	int n = 3, m = 8;
	//通过第三方变量
//	int x = n;
//	n = m;
//	m = x;

//不通过第三方变量
	//n = n+m;//如果n ,m的值非常大
	//m = n-m; //  容易超出 int 范围
   // n = n-m;
   n =  n^m;
   m =  n^m;//(n^m)^m
   n =  n^m;//n^(n^m)
	System.out.println("n="+n+",m="+m);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值