Java基础语法<一> 数据类型&运算符
2017-07-11 21:55
495 查看
笔记整理 来源于《Java核心技术卷 I 》 《Java编程思想》
多次使用 public static final
00101&11100 = 00100
判断奇偶性
(n & 1) == 1;
00101 | 11100 = 11101
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
例如100的二进制为1100100,而110010000转成十进制是400,
那么100 << 2 = 400。
a << 1 表示乘以2
a << m 表示a乘以2的m次方
2的n次方 2 << (n-1)
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;
应用:
计算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);
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
6个实心箭头无信息丢失,3个虚箭头,表示可能有精度损失
1 数据类型
1.1 整型
类型 | 存储需求 | 取值范围 |
int | 4字节 | -21 4748 3648 – 21 4748 3647 232 |
short | 2字节 | -32768-32767 216 |
long | 8字节 | -9223372036854775808 – 9223372036854775807 264 |
byte | 1字节 | -128-127 28 |
1.2 浮点类型
类型 | 存储需求 | 取值范围 |
float | 4字节 | 大约±3.402 823 47E + 38F(有效位数6-7位) |
double | 8字节 | 大约±1.797 693 134 862 315 70E + 308(有效位数15位) |
1.3 char类型
char类型用于表示单个字符。1.4 boolean类型
true false2 常量
用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 运算符级别
相关文章推荐
- Java基础语法(一)<注释,关键字,常量,变量,数据类型,标识符,数据类型转换>
- 黑马程序员 Java基础<二>--->数据类型,数组,switch语句
- 黑马程序员——java基础知识篇——>标识符、关键字、常量、进制表示、数据类型、运算符等
- 黑马程序员 Java基础<一> 关键字、常量变量、数据类型
- Java基础<二>--->关键字、数据类型、运算
- JAVA基础二(java中的注释、ava编程语法基础、java数据类型、数据类型的转换、变量、运算符、分支语句、循环语句)
- 黑马程序员_Java语法及面向对象基础<一>
- java基础<一>
- 黑马程序员——Java基础语法(一)—关键字、标识符、数据类型、运算符
- java基础语法要点<一>(基于1.8)
- oracle的使用<一>支持的数据类型
- java 从零开始,学习笔记之基础入门<数据类型的转换>(五)
- 黑马程序员--------------java基础语法(—)------常量,变量,数据类型和运算符
- HTML5学习<一>----HTNL5的基础语法
- _java基础<一>_Java开发前奏
- 黑马程序员 java基础<一>--其它对象System、Runtime(1)
- Java笔记1 Java编程基础<1>标示符、变量、个别运算符
- 黑马程序员--SQL Server基础<一>新建数据库、主键、数据类型
- Java基础--集合框架<一>