一、注释

 (1)单行注释 //
        快捷键Ctrl+"/"或Crtl+"7"
    (2)多行注释  /*  */
        快捷键:写:Ctrl+Shift+"/"
              取:Ctrl+Shift+"\"
    (3)文档注释 /**   */javadoc可以提取文档注释来生成API,      API为java类提供的使用说明书
                        eclipse,androidstudio可以在编辑界面时实时显示各成员的文档注释

                        文档注释只放在类、成员变量、方法、构造器、内部类才有意义
                         javadoc默认只提取public和protected成员之前的文档注释,
         生成文档注释
          javadoc -d<目录>源文件:-d指定将生成的API文档放到指定位置         

二、标识符规则

Java是严格区分大小写的。

      - 只能由于字母(包括中文字符)、数字、下划线、$组成,其中数字不能开头。

      - 标识符不能是Java的关键字或保留字。

          不能包含空格

           只能包含$,不能包含@、#等特殊

三、数据类型分类

1、Java语言是“强类型”的语言:

      - 所有变量,必须先声明(声明时就必须指定类型)、后使用。

      -  指定类型的变量,只能装相应类型的值。

2、数据类型分为基本类型、引用类型                

              ↗整型(byte、short、int、long)                

              ↗ 浮点型(float、double)  

     基本类型 → 字符型(char)

              ↘  布尔型(boolean) 只有2个值: true、 false

    引用类型:类、接口、数组类型      

整型

     byte(1个字节(byte)=8个位(bit))

           8个bit表示2的8次方种状态。 因此一个bit只能表示256个数。

           byte的取值范围: -128~0~127

     short(2个字节(byte)=16个位(bit))

            16个bit表示2的16次方种状态。能表示65536个数。

            short的取值范围: -32768~0~32767        

     int  (4个字节(byte)=32个位(bit))

              int的取值范围: 负的2的31次方~0~2的31次方-1

     long (8个字节(byte)=64个位(bit))

              long的取值范围: 负的2的63次方~0~2的63次方-1       

     1. 当我们直接给出一个整数值时,它默认是int型, 系统绝不会把它当成long处理。

      2. 当我们直接给出一个在指定取值范围内的整数时,系统也可把它当成byte、short使用。

      3. 如果你系统把一个整数当成long使用,应该在整数后添加 l 或L。

long a=1234567890L(末尾加“L”、“l”),否则默认为int型;

      10进制值。  默认。

      16进制      Ox或0X开头  0~9、a、b~f(15)

      8进制       O开头    0~7

      2进制       b或B开头 0~1

浮点型:

      float :4个字节,32位。

      double:8个字符,64位。

      - 当你直接给出一个带小数的数值时,它默认是double型。 

              如果希望当成float使用,应该在数值后添加f或F。

   注:long a=1234567890L(末尾加“L”、“l”),否则默认为int型;
       float b=2.3f(末尾加“F”、“f”),否则默认为double型;

      - 浮点数支持2种形式:

           -给出带小数的数。

           -科学计数法。 2.11133E3  

      - 浮点型有3个特殊值:

          正无穷大  Infinty    正数除以0,得到无穷大。

           ● 所有正无穷大都相等。

          负无穷大  -Infinity  负数除以0,得到无穷大。

           ● 所有负无穷大都相等。

          非数  NaN :       0 除以0, 对负数开方等。

           非数与任何数都不相等,包括它自己!

   *可以在数值中任意添加下划线(_)作为分隔符。

字符型

      char

      字符型占2个字节,16位, 65536种状态。

       - 字符型也可以当成无符号整型(0~65535)(每个字符都有编号)用。

       - 字符型的值,应该用单引号引起来。 (双引号引起来的是字符串)。

       - 字符型有3种形式:

          A。 '字符'

          B。 转义字符(是字符就要加单引号‘ ’):\ddd:1-3为8进制数据所表示的字符,如\123
                                              \uxxxx:4位16进制数据所表示的字符,如\u0052
                                              \':单引号字符
                                              \\:反斜杠字符
                                              \t:垂直制表符,将光标移到下一个制表符的位置
                                              \r:回车
                                              \n:换行
                                              \b:退格
                                              \f:换页

          C。 直接用字符的Unicode编号。

布尔型

      boolean

      它只有两个值: true、 false。

四、类型转换

  • (1)自动转换按从低到高的顺序转换。支持范围小的数值直接付给范围大的,
  • 不同类型数据间的优先关系如下:
        低--------------------------------------------->高
        byte,short,char-> int -> long -> float -> double
    (2)强制转换:-float a=(float)5.6     double转float   直接转换
  •                            -int i=Interger.parseInt(a)    字符转int 字符串不能直接转换
  •                                对应的包装类:boolean——Boolean       byte——Byte
  •                                                         short——Short                 int——Integer
  •                                                           long——Long                 char——Character
  •                                                          float——Float                   double——Double
  •                                                这8个包装类都提供了parseXxx(String str)用于将字符串转换为基本类型 
  • (3)表达式类型的自动提升【自动类型提升的一种】:一个表达式包含多个基本类型时,整个表达式的数据类型被自动提升到最高等级操作数的数据类型             
  • 有的数据经过转型运算后,精度会丢失,而有的会更加精确

五、直接量

 直接量,就是在源代码中直接给出的值。

      int: 20、   0x12 、 12、012

      long: 1L、 23L

      float: 2.4f

      double  2.3 3e2

      char:  '1' 、'\u2331'

      boolean: true 、false

      String: "helloworld"

六、运算符

  (1)赋值运算符(=)
     例:int a=3;(将3赋给a)
         int b=a+c;(将a+c的和赋给b)
         x=y=z=5;(将5的值赋给x、y、z,不建议使用)
  (2)算术运算符(+(加)、-(减)、*(乘)、/(除)、%(取余))
     例:12.45f*15=27.45;
         45-30=15;
         5*3=15;
         6/2=3;
         12%10=2;
  (3)自增、自减运算符(++、--):操作员必须是一个整型或浮点型变量
     例:假设a=5;以自增为例。
         b=++a;//此时a先加1,再赋值给b,所以b=6;
         b=a++;//此时a直接赋给b,之后加1,所以b=5;
  (4)比较运算符(大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、不等于(!=))
     例:4>5,结果为false.
         4!=5,结果为true.
     注:结果为布尔值

  (5)逻辑运算符(与(&&、&)、或(||)、非(!))
     与:同真为真
     或:一真为真
     注:1)结果都为布尔值(flase、true)
         2)短路运算符(&&):第一个为假,就不再判断第二个。
            非短路运算符(&):第一个为假,依然判断第二个,相比之下更浪费时间。
  (6)三元运算符(条件式?值1:值2):等价于if.....else语句
     例:int y=a>b?x+1:x-1;
        含义:如果a>b成立,y=x+1;否则y=x-1;

(7)位运算符

  •        & : 按位与 ——当上下两位都是1,计算结果才是1.
             | : 按位或 ——当上下两位都是0,计算结果才是0;只要有任何一个是1,结果就是1。
             ^ : 按位异或——当上下两位不同,计算结果才是1.
             ~ : 按位取反(按位非)。直接取反——只要一个运算数即可。
             >>: 右移,右边移出去的位,将会被直接“砍掉”, 左边空出来的位补符号位。
                   右移N位,相当于除以2的N次方
             <<: 左移,右边空出来的位就会添加0;
                   左移N位,相当于乘以2的N次方            
             >>>:无符号右移,右边移出去的位,将会被直接“砍掉”,左边空出来的位总是补0。
                   移出来的结果总是正数。