标识符和关键字
-  
关键字
 -  
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符
 
标识符注意点
-  
所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
 -  
首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合
 -  
不能使用关键字作为变量名或方法名。
 -  
标识符是大小写敏感的
 -  
合法标识符实例:age、$salary、_value、__1_value
 -  
非法标识符实例:123abc、-salary、#abc
 -  
可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
 
public static void main(String[] args){
    String 王者荣耀 = "最强王者";
    System.out.println(王者荣耀);
} 
数据类型
-  
Java是强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用!
 -  
Java的数据类型分为两大类:1. 基本类型 (primitive type)2.引用类型(reference type)
 
基本数据类型
分为整数类型,浮点类型也就是小数类型,字符类型就是我们平常说的是非对错。
整数类型
-  
byte占1个字节范围:-128-127
 -  
short占2个字节范围:-32768-32767
 -  
int占4个字节范围:-2147483648-2147483647 正负21亿
 -  
long占8个字节范围:-9223372036854775808-9223372036854775807
 
浮点类型
-  
float:占4个字节
 -  
double:占8个字节
 
字符类型
-  
char:占2个字节
 
boolean类型
-  
boolean:占1位其值只有true和false两个 true为是 false为非
 
什么是字节
-  
位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。
 -  
字节(byte):是计算机中 数据处理的 基本单位,习惯上用大写B 来表示。
 -  
1B(byte,字节)=8bit(位)
 -  
字符:是指计算机中使用的字母、数字、字和符号
 -  
1bit表示1位
 -  
1Byte表示一个字节 1B = 8b.
 -  
1024b = 1kb
 -  
1024kb = 1m
 -  
1024m = 1g.
 
八大基本数据类型的定义
public class Demo{
    public static void main(String[]args){
        //八大基本数据类型
        //整数类型
        byte num1 = 10;
        short num2 = 20;
        int num3 = 30; //int 最常用
        long num4 = 40L;//long类型要在数字后面加个L
        //小数类型
        float num5 = 50.1F;
        double num6 = 3.141592653589793238462643;
        //字符类型
        char name = 'A';//字符代表的是一个字 
        //boolean类型 布尔值
        boolean flag = true;
        boolean flag = false;
        
        
    }
} 
 
变量
-  
变量是什么:就是可以变化的量
 -  
Java是一种强类型语言,每一个变量都必须声明其类型。
 -  
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
 
    type varName = [=value][{,varName[=value]}];
    //数据类型 变量名= 值;可以使用逗号隔开来声明多个同类型变量。 
-  
注意事项:
 -  
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
 -  
变量名必须是合法的标识符。
 -  
变量声明是一条完成的语句,因此每一个声明都必须以分号结束。
 
变量的命名规范
-  
所有变量、方法、类名:见名知意
 -  
类成员变量:首字母小写和驼峰原则:monthSalary
 -  
局部变量:首字母小写和驼峰原则
 -  
常量:大写字母和下划线:MAX_VALUE
 -  
类名:首字母大写和驼峰原则:Man,GoodMan
 -  
方法名:首字母小写和驼峰原则:run(),runRun()
 
变量作用域
-  
静态变量/类变量
 -  
成员变量
 -  
局部变量
 
在Java语言中,变量根据定义的位置不同可以分为两类:局部变量和成员变量。 在方法体当中声明的就是局部变量。 在方法体之外声明的就是成员变量。 对于成员变量来说又可以分为两种,被static修饰的叫做静态变量。 没有被static修饰的叫做实例变量。 综上所述,在Java中实际上就三种变量:局部变量、静态变量、实例变量。
public class Variable{
    static int allCkicks = 0; //类变量/静态变量
    String str = "hello world";//实例变量
    
    public void method(){
        int i = 0;//局部变量
    }
} 
-  
成员变量:Java的成员变量有两种,分别是全局变量和静态变量(类变量),定义在方法体和语句块之外,不属于任何一个方法,作用域是整个类。
 
