Java变量与基本数据类型

1 - 关键字与保留字

  关键字(keyword)的定义:被Java语言赋予了特殊含义,用作专门用途的字符串(单词)

  特点:关键字中所有字母都为小写

  具体关键字:以后会慢慢接触到

  保留字:现java版本尚未使用,但以后的版本可能会作为关键字使用,注意:自己命名标识符时避免使用这些保留字

  goto,const

2 - 标识符(Identifier)

1 - 标识符

  Java对各种变量,方法和类等要素命名时使用的字符序列称之为标识符

  技巧:凡是自己可以起名字的地方都叫标识符如 变量名 类名 方法名 接口名等

2 - 定义合法标识符规则

  1 - 由26个英文字母大小写。0-9,_或$组成

  2 - 数字不可以开头

  3 - 不可以使用关键字和保留字,但是能包含关键字的保留字

  4 - Java中严格区分大小写,长度无限制

  5 - 标识符不能包含空格

// 如果不遵守规则,则报错,编译不通过!
class Static{}
class Hello_${}
class _Mytest{}

3 - Java中的名称命名规范(如果不遵守 编译也能通过)

1-包名:多单词组成时所有字母都小写:xxxyyykk

2-类名,接口名:多单词组成时,所有单词的首字母大写:MyTest

3-变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxYyyZzz

4-常量名:所有字母都大写。多单词时每个单词用下划线连接:xx_yy_zz

 注意:
   1-在起名字时,为了提高阅读性,尽量有意义,“见名之意”

   2-java采用Unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用

// 变量命名
public class Test{
  public static void main(String[] args){
    int myNumber = 520;
    System.out.print(myNumber);
  }
}
// 输出:520

4 - 变量

1 - 变量的概念

  1 - 内存中的一个存储区域

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

  3 - 变量是程序中最基本的存储单元。包含变量类型,变量名,和存储的值

2 - 变量的作用

  用于在内存中保存数据

3 - 使用变量需注意

  1 - java中每个变量必须先声明,后使用

  2 - 使用变量名来访问这块区域的数据

  3 - 变量的作用域:其定义所在的一对{}内

  4 - 变量只有在其作用域内才有效

  5 - 同一个作用域内,不能定义重名的变量

// java定义变量的格式:数据类型 变量名 = 变量值;
// 变量必须先声明再使用
class VariableTest{
    public static void main(String[] args){
        // 变量的定义
        int myAge = 22;
        // 变量的使用
        System.out.print(myAge);
        // 变量的声明
        int myNumber;
        // 变量的赋值
        myNumber = 100;
        System.out.println(myNumber);
    }
}

5 - java中定义的数据类型

1 - 对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间

2 - 数据类型的分类

  1 - 基本数据类型(primitive type)

    1 - 数值型[包括整型(byte\short\int\long)和浮点型(float\double)]

    2 - 字符型(char)

    3 - 布尔型(boolean)

  2 - 引用数据类型(reference type)

    1 - 类(class)

    2 - 接口(interface)

    3 - 数组(array )

3 - 8种基本数据类型介绍

public class VariableTest1 {
    public static void main(String[] args) {

        // 1.整型:byte(1字节=8bit) short(2字节) int(4字节) long(8字节)
        // byte范围:-128 - 127
        byte b1 = 12;
        byte b2 = -128;
        // b2 = 128; 编译不成功
        System.out.println(b1); // 12
        System.out.println(b2); // -128

        //声明 short int long 数据类型
        short s1 = 128;
        int i1 = 1234;
        long l1 = 1212L; //声明long数据类型时必须以L或l结尾
        System.out.println(s1);
        System.out.println(i1);
        System.out.println(l1);
        // 通常定义整型变量时,使用int型

        // 2.浮点型:表示带小数点的数值分为   单精度float(4字节) \ 双精度double(8字节)
        // 单精度float:尾数可以精确到7位有效数字,表示数值的范围比long还大
        // 注意:定义float类型变量时,变量要以 F 或者是 f 结尾
        float f1 = 2.5F;
        System.out.println(f1+1); // 3.5
        // 双精度double :尾数可以精确到14位有效数字
        double d1 = 123.4;
        System.out.print(d1); // 123.4
        // 通常定义浮点型变量时,使用double型。

        // 3.字符型:char (1字符=2字节)
        // 定义char型变量,通常使用一对 '',内部只能写一个字符,注意字符串才能写多个字符
        char c1 = 'a';
        c1 = 'A';
        System.out.println(c1); // A
        char c2 = '中';
        System.out.println(c2); //
        char c3 = '\n';
        System.out.println(c3); // 换行

        // 表示方式:1-申明一个字符 2-转移字符 3-直接使用 Unicode 值来表示字符型常量
        char c4 = '\t'; // 制表符
        System.out.println('world'+c4);
        char c5 = '\u0043'; // unicode 值
        System.out.println(c5);

        // 4.布尔型:Boolean
        // 只能取两个值之一:true  false
        // 常常在条件判断,循环结构中使用
        boolean boor = true;
        System.out.println(boor); // true

        boolean isMarried = true;
        if (isMarried) {
            System.out.println('你就不能参加单身party');
        }else{
            System.out.println('你可以认识更多单身的小姐姐');
        }
    }
}

