02.——运算符、数据类型、进制转换、优先级


 1、关键字:不能用作变量名、方法名、类名、包名和参数
 2、标识符:由数字,字母和下划线(_),美元符号($)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。
 3、数据类型
   b   默认 int  型
   10.0默认 double 型

    基本数据类型:
    数值型:
      整数类型:
  a、byte:1字节 -128~127
  b、short:2字节 -2^15~2^15-1
  c、int:4字节 -2^31~2^31-1
  d、long:8字节 -2^63~2^63-1
      浮点类型:
  e、float:4字节 -3.403E38~3.403E38
  f、double:8字节 -1.798E308~1.798E308
      字符型:
  g、char:2字节 ''

      排序: byte, short, char, int,long,float,double
             布尔型:
  h、boolean:1字节 false true

     引用数据类型:
  i、类
  j、接口
  k、数组
     
 4、基本数据类型的转换规则
  a、容量小的类型自动转换为容量的类型;
  b、容量大的类型转换为容量小的类型时,要加强制转换符;
  c、byte,short,char之间不会互相转换,并且三者在计算时首先转换为int类型;
  d、实数常量默认为double类型, 整数常量默认为int类型;
 5、常量:
  a、接口(Interface)的中变量默认为static final的特性
  b、Java 5.0中引入的Enum类型
  c、static final修饰变量
 6、变量:
  a、成员变量
  b、局部变量

 7、变量命名规范:
  a、Pascal规范
  b、Camel 规范
 8、数据类型转换:
  在4的基础上进行拓展。
  
 9、进制转换:
  int n = 14;
  //十进制转成十六进制:
  Integer.toHexString(n);
  //十进制转成八进制
  Integer.toOctalString(n);
  //十进制转成二进制
  Integer.toBinaryString(12);
   
  //十六进制转成十进制
  Integer.valueOf("FFFF",16).toString();
  //十六进制转成二进制
  Integer.toBinaryString(Integer.valueOf("FFFF",16));
  //十六进制转成八进制
  Integer.toOctalString(Integer.valueOf("FFFF",16));
   
  //八进制转成十进制
  Integer.valueOf("576",8).toString();
  //八进制转成二进制
  Integer.toBinaryString(Integer.valueOf("23",8));
  //八进制转成十六进制
  Integer.toHexString(Integer.valueOf("23",8));

  //二进制转十进制
  Integer.valueOf("0101",2).toString();
  //二进制转八进制
  Integer.toOctalString(Integer.parseInt("0101", 2));
  //二进制转十六进制
  Integer.toHexString(Integer.parseInt("0101", 2));

 10、运算符
  a、算数
   +
   -
   *
   /
   %
  b、赋值
   =
   +=
   -=
   *=
   /=
   %=
   &=
   |=
  c、关系
   <
   >
   <=
   >=
   ==
   !=
  d、逻辑
   &&
   ||
   !
  e、三目
  f、字符串连接
  g、位运算
   & 位都为1,结果才为1,否则结果为0
   | 位只要有一个为1,那么结果就是1,否则就为0
   ^ 两个操作数的位中,相同则结果为0,不同则结果为1
   ~ 如果位为0,结果是1,如果位为1,结果是0
  h、移位
   << 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
   >> "有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.
   >>> "无符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.
   (PS:x<<y 相当于 x*2y ;x>>y相当于x/2y,从计算速度上讲,移位运算要比算术运算快。如果x是负数,那么x>>>3没有什么算术意义,只有逻辑意义。)


 11、表达式的值和类型
  
 12、转义符
  \n 回车(\u000a)
  \t 水平制表符(\u0009)
  \b 空格(\u0008)
  \r 换行(\u000d)
  \f 换页(\u000c)
  \' 单引号(\u0027)
  \" 双引号(\u0022)
  \\ 反斜杠(\u005c)

 13、运算符优先级
  [ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> <> < = > \ == != &^&& || ? := op=

 

代码附后:

1.十进制转二进制 可以转负数

//十进制转二进制 可转负数
	
	public static void main(String[] args) {
		int a = -1;
		int b = 0;          // 存放余数
		int i = 0;         // 计数器
		String result = "";
		boolean temp = a < 0 ? true : false; // 判断是 否为负数,负数为true,整数为false
		
		if (temp) {         // 如果为负数取反+1
			a = Math.abs(a + 1);
		}
		
		while (true) {         // while死循环
			b = a % 2;         // 余数
			i++; // 余数计数			
			if (temp) {        // 如果为负数,则进行取反
				b = b == 0 ? 1 : 0;
			}
			
			result = b + result;  // 字符串链接
			a /= 2; // 商
			if (a == 0) {				
				if (temp) {      // 判断负数,则补1
					for (int m = 0; m < 32 - i; m++) {
						result = "1" + result;
					}
				}
				
				System.out.println(result);
				break;
			}
		}

	}

}

2.数值交换

//交换 a 和  b 的值
		int a = 20;
		int b = 12;
		a = a ^ b;
		b = b ^ a;
		a = a ^ b;
		System.out.println(a);
		System.out.println(b);


 

                
//交换 a 和  b 的值
                a = a + b;
		b = a - b;
		a = a - b;
		System.out.println(a);
		System.out.println(b);



 

你可能感兴趣的:(02.——运算符、数据类型、进制转换、优先级)