| 名称 | 修饰 | 访问 | 生命周期 | 
|---|---|---|---|
| 全局变量(实例变量) | 无static修饰 | 对象名.变量名 | 只要对象被当作引用,实例变量就将存在 | 
| 静态变量(类变量) | 用static修饰 | 类名.变量名/对象名.变量名 | 其生命周期取决于类的生命周期,类被垃圾回收机制彻底回收时才会被销毁 | 
假设在一个类中声明了4个变量,下面编写一个测试类输出引起变量的值改变的示例代码。
变量声明代码如下所示
public class DataClass{
    String name;//成员变量、实例变量
    int age;//成员变量、实例变量
    
    static final String website = "你好世界!"//成员变量、静态变量(类变量)
    static String URL = "http://www.baidu.com"//成员变量、静态变量(类变量)    
} 
测试类代码如下所示:
public class Test{
    public static void main(String[]args){
        //创建类的对象
        DataClass dc = ne DataClass();
        //对象名.变量名调用实例变量(全局变量)
        System.out.println(dc.name);
        System.out.println(dc.age);
        
        
        //对象名.变量名调用静态变量(类变量)
        System.out.println(dc.website);
        System.out.println(dc.URL);
        
        //类名.变量名调用静态变量(类变量)
        System.out.println(DataClass.website);
        System.out.println(DataClass.URL);
    }
} 
运行结果如下图所示:

在本里的第一段中定义了4个成员变量,有输出结果可以看出,name和age显示系统默认初始化的值,website和URL显示初始化的值,且用static final修饰的变量必须赋予初始化值。
局部变量
局部变量是指在方法或者方法代码中定义的变量,其作用域是其所在的代码块,可分为以下三种:
-  
方法参数变量(形参):在整个方法内有效。
 -  
方法局部变量(方法内定义):从定义这个变量开始到方法结束这一段时间内有效。
 -  
代码块局部变量(代码块内定义):从定义这个变量开始代码结束这一段时间内有效。
 
局部变量在使用前必须被程序员主动初始化值。
-  
方法局部变量
 
声明两个局部变量并输出其值,其实现代码如下:
public class Test2{
    public static void main(String[]args){
        int a = 7;
        if(5>3){
            int s = 3;//声明一个int类型的局部变量
            System.out.println("s=" + s);
            System.out.println("a=" + a);
        }
        System.out.println("a=" + a);
    }
} 
上述实例中定义了 a 和 s 两个局部变星,其中 int 类型的 a 的作用域是整个 main() 方法,而 int 类型的变量 s 的作用域是 if 语句的代码块内,其执行结果如图 2 所示:

如果在 if 方法外调用变量 s,则会报无法解析该变量的错误。
-  
方法参数数量
 
作为方法参数声明的变量的作用域是整个方法。
声明一个方法参数变量,实现代码如下:
public class Test3 {
    public static void testFun(int n) {
        System.out.println("n=" + n);
    }
    public static void main(String[] args) {
        testFun(3);
    }
} 
在上述实例中定义了一个 testFun() 方法,该方法中包含一个 int 类型的参数变量 n,其作用域是 testFun() 方法体内。当调用方法时传递进了一个参数 3,因此其输出控制台的 n 值是 3。
-  
代码块局部变量
 
代码块局部变量常用于 try catch 代码块中,成为异常处理参数变量。
异常处理参数变量的作用域是在异常处理块中,该变量是将异常处理参数传递给异常处理块,与方法参数变量类似。
声明一个异常处理语句,实现代码如下:
public class Test4 {
    public static void test() {
        try {
            System.out.println("Hello!Exception!");
        } catch (Exception e) { // 异常处理块,参数为 Exception 类型
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        test();
    }
} 
在上述实例中定义了异常处理语句,异常处理块 catch 的参数为 Exception 类型的变量 e,作用域是整个 catch 块。
类型转换
-  
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
 
//低--------------------------> 高 byte,short,char->int->long->float->double
-  
运算中,不同类型的数据先转化为泳衣类型,然后进行运算。
 -  
强制类型转换:(类型)变量名 高到底需要强制转换
 -  
自动类型转换:低到高系统会自动进行自动类型转换
 
常量
-  
常量(Constant):初始化后不能再改变值!不会变动的值
 -  
所谓常量是可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
 -  
常量名一般使用大写字符。
 
final 常量名 = 值; final double PI = 3.1415926;