6 - 基本数据类型之间的运算

前提:这里讨论的只是7中基本数据类型变量间的运算。不包含boolean类型的。

1 - 自动类型提升(前三个做运算都是int型)

  byte、char、short --> int --> long --> float --> double

  结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。

public class VariableTest1 {
    public static void main(String[] args){
        byte b1 = 2;
        int i1 = 12;
        // byte res = b1 + i2;编译不通过
        int res = b1 + i1;
        //long res = b1 + i2; 编译通过
        // float res = b1 + i2; 编译通过

        short s1 = 123;
        double d1 = s1;
        System.out.println(res); // 14
        System.out.println(d1); // 123.0

        //**********************************************************//
        char c1 = 'a'; // 97
        int num = 10;
        int res2 = c1 + num;
        System.out.println(res2); // 107

        short s2 = 10;
        //short res3 = c1 + s2; 编译不通过,两种数据类型不兼容
        //char res3 = c1 + s2; 编译不通过
        //byte res3 = c1 + s2; 编译不通过
        int res3 = c1 + s2;
        System.out.println(res3); // 107
    }
}

2 - 强制类型转换

强制类型的转换也叫:自动类提升运算的逆运算

说明:此时的容量大小指的是,表示数的范围的大和小,比如:float容量要大于long的容量

/*
1-需要使用强转符:()
2-注意点:强制类型转换,肯导致精度损失
*/

public class VariableTest3 {
    public static void main(String[] args){
        double d1 = 12.3;
        // int i1 = d1; 编译不通
        // 精度损失举例1
        int i2 = (int)d1;
        System.out.print(i2); // 截断操作
        // 输出 12

        // 没有精度损失
        long l1 = 123;
        short s1 = (short)l1;
        System.out.println(s1); // 输出 123

        // 精度损失举例2
        int i3 = 128;
        byte b1 = (byte)i3;
        System.out.println(b1); // -128
    }
}

class VariableTest4 {
    public static void main(String[] args) {
        // 1-编码情况1
        long l1 = 1212; // 忘记加L
        System.out.println(l1);
        // 这里会自动类提升 转成 int 也就输出 1212
        // 这里如果超出 int 范围 则编译不通过

        // float f1 = 12.4; 这里如果忘记加 F 则编译不通过

        // 2-编码情况2
        // 注:整型常量,默认类型为 int   浮点型常量,默认类型为 double

        byte b = 2;
        // byte sum1 = b + 1; 编译失败
        // float sum2 = b + 1.5; 编译失败
    }
}

7 - 字符串类型(String)

1 - String不是基本数据类型,属于引用数据类型,也是一种类

2 - 使用方式与基本数据类型一致,例如:String str = '韩信';

3 - 一个字符串可以串接另一个字符串,也可以和8种数据类型做运算,且只能是连接运算:+,详见以下代码

/*
String类型变量的使用
1-String属于引用数据类型,翻译为 字符串
2-声明String类型变量时,必须使用一对 ""
3-运算结果任然是String类型
*/
public class StringTest {
    public static void main(String[] args) {
        String s1 = "Hello World";
        System.out.println(s1);
        String s2 = "a";
        String s3 = "";
        // String num = 1; 编译不通过,必须写成 String num = "1";
        // char c1 = ''; 编译不通过

        // 与其它基本数据类型的连接运算
        int number = 2017;
        String numberStr = "学号:";
        String info = numberStr + number; // + 连接运算
        System.out.println(info);

        boolean b1 = true;
        String info2 = info + b1;
        System.out.println(info2); // 学号:2017true

        // 练习1
        int num = 10;
        char c1 = 'a'; // 97
        String str = "hello";
        System.out.println(num + c1 + str); // 107hello
        System.out.println(num + str + c1); // 10helloa
        System.out.println((num + str) + c1); // 10helloa
        System.out.println((num + c1) + str); // 107hello

        // 练习2
        // 打印 *   *
        System.out.println("*    *"); // *    *
        System.out.println('*'+'\t'+'*'); // 93
        System.out.println('*'+"\t"+'*'); // *    *
        System.out.println('*'+'\t'+"*"); // 51*
        System.out.println('*'+('\t'+"*")); // *  *

    }
}

8 - 进制与进制之间的转换(了解)

 猛戳这里

posted @ 2020-05-16 16:33  赖正华  阅读(165)  评论(0编辑  收藏  举报