今天主要学了java语法部分的运算符相关内容,想将java的运算用法以及使用的注意事项与C语言的运算符作对比,区分。
今天其实还解了一个单调栈的问题,终于弄明白了。(明天打算整理一下单调栈和单调队列,今天就是先写一下java的学习情况)
java数据类型
先说一下基本数据类型:byte,short,int,long,float,double,boolean
以下都是在使用数据类型创建变量或者使用变量要注意的地方,总结一下:
1.byte占一个字节,boolean一般没有规定占多少字节
2.boolean的变量,只能是true或是false。和C语言不一样。
3.在赋值的时候,其他数据类型的数据是没办法和boolean类型的数据相互赋值的。
4.在赋值的时候,存在隐形转化。
在赋值的时候,内存大的数据类型的数据如果赋值给内存相比之下要小的数据类型的数据,会报错。如果使用强制类型转换也可能会出现数据丢失,这是不安全的。
例子如下:
可以看到在a和b相加时,a会被自动提升为long类型,而最后赋值给int类型的c,类型不匹配就会帮错。
当强制类型转换后,才可完成赋值操作。
5.+=,-=,/=,*= 这些运算符都可以辅助自动完成强制类型转换,不用再自己使用强制类型
6.java中还有一个神奇的点就是,拥有字符串类型(String)。并且可以 ‘+’ 这个运算符,让数据之间连接。(不是字符串类型的数据,在与字符串连接后也会生成字符串)
需要注意的是,只有当直接与字符串+时,才会生成字符串(下面通过例子解释)
java运算符:
java的运算符使用和C语言都大差不差,要注意的就是移位运算符中,java有一个>>>,叫做无符号右移,即不管数原来是正数还是负数,左边都补0