黑马程序员——高新技术---Java基础语法-数据类型和运算符

来源:互联网 发布:考务管理系统软件java 编辑:程序博客网 时间:2024/04/29 15:32

                      -----------android培训java培训、java学习型技术博客、期待与您交流!------------ 

一:数据类型的转换:包括强制转换和隐式转换(这个要除去boolean类型) 

隐式转换是窄类型转换成宽类型,这个是安全的。

1byte short char在表达式中会自动提升为int类型。

2:在表达式中,由最高类型,其他类型都会自动提升到这个类型。

强制转换是宽类型转换为窄类型,但是这样可能会丢失精度。

面试题:

byteb1 = 4;(其实这个里面是隐式转换。)

byteb2 = 6

byte b3 = b1 + b2//编译错误

byte b4 = b1 +12//编译错误 (这个在运算过程中会自动转换成int类型计算)

byte b5 = 10 + 22//这个是ok

还有要注意的是浮点数和long类型。

byte v1 = 3;

short v2 = 4;

int v3 =5;

long v4 = 6;

这个四个要进行运算的话要用long类型接收。

float v5 =12.0f;

如果这五个要运算的话,必须得用float接收。

虽然float类型只占4个字节,long8个字节,但是浮点类型数据所能表示的范围要大于整型数据范围。所以必须要用float类型接收。

 

:字符和字符串运算:

字符串运算一般都是字符串的链接运算,对于表达式中如果有算是运算和字符串运算,一般都是从左往右,进行到字符串运算的时候都是链接运算。

三:算术运算符

+ - * / % ++ --

简单的注意事项自己知道就行。

不过要注意的是整数除0运行时会报异常

浮点除0,这个不会报异常,会打印Infinity(无穷大)

整数%0,运行也是报异常。

浮点%0是打印 NaN

++  -- 自增自减运算符这个自己要注意是先自增(减)还是先取值。

四:赋值运算符

=+=-=*=/=%=

这里要注意的是这些运算符都是带强制转换的。

byteb1 = 10

b1 =b1 +10;这个编译错误。(上面提过)

b1 += 10;(这个带强制转换)Ok的。

 

:关系运算符

==!=><>=<=

这里其实就要注意关系运算符就是会产生一个boolean类型的值。

六:逻辑运算符

 &&  || 

按位与按位或 &  |

逻辑&&/||按位&/|区别:逻辑&&/||具有短路行为;但是他们的结果还是一样的。

七:位运算符

<< >>>>> &|^左移右移无符号右移异或取反  这里要注意的是,位运算符进行运算,不改变原来的值,会产生一个新的值,原值不会改变。

八:三元运算符

这个只要平时自己看清就行,要注意式子的整体结构分析就好。

九:Scanner键盘录入

(前面要导包)这个只要知道

接收intint a = sc.nextInt();

接收字符串类型 String s = sc.next();

 

变量交换的方法:

A:中间变量的方法

B:利用异或^的方法(三次异或运算)

 

Int x =10;

Int y = 20;

X = x^y;

Y =x^y;

x = x ^y;

C:加法方式

 a = a + b;

 b = ab;

 a = ab;

D: 一句话搞定

a = (a+b) - (b=a)


0 0