标识符和关键字
-
关键字
-
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;