您的位置:首页 > 编程语言 > Java开发

Java基础语法<一> 数据类型&运算符

2017-07-11 21:55 495 查看
笔记整理 来源于《Java核心技术卷 I 》 《Java编程思想》

1 数据类型

1.1 整型

类型存储需求取值范围
int4字节-21 4748 3648 – 21 4748 3647 232
short2字节-32768-32767 216
long8字节-9223372036854775808 – 9223372036854775807 264
byte1字节-128-127 28

1.2 浮点类型

类型存储需求取值范围
float4字节大约±3.402 823 47E + 38F(有效位数6-7位)
double8字节大约±1.797 693 134 862 315 70E + 308(有效位数15位)

1.3 char类型

char类型用于表示单个字符。

1.4 boolean类型

true false

2 常量

用final修饰
多次使用 public static final

3 运算符

3.1 位运算符

3.1.1 & 与运算

  相同位的两个数字都为1,则为1;若有一个不为1,则为0。
00101&11100 = 00100
  判断奇偶性
(n & 1) == 1;

3.1.2 |或

  相同位只要一个为1即为1。
  00101 | 11100 = 11101

3.1.3 ^异或

相同位不同则为1,相同则为0。
00101 ^11100 = 11001
  应用:
  不用临时变量交换两个数(面试常考)
  a ^= b;
  b ^= a;
  a ^= b;
  a = 00101 b = 11100
  a = a^b = 00101 ^ 11100 = 11001
  b = b^a = 11100 ^ 11001 = 00101
  a = a^b = 11001 ^ 00101 = 11100

3.1.4 ~非

运算的定义是把内存中的0和1全部取反

3.1.5 左移 <<

a << b就表示把a转为二进制后左移b位(在后面添b个0)
例如100的二进制为1100100,而110010000转成十进制是400,
那么100 << 2 = 400。
a << 1 表示乘以2
a << m 表示a乘以2的m次方
2的n次方 2 << (n-1)

3.1.6 带符号右移 >>

a >> b表示二进制右移b位(去掉末b位),相当于a除以2的b次方(取整)。
a >> 1 表示除以2
  a >> m 表示a除以2的m次方
  取绝对值:(n ^ (n >> 31)) - (n >> 31);
  取两个数最大值:b & ((a-b) >> 31) | a & (~(a-b) >> 31);
  取两个数最小值:a & ((a-b) >> 31) | b & (~(a-b) >> 31);
  判断符号是否相同:(x ^ y) >= 0
  判断一个数是不是2的幂:n > 0 ? (n & (n - 1)) == 0 : false;
  求两个整数的平均值:(x + y) >> 1;

3.1.7 无符号右移 >>>

用0填充高位

应用:
  计算n+1 :-~n
  计算n-1:~-n
  取相反数:~n + 1;
  另一种写法: (n ^ -1) + 1;
  if(x == a) x = b; if(x == b) x = a;
  x = a ^ b ^ x;
  sign函数,参数为n,当n>0时候返回1,n<0时返回-1,n=0时返回return !!n - (((unsigned)n >> 31) << 1);

3.2 数学函数

  平方根 Math.sqrt(x)
  X的a次幂Math.pow(x,a)
  三角函数
    Math.sin
    Math.cos
    Math.tan
    Math.atan
    Math.atan2
  指数函数以及反函数
    Math.exp
    Math.log
    Math.log10
   表示π和e常量近似值
    Math.PI
    Math.E

3.3 数值类型之间的转换

  


  6个实心箭头无信息丢失,3个虚箭头,表示可能有精度损失

3.4 运算符级别

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: