变量,指值可以变的量。变量以非数字的符号来表达,一般用拉丁字母。变量的用处在于能一般化描述指令的方式。结果只能使用真实的值,指令只能应用于某些情况下。变量能够作为某特定种类的值中任何一个的保留器。
在数学中变量分为自变量和因变量,那么在Java中变量有什么作用呢
变量示例如下:
int a = 0;
long b = 0;
short c = 1;
String d = "三省同学";
Java 编程语言定义了以下类型的变量:
独立于方法之外的变量,没有 static 修饰。
非静态字段也称为实例变量,因为它们的值对于类的每个实例(换句话说,对于每个对象)都是唯一的;
例如每个人自己的身份证都是唯一的。
当一个对象被实例化之后,每个实例变量的值就跟着确定;
实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
实例变量可以声明在使用前或者使用后;
访问修饰符可以修饰实例变量;
实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObjectReference.VariableName。
类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/private,final 和 static
类型的变量。静态变量初始化后不可改变。静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。
静态变量在第一次被访问时创建,在程序结束时销毁。
静态变量还可以在静态语句块中初始化。
静态变量可以通过:ClassName.VariableName的方式访问。
类变量被声明为 public static final 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和
final 类型,其命名方式与实例变量以及局部变量的命名方式一致。
static String age = 18;
静态字段age将会应用于类的所用实例,都是18岁。当然还可以添加关键字final来表示年龄18岁永远不变。
类的方法中的变量。
声明局部变量的语法类似于声明字段(例如,int count = 0;)。
局部变量只在声明它的方法、构造方法或者语句块中可见;
局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
访问修饰符不能用于局部变量;
局部变量是在栈上分配的。
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
main方法的签名是
public static void main(String[] args)
args变量是这个方法的参数。参数在方法中一般被归类为“变量”而不是“字段”。例如构造函数和异常处理程序中的变量。
类型的字段、方法和嵌套类型统称为其成员。
命名变量的规则和约定:
变量名区分大小写。
变量的名称可以是任何合法标识符长度不限的 Unicode 字母和数字序列,以字母、美元符号“ $”或下划线字符“ _”开头。
通常以字母开头变量名,而不是“ $”或“ _”。
通常不使用变量名包含美元符号字符。
以“ _”开头的变量名称虽然在技术上是合法的,但不推荐这种做法。
不允许使用空格。
变量名称尽量使用完整的单词而不是隐晦的缩写。这样做将使您的代码更易于阅读和理解。
变量名称不能是 关键字或保留字。
变量名称仅包含一个单词,该单词拼写为所有小写字母。
变量名称包含多个单词,则将每个后续单词的第一个字母大写。例如getName
变量存储一个常量值,例如static final int NUM_GEARS = 6,则约定会略有变化,将每个字母大写并用下划线分隔后续单词。通常下划线字符从不在其他地方使用。
原始类型由语言预定义并由保留关键字命名。Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 :
类型名称 | 字节、位数 | 最小值 | 最大值 | 默认值 | 例子 |
---|---|---|---|---|---|
byte | 1字节,8位 | -128(-2^7) | 127(2^7-1) | 0 | byte a = 100,byte b = -50 |
short | 2字节,16位 | -32768(-2^15) | 32767(2^15 - 1) | 0 | short s = 1000, short r = -20000 |
int | 4字节,32位 | -2,147,483,648(-2^31) | 2,147,483,647(2^31 - 1) | 0 | int a = 100000, int b = -200000 |
long | 8字节,64位 | -9,223,372,036,854,775,808(-2^63) | 9,223,372,036,854,775,807(2^63 -1) | 0L | L long a = 100000L, Long b = -200000L |
duble | 8字节,64位 | 4.9E-324 | 1.7976931348623157E308 | 0.0d | double d1 = 123.4 |
float | 4字节,32位 | 1.4E-45 | 3.4028235E38 | 0.0f | float f1 = 234.5f |
char | 2字节,16位 | \u0000(即为0) | \uffff(即为65,535) | 可以储存任何字符 | char letter = ‘A’; |
boolean | 返回true和 false两个值 | 这种类型只作为一种标志来记录 true/false 情况; | 只有两个取值:true 和 false; | false | boolean one = true |
字面量是用于表达源代码中一个固定值的表示法;如下所示,可以将字面量分配给原始类型的变量:
boolean result = true;
char capitalC = 'C';
byte b = 11;
short s = 111;
int i = 1111;
long型整数字面量以字母L或者l结尾。建议使用大写字母,因为小写字母很难与数字区分开来。
十进制:以 10 为底,其数字由数字 0 到 9 组成;
十六进制:以 16 为基数,其数字由数字 0 到 9 和字母 A 到 F 组成;
二进制:以 2 为底,其数字由数字 0 和 1 组成;
前缀0x表示十六进制,0b表示二进制:
// 数字 26,十进制
int decVal = 26;
// 数字 26,十六进制
int hexVal = 0x1a;
// 数字 26,二进制
int binVal = 0b11010;
double浮点类型以D或d结尾,float浮点类型以F 或 f结尾。
浮点类型 (float和double) 也可以使用 E 或 e(科学计数法)来表示:
double d1 = 123.4;
// 与 d1 相同的值,采用科学计数法
double d2 = 1.234e2;
float f1 = 123.4f;
字面量类型char、String可以包含任何 Unicode (UTF-16) 字符。char文字使用“单引号”,String文字使用“双引号” 。Unicode 转义序列可以在程序的其他地方使用(例如在字段名称中),而不仅仅是在char或String文字中。
特殊的转义序列char和String文字:
(\b退格)、\t(制表符)、\n(换行)、\f(换页)、\r(回车)、"(双引号)、'(单引号)和\(反斜杠)。
特殊的null文字可以用作任何引用类型的值。null可以分配给任何变量,除了原始类型的变量。null经常在程序中用作标记,表示某些对象不可用。
还有一种特殊的字面量,称为类字面量,由类型名称和 " .class"组成;例如,String.class, 表示类型本身的对象。
在 Java SE 7 及更高版本中,下划线字符 ( _) 可以出现在数字之间的任何位置。分隔数字文字中的数字组,提高代码的可读性。
以下示例显示了可以在数字文字中使用下划线的其他方式:
long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;
只能在数字之间放置下划线。
示例:
//无效:不能在小数点附近放置下划线
float pi1 = 3_.1415F;
//无效:不能在小数点附近放置下划线
float pi2 = 3._1415F;
//无效:不能在 L 后缀之前加上下划线
long socialSecurityNumber1 = 999_99_9999_L;
// 有效
int x1 = 5_2;
//无效:在字面量的末尾不能放下划线
int x2 = 52_;
// 有效
int x3 = 5_______2;
//无效:在前缀中间不能使用下划线
int x4 = 0_x52;
//无效:不能在数字开头放置下划线
int x5 = 0x_52;
// 有效
int x6 = 0x5_2;
//无效:不能在数字末尾添加下划线
int x7 = 0x52_;
Java 编程语言同时使用“字段”和“变量”作为其术语的一部分。实例变量(非静态字段)对于类的每个实例都是唯一的。类变量(静态字段)是用static修饰符声明的字段;无论类被实例化多少次,类变量都只有一个副本。局部变量将临时状态存储在方法中。参数是为方法提供额外信息的变量;局部变量和参数总是被归类为“变量”(而不是“字段”)。在命名字段或变量时,应该(或必须)遵循一些规则和约定。
八种原始数据类型是:byte、short、int、long、float、double、boolean 和 char。类 java.lang.String表示字符串。编译器会为上述类型的字段分配一个合理的默认值;对于局部变量,从不分配默认值。字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。
犯我中华者虽远必诛