编码规范和变量

编码规范

你是一个java工程师,你写的代码是一个产品

  1. 可读性:造福自己,造福其他工程师

    1.1 缩进 每进入一个代码块缩进,同一代码块左对齐,一行只写一行代码

    1.2 注释 给人看的,单行注释// ,多行注释/* */ ,多行注释不能嵌套多行注释,多行注释可以嵌套单行注释

    /** */ 这是一个java doc注释 javadoc工具只能把类前面,函数前面,属性前面提出来,代码块内没用,抽取成一个帮助文档,注释量一般不低于代码量,最起码类和函数要加注释

    1.3 标识符命名,有语法规定和约定俗称
    image.png
    image.png

  2. 为什么要有变量名:

    我们存储一个数据时,会把这个数据存储到某个存储空间中,然后有一个四个字节的地址指向这个存储空间,以确保我们可以取到或者访问该存储的值,但是每次都直接记或者操作这个地址过于繁琐,所以我们引入变量名,变量名其实就是变量地址的别名。另外我们System.out.println(a)打印的是a地址指向的储存空间的数据。

  3. 变量需要先赋值后使用,赋值有几种方式,先定义后赋值,或者定义直接赋值。
    image.png

image.png

image.png
image.png

运算符

  1. 算术运算符和赋值运算符就不说了
  2. 关系运算符和逻辑运算符得到的结果是boolean
  3. 位运算符& | ^ 对于负数的二进制值需要按位求反+1 然后再加上符号位负号

几个有意思需要注意的点

  1. int是整数默认的数据类型,另外表达式是有类型的,所以表达式存在类型提升eg:(a+b;a+100000) 表达式的结果都是int类型。其中a,b都是int以下的数据类型。
  2. 表达式是有类型的,整数中a++ / ++a 这种不存在类型提升,因为他等价于a+=1, a的类型就是结果的类型,另外表达式也是有值的,eg:int a = 10; System.out.println(a++) 输出:10,System.out.println(++a)输出11,但a的最终结果都是11,++a比a++少了一个寄存器,所以在运行效率上会略微快一点,但是影响微乎其微。
  3. 编码存在的意义是对应或者说映射,比如我们用char c = 'A';在计算机中我们存储的只能是数字,所以我们需要给‘À’映射一个值,在Ascall编码中A=65,a=97,0->48.乱码出现的原因是存和读用了不同的编码。java 是Unicode编码,被称为万国码,可以表示出所有国家的字符。
  4. short和char虽然都是两个字节,但是short的值不能赋值给char,因为char没有负数,同样的道理 byte, short 和char 是不能互相转换的,因为除了要考虑字节大小还要考虑正负。char 可以直接赋值给int。以上对于强转不适用,强转本身带有很多问题。结果有可能会变。
posted @ 2020-11-15 14:08  一股清流~  阅读(148)  评论(0)    收藏  举报