码迷,mamicode.com
首页 > 编程语言 > 详细

java之学习笔记-day1-欢迎大家来更正!

时间:2017-08-31 19:05:41      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:交换   运算   print   运算符   java   数据类型   等价   逻辑运算   使用   

常量的分类:
1):字面值常量(本身就是不变的)
2):自定义常量

进制转换:
1):其他进制转到十进制:
每一位上的系数*基数(x机制的基数就是x)^权次幂相加(从右边开始编号,从0开始,每一位就是该位数上的权值)
二进制100 十进制:4
100 =1*2^2+0*2^1+0*2^0
=4+0+0
=4

数据类型:
1):在定义Long或者Float类型变量的时候,要加L或者F
整数默认是int类型,浮点数默认是double.

byte,short在定义的时候,他们接受的是一个int类型的值.
这个是自己做了一个数据监测的,如果不在他们的范围内,就报错.

面试题:
1):short s = 1;
s = s + 1;

short s = 1;
s+=1;

上述两个代码时候有问题,如果有,为什么?
解答:第一个有问题,类似于+=,-=这种扩展运算符,其实隐藏了一个强制类型转换.如s+=1不等价于:s = s+1;而是等价于s = (s的数据类型)(s+1);


逻辑运算符:
^:逻辑异或:相同则为false,不同则为true;


位运算(了解):
要做位运算,首先要把数据转换为二进制.
面试题:
交换两个变量的值:
int a = 10;
int b = 20;
1):使用第三方变量
2):用位异或实现:
左边:a,b,a
右边:a ^ b
a = a ^ b;
b = a ^ b;
a = a ^ b;
3):变量相加的方法:
a = a + b;
b = a - b;
a = a - b;
4):一句话搞定:
b = (a + b) - (a = b);
// b = 30 - 20 = 10,a = 20;

<<:左移 左边最高位丢弃,右边补齐0;
System.out.println(3 << 2);
把左边的数据*2的移动次幂
3*2^2 = 12;
>>:右移:最高位是0,左边补齐0,最高位是1,左边补齐1
System.out.println(24 >> 2);
把左边的数据/2的移动次幂
24/2^2 = 6
>>>:无符号右移,无论最高位是0还是1,左边补齐0

java之学习笔记-day1-欢迎大家来更正!

标签:交换   运算   print   运算符   java   数据类型   等价   逻辑运算   使用   

原文地址:http://www.cnblogs.com/zb1715734811/p/7459484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!