重点

1. 了解关键字的概念及特点.了解保留字

2. 熟练掌握标识符的含义,特点,可使用字符及注意事项

3. 了解常量的概念  

4. 掌握变量的概念及定义过程

5. 掌握 java 中的数据类型及注意事项

6. 掌握强制类型转换的格式

 

1. 关键字

概念: 被java语言赋予特定含义的单词

特点: 所有的字母都是小写的,在一些高级开发工具中,会有特殊颜色的显示

保留字: 目前版本中还不是关键字,但是有可能在后续版本中升级为关键字

 

2.标识符

2.1概述

概念: 给类,接口,方法,变量起名字的字符序列

组成规则: 英文字母的大小写

    数字

    $

    _

注意事项:

  不能以数字开头

  不能是java中的关键字(包括保留字)

  严格区分大小写(hello !=Hello)

 

2.2 约定俗称的命名规则

类和接口:大驼峰命名法

  大驼峰命名法: 首字母大写,多个单词的话,每个单词的首字母都大写

  eg: HelloWorld, ManagementSystem

方法和变量: 小驼峰命名法:

  小驼峰命名法: 首字母小写,多个单词的话,每个单词的首字母都大写

  eg: main, sayHello

包: 包的本质是文件夹(方便管理,同名文件的问题), 域名的反转,用.隔开

  域名: www.baidu.com

  包名: com.baidu.项目名.模块名

 

常量: java程序运行的过程中,其值保持不变的量:

  所有的字母都大写,多个单词中间使用_ 隔开

  PI = 3.14;

  SECRET_KEY=”asdfasdf”;

 

3.常量

/** 常量: 在程序运行的过程中,其值保持不变的量 
字面值常量: 
    字符串常量: 用双引号括起来的内容 
    整数常量: 所有的整数 
    小数常量 : 所有的小数 
    布尔常量: true false 
    字符常量: 用单引号括起来的内容: 只能有一个字符(字母,数字,符号,中文) ',', '3' , '我'  
    空常量: null 
自定义常量: final 修饰的变量 
*/ class ConstDemo{    public static void main(String[] args){ 
        System.out.println("默默努力的cason");
        System.out.println(10); 
        System.out.println(100.1);
        System.out.println(true);
        System.out.println(false);
        System.out.println('1');
        System.out.println('我'); 
    } 
}

 

4. 变量

/**
    概念: 在 java 程序运行的过程中,其值可以在一定范围内发生改变的量
    定义格式: 数据类型 变量名 = 初始化值
    数据类型:
        整数: int 
        字符串: String 
    变量名: 小驼峰 
*/class VarDemo{    public static void main(String[] args){        int age = 23; //定义变量 
        String myName = "默默努力的cason"; 
        System.out.println(myName); //默默努力的cason
        System.out.println(age); //23
    age = 19; //对变量重新赋值,不加数据类型
    System.out.println(age); //19    }
}

注意:定义在方法中的变量叫做局部变量, 局部变量不赋初值不能使用;

变量所在的大括号叫做变量的作用域,同一个作用域中不能存在多个名字相同的变量。

 

5. 数据类型

基本数据类型

  四类八种

    整数类: 1. byte    2. short    3. int    4. long

    小数类: 1. float    2. double

    字符类: char

    布尔类: boolean

注意!

1. 整数的默认类型是 int, 小数的默认类型是 double

  System.out.println(70); // 70 是 int 类型的

  System.out.println(123.4); // double 类型的

2.定义 float 类型的小数, 要在小数的后面加上 f

  float f1 = 12.4; //.错误: 

  原因: 这是一条赋值语句, 是把等号右面的值,赋值给等号左边的变量,等号右面的值 12.4, 默认是double 类型的,把 double 赋值给 float,可能会造成损失

  解决方案: 在小数的后面加上 f(F), float f1 = 12.4f; //12.4f 代表一个 float 类型值

3. byte b1 = 123; 是把 int 类型的 123 赋值给 byte,也是把大类型的数据赋值给小类型,但是并不会报错. 定义 byte,short 类型的变量的时候,如果=右面的数值在等号左边的类型的范围之内,就可以赋值;

 byte b2 = 129; // 错误

4. 定义 long 类型的变量的时候,如果等号右边的值在 int 的范围之内,则可以直接赋值,如果等号右边的数值超出 int 的范围,需要在数值的后面加上一个 L(l)

  推荐使用大写的long l1 = 2147483649;// 2147483649 超出 int 的最大值,会报错

 

5.1 默认值

8 种基本数据类型,都有各自对应的默认值:

  byte,short,int ,long    默认值为 0

  float double       默认值为 0.0

  char          默认值为\u0000(空格)

  boolean          默认值为false

只有定义在类中,方法外的变量才有默认值

定义在方法中的变量是没有默认值的, 要想使用, 必须赋值

静态的方法中只能调用外部, 用 static 修饰的变量或方法

 

class DefaultData{    int a;    static int b;    static double c;    static boolean d;    public static void main(String[] args){        byte e; 

        System.out.println(a); //错误, 非静态变量
        System.out.println(b); //0
        System.out.println(c); //0.0
        System.out.println(d); //false
        System.out.println(e); //局部变量不赋初始值无法使用    }
}

 

 5.2 运算规则(自动)

byte,short,char 不能直接做运算,要想做运算必须先转成 int

给 byte,short, 赋值的时候,先看等号的右边有没有变量

  如果有变量,就按照上面的规则做运算,如果结果的类型范围超出左边的范围,就会产生错误

  如果都是常量,就看最终的结果是否在左边的范围之内,如果在,就可以直接赋值 

默认转换:

  byte,short,char—int—long—float—double

 

class CalculateRule{    public static void main(String[] args){        byte b1=3, b2=4, b;
        b = b1+ b2; 
        //错误, b1+ b2在运算的过程中会转换为int作为结果,b是byte
        b = 3+ 4; //byte b = 7
        float f1 = 12;        float f2 = 12.1; //错误
        float f3 = 12.1f;        float f4 = 12.1L;
    }
}

 

5.3 char类型

char 类型代表的是字符.用单引号括起来,里面只能有一个字符:

char 占两个字节(0-65535),用的是 unicode

utf-8: 表示英文和数字用 1 个字节,表示中文用 3 个字节

gbk: 表示英文和数字用 1 个字节,表示中文用两个字节

char 类型直接打印,用的是他所代表的字符

char 类型参与运算,用的是他底层的编码

对应转换详见:

ASCII字符代码表Char字符与int数字之间的相互转化以及用法

 

5.4 加法运算

+: 正号, 加法运算,字符串的拼接

要注意运算的顺序: 从左往右依次运算,有括号先算括号里的(先算乘除,后算加减)

String 和任意类型做加法,得到的都是 String,值就是拼接后的结果

布尔类型不能和其他的基本数据类型做运算 

class DataTypeDemo5{ 
    public static void main(String[] args){ 
        int a = +10; 
        System.out.println('a'); // a 
        System.out.println('a'+1); //98
        System.out.println("hello"+'a'+1); // helloa1
        System.out.println('a'+1+"hello");//98hello
        System.out.println("5+5="+5+5);//5+5=55 
        System.out.println("5+5="+(5+5));//5+5=10 
        System.out.println(5+5+"=5+5");//10=5+5 
        System.out.println(true+'1');//: 错误: 二元运算符 '+' 的操作数类型错误
        System.out.println(true+"1");// true1    }
}

 

5.5 强制类型转换

一般是在把大类型转成小类型的时候用强转

byte b = (byte)130

System.out.println(b); // -126

计算一下是为什么吧 :)