`
lijuanabc
  • 浏览: 120421 次
社区版块
存档分类
最新评论

Java编程基础

阅读更多

摘要:

  1、关键字  2、标识符  3、注释  4、常量和变量  5、运算符  6、语句  7、函数  8、数组

  ①  标识符定义规则与规范

  ②  整数常量进制表示

       八进制  0 开头

       十六进制 0X 或 0x 开头

       二进制  0b 或 0B 开头  (Java SE 7 后开始支持)

  ③  八大基本数据类型

    整数:  byte(1)、short(2)、int(4)、long(8)
    浮点数: float(4)、double(8)  
    字符:  char(2)
    布尔:  boolean
  ④  类型转换
    自动类型提升、强制类型转换
  ⑤  运算符

  

1、关键字

  被java语言赋予特殊含义的单词(小写)。

2、标识符

  程序中自定义的一些名称。

  规则:

  (1)由 26 个英文字母大小写、数字 0~9、下划线 _ 、美元符号 $ 组成。

  (2) 数字不可以开头,不可以使用关键字。

  规范:

  (1) 包名:全部小写xxxyyyzzz

  (2) 类名、接口名:由多个单词组成,单词首字母大写XxxYyyZzz

  (3) 变量名、函数名:由多个单词组成,除首个单词首字母小写外,后面单词首字母大写xxxYyyZzz

  (4) 常量:全部大写,多个单词之间以下划线隔开XXX_YYY_ZZZ

3、注释

4、常量和变量

  (一)常量

  (1) 整数常量

    ①十进制
    ②八进制,0开头,1位等于二进制中的3位
    ③十六进制,0x开头,1位等于二进制中的4位
    ④二进制,1字节8位二进制
    进制越大,表现形式越短
    进制转换
     十进制 --> 二进制(除以2求余)
     二进制 --> 十进制(乘2)
      负数的二进制,由整数的二进制取反+1
      负数最高位为1
     二进制 --> 十六进制(四位二进制表示一位十六进制)
     二进制 --> 十六进制(三位二进制表示一位十六进制)
复制代码
/**
    常量和进制
*/
public class ConstantDemo {
    public static void main(String[] args) {
        // 6 的二进制    110
        System.out.println(Integer.toBinaryString(6));
        // -6 的二进制    11111111111111111111111111111010
        System.out.println(Integer.toBinaryString(-6));
        // JavaSE 7 开始支持二进制常量
        System.out.println(Integer.toBinaryString(0b100));
        System.out.println(Integer.toBinaryString(0B100));
        // 十六进制的表示
        System.out.println(Integer.toBinaryString(0x10));
        System.out.println(Integer.toBinaryString(0X10));
        // 八进制
        System.out.println(Integer.toBinaryString(010));
    }
}
复制代码

  (2) 小数常量

  (3) 布尔类型常量  ture、false

  (4) 字符常量  用 ' ' 标识

  (5) 字符串常量  用" " 标识

  (6) null 常量

  (二) 变量

  Java是强类型语言,通过明确数据类型、变量名称和数据来开辟命名空间

  概念:

    内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型)

    该区域的数据可以在同一类型范围内不断变化   

    用来不断的存放同一类型的常量,并可以重复使用

  使用变量注意: 变量的作用范围(一对{}之间有效) 初始化值  

  基本变量类型:
    整数:byte(1)、short(2)、int(4)、long(8)
    浮点数:float(4)、double(8)  
    字符:char(2)
    布尔:boolean
  注意:整数默认情况下是 int 类型。小数默认情况下为 double 类型。

  引用数据类型

    类  class

    接口  interface

    数组  []

  每种数据类型占用存储空间大小不变性是Java程序比其他大多数语言编写的程序更具有可移植性的原因之一。
  (三) 类型转换

    自动类型转换(隐式类型转换、自动类型提升)

      表达式的数据类型自动提升:所有的 byte 型、short 型和 char 的值将被提升到 int 型。

    强制类型转换(显式类型转换)

复制代码
/**
    类型转换
    整数默认情况下是 int 类型。小数默认情况下为 double 类型。
*/
public class VarDemo {
    public static void main(String[] args) {
        short s = 30000;    // short   -32768~32767    
        long l = 4;
        System.out.println(l);
        l = 4l;        // 定义为长整型。l 可省略
        System.out.println(l);

        // float f = 2.4;    // 编译不通过,可能损失精度。
        float f = 2.3f;        // 默认情况下,小数是double型
        double d = 2.3;
        char ch = '4';

        boolean bo = true;
        boolean bo1 = false;
        
        byte b = 3;
        // b = b + 2;        // 编译失败,可能损失精度
        // 默认情况下,整数是int
        b = (byte)(b + 2);        //强制类型转换
        System.out.println(b);

        System.out.println('a');
        System.out.println('a' + 1);    // char 提升为 int 类型
        System.out.println((char)('a' + 1));    //强制类型转换
    }
}
复制代码

5、运算符

  (1) 算数运算符 (Arithmetic Operation)

    %  取模负数时只看被模,即左边

    +  字符串连接符。字符串数据 和 任何数据使用 + 相连接,最后都会变成字符串

复制代码
/*
    算数运算符
    转义字符
*/
class ArithmeticOperator 
{
    public static void main(String[] args) 
    {
        // % 取模
        System.out.println(1%-5);
        System.out.println(-1%5);    //取模负数时只看被模,即左边
        
        // 字符串连接符
        // 字符串数据 和 任何数据使用 + 相连接,最后都会变成字符串
        System.out.println("5+5" + 5 + 5);    //"5555"

        /*
            转义字符,通过 \ 来转变后面字母或者符号的含义
            \n    换行
            \b    退格,相当于backspace
            \r    按下回车。Window系统中,回车符是由两个字符表示的,\r\n.
            \t    制表符,相当于tab键
        */
        System.out.println("Hello \n world");
        System.out.println("Hello\bworld");
        System.out.println("Hello World \r java");    //回车后,\r前的字符串被后面的字符串覆盖
        System.out.println("Hello \t world");
        System.out.println("\"Hello\"world");
        System.out.println("\\Hello\\world");

        char cn = '\n';
        char cn1 = '\'';
        char cn2 = '你';    //可以使用多种方式为char类型赋值
    }
}
复制代码

  (2) 赋值运算符 (Assignment Operator)

    = , +=, -=, *=, /=, %=

复制代码
/**
    赋值运算符
*/
public class AssignmentOperator {
    public static void main (String[] args) {
        char c = 95;

        // c = c + 5;    // 编译不通过
        c += 5;            // 赋值语句,自动转换
        System.out.println("c = " + c);

        int  a,b;
        a = b = 5;    // 同时给a,b赋值,为5
        System.out.println("a = " + a + ", " + "b = " + b);
    }
}
复制代码

  (3) 比较运算符 (Comparison Operator)

  (4) 逻辑运算符 (Logical Operator)

    &  与  (AND)
    |  或  (OR)
    ! 非  (NOT)
    ^ 异或 (XOR) 

    && 与  (AND)  当左边为假,则右边不运算
    || 或  (OR)   当左边为真,则右边不运算
    相对 &、| 而言,&&、|| 运算效率较高。后面条件可能不执行,而对程序产生一定影响(Short-circuiting,短路)

  (5) 位运算符 (Bitwise Operator) 

      移位运算对于数值运算是最快的 

    <<   左移,乘以2的移动的位数次幂
    >>   右移,除以2的移动的位数次幂
    >>>  无符号右移
    >> 和 >>> 的区别

      >>最高位由原首位决定移位填充值
      >>> 最高位补0
    &  与
    |   或
    ^  异或
    ~  反码     

    1、由 -6 = ~6 + 1 ,得~6 = -7

    2、一个数异或同一个数两次,值不变  ( 用于加密、交换数据)

      对两个整数变量的值进行交换(不需要第三方变量)http://www.cnblogs.com/Ashia/archive/2012/04/29/2476444.html

复制代码
/**
    需求 : 10进制转换为16进制,使用移位和与的方法
    思路 : int 占4字节内存。共 32 位
           &15,取后四位。转化为 十六进制数
*/
public class HexConverter {
    public static void main (String[] args) {
        int i = -311;
        System.out.println(converter1(i));
        System.out.println(converter2(i));
    }

    public static String converter1 (int i) {
        String result = "";
        // 循环直到所有 i 右移为 0
        while (i != 0) {
            int temp = i & 15;
            if (temp <= 9) {
                result = temp + result;
            } else {
                result = (char)(temp - 10 + 'a') + result;
            }
            // 无符号右移。防止负数时 i 无法到0
            i = i >>> 4;
        }
        if (result == "") {
            result = "0";
        }
        return result;
    }

    public static String converter2 (int i) {
        // 使用 java 提供的 api 进行进制转换
        return Integer.toHexString(i);
    }
}
复制代码

    (6) 三元运算符 (TernaryOperator)

      ( 条件表达式 ) ? 表达式一 :表达式二

    好处:可以简化 if ... else ...

    弊端: 运算结果是一个表达式。必须赋值给变量等。

       可读性较低

6、语句

7、函数

8、数组

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics