数据类型和运算符 java

来源:互联网 发布:lamp一键安装包ubuntu 编辑:程序博客网 时间:2024/06/05 09:56
#注释
 ##单行注释
   在Java语言中,将双斜线(//)放在需要注释的内容之前就可以了
##多行注释
   在Java语言中,使用/*和*/ 将程序中需要注释的内容包括起来,/* 代表注释开始,*/ 代表注释结束
##文档注释
   文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线(*/)结束,中间部分全部都是文档注释,会被提到API文档中
#标识符就是给变量、类、方法命名的符号,标识符规则
   1.标识符可以由字母、数字、下划线_ 和美元符号$组成,其中不能以数字开头
   2.标识符不能是Java关键字和保留字,但可以包含关键字和保留字
   3.标识符不能包含空格
   4.标识符只能包含美元符$,不能包含@、#等其它特殊字符
   5.Java语言区分大小写,所以abc和Abc是两个不同的标识符
#Java关键字
   定义:Java语言中有一些具有特殊用途的单词被称为关键字(keyword),当定义标识符时,不要让标识符和关键字一样,否则会报错
Java中一共包含50个关键字
abstractcontinuefornewswitchassertdefaultifpackagesynchronizedbooleandogotoprivatethisbreakdoubleimplementsprotectedthrowbyteelseimportpublicthrowscaseenuminstanceofreturntransientcatchextendsintshorttrycharfinalinterfacestaticvoidclassfinallylongstrictfpvolatileconstfloatnativesuperwhile
   goto和const这两个关键字也被称作保留字,保留字的意思是,Java现在还未使用这两个关键字,但是可能在未来的Java版本中使用,另外Java还提供了三个特殊的直接量:true、false、null;Java语言的标识符也不能使用这三个特殊的直接量
#数据类型分类
##基本类型
###boolean类型
      只能用true 或者false表示
###数值类型
####整数类型
        byte:一个byte类型整数在内存里占8位,表示的数据范围是-128~127
        short:一个short类型整数在内存中占16位,表示的数据范围是:-32768~32767
        int:一个int类型整数在内存里占32位,表示的数据范围是:-2147483648~2147483647
        long:一个long类型的整数在内存里占64位,表示的数据范围是:-2^63~2^63-1
####字符型
        字符型值有如下这三种表示形式。
         --直接通过单个字符来指定字符型值,例如'A'、'9'等
         --通过转义字符表示特殊字符型值,例如'\n', '\r'
         --直接使用Unicode值来表示字符型值,格式是'\uXXXX', 其中XXXX代表一个十六进制的整数
####浮点类型
        float、double
##引用类型
     类、接口、数组类型、null

提示:
  所有数字在计算机底层都是以二进制形式存在的,原码是直接将一个数值换算成二进制数,但计算机以补码的形式保存所有的整数。补码的计算规则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,只是最高位(符号位)保持不变


Java语言中常用的转义字符
转义字符说明Unicode表示方式\b退格符\u0008\n换行符\u000a\r回车符\u000d\t制表符\u0009\"双引号\u0022\'单引号\u0027\\反斜线\u005c
#基本类型的类型转换
##自动类型转换
    当把一个表示范围小的数值或者变量直接赋值给另一个表示数值的范围大的变量时,系统将可以进行自动类型转换
  1. int a = 6;
  2. float f = a; //此时f为6.0
  3. //下面的代码将报错,byte类型不能自动类型转换为char类型
  4. byte b = 9;
  5. char c = b;
##强制类型转换
    如果想要将表示范围大的数值或者变量赋值给另一个表示数值的范围小的变量时,则必须进行强制类型转换,强制类型转换的语法规则是:(targetType)value,强类型转换容易引起数据溢出,造成数据丢失
  1. int iValue = 233;
  2. //强制把一个int类型的值转换为byte类型的值
  3. byte bValue = (byte)iValue;//会造成数据溢出,bValue的值为-23
  下面是上述代码的溢出过程:

误区:
  1. //5.6默认的是double类型,必须强转才行
  2. float f = 5.6
  3. float f = (float)5.6;
##表达式类型的自动提升
   当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升,Java定义了如下的自动提升规则:
   --所有的byte类型、short类型和char类型将被提升到int类型
   --整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。

#运算符
##算术运算符
##赋值运算符
##位运算符
    --&:按位与。当两位同时为1时才返回1
    --|:按位或。只要有一位为1即可返回1
    --~:按位非。单目运算符,将操作数的每个位(包括符号位)全部取反。
    --^:按位异或。当两位相同时返回0,不同时返回1
    --<<:左移运算符
    -->>:右移运算符
    -->>>:无符号右移运算符
  一般来说,位运算符只能操作整数类型的变量或值
##扩展后的赋值运算符
    -- +=:对于x += y, 及对应于 x = x + y。
    -- -=
    -- *=
    -- /=
    -- %=
    -- &=  对于x &= y,及对应于x = x & y。
    -- |=
    -- ^=
    -- <<=:对应于x <<= y , 对应于 x = x << y
    -- >>=
    -- >>>=
  1. byte a = 5;
  2. //下面的语句出错,因为5默认是int类型,a + 5 就是int类型
  3. //把int类型赋值给byte类型的变量,所以出错
  4. //a = a + 5;
  5. //但是下面的语句不会出错
  6. b += 5;
##比较运算符
##逻辑运算符
   逻辑运算符用于操作两个布尔型的变量或者常量,逻辑运算符主要有如下6个:
   --&&:与,前后两个操作数必须都是true才返回true,否则返回false
   --&:不短路与,作用与&&相同。但不会短路
   --||:或,只要两个操作数中有一个是true,就可以返回true
   --|:不短路或,作用与||相同。但不会短路
   --!:非,只需要一个操作数,如果操作数为true,则返回false;如果操作数为false,则返回true
   --^:异或,当两个操作数不同时才返回true,相同时则返回false
##三目运算符
##运算符的结合性和优先级
 
0 0
原创粉丝点击