Java系列分享
什么是变量?
变量就是初中数学的代数的概念,例如一个简单的方程,x,y都是变量
如:y=x+1
其实在Java中,变量分为两种:基本类型的变量和引用类型的变量。
在java中,变量需要先定义,在使用例如:
int x = 100;
上述语句定义了一个整型int
类型的变量,名称为x
,初始值为100
可以写一个代码来输出下x是不是100
package com.company;
public class Main {
public static void main(String[] args) {
// write your code here
int x=100;
System.out.println(x);
}
}
结果如下
当我们给x赋值两次,每次内容不一样,我们看下结果是什么样的
public class Main {
public static void main(String[] args) {
int x = 0;
System.out.println(x);
x=1000;
System.out.println(x);
}
}
仔细观察代码,可以发现,当定义来x是int后,二次赋值的时候,只能是int类型,且不用再次重新定义,最后结果:
除了int类型,java还有
各种整型能表示的最大范围如下:
public class Main {
public static void main(String[] args) {
int i = 2147483647;
int i2 = -2147483648;
int i3 = 2_000_000_00; // 加下划线更容易识别
int i4 = 0xff0000; // 十六进制表示的16711680
int i5 = 0b1000000000; // 二进制表示的512
long l = 9000000000000000000L; // long型的结尾需要加L
}
}
浮点类型的数就是小数
float f1 = 3.1f;
float f2 = 3.14e38f; // 科学计数法表示的3.14x10^38
double d = 1.79e08;
double d2 = -1.79e08;
double d3 = 4.9e-324; // 科学计数法表示的4.9x10^-324
对于float类型,需要加上f后缀
布尔类型boolean只有true和false两个值,布尔类型总是关系运算的计算结果:
package com.company;
public class Main {
public static void main(String[] args) {
boolean bool1 = true;
boolean bool2 = false;
System.out.println( bool1);
System.out.println( bool2);
boolean isGreater = 5 > 3; // 计算结果为true
int age = 12;
boolean isAdult = age >= 18; // 计算结果为false
System.out.println(isGreater);
System.out.println(isAdult);
}
}
看下输出的结果:
字符类型char表示一个字符。Java的char类型除了可表示标准的ASCII外,还可以表示一个Unicode字符
public class Main {
public static void main(String[] args) {
char a = 'A';
char zh = '一';
System.out.println(a);
System.out.println(zh);
}
}
结果如下
注意char类型使用单引号',且仅有一个字符,要和双引号"的字符串类型区分开。
除了上述基本类型的变量,剩下的都是引用类型。例如,引用类型最常用的就是String字符串:
String s = "hello 北京";
定义变量的时候,如果加上final
修饰符,这个变量就变成了常量:
final double PI = 3.1214;
PI = 3000;
常量在定义时进行初始化后就不可再次赋值,再次赋值会导致编译错误。
根据习惯,常量名通常全部大写。
定义变量时,要遵循作用域最小化原则,尽量将变量定义在尽可能小的作用域,并且,不要重复使用变量名。
Java语言支持的变量类型有:
类变量:独立于方法之外的变量,用 static 修饰。
实例变量:独立于方法之外的变量,不过没有 static 修饰。
局部变量:类的方法中的变量。
参考
public class Main {
static int abc=0; // 类变量
String str="hello world"; // 实例变量
public void method(){
int i =100; // 局部变量
System.out.println(i);
System.out.println(abc);
System.out.println(str);
}
public static void main(String[] args) {
Main main=new Main();
main.method();
System.out.println(abc);
}
}
输出结果如下:
我们在方法中定义的变量,只能在方法中调用。
针对局部变量,实例变量,类变量的总结如下:
Java 局部变量
局部变量声明在方法、构造方法或者语句块中;
局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
访问修饰符不能用于局部变量;
局部变量只在声明它的方法、构造方法或者语句块中可见;
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
在上面的代码中,可以看到,我们定义的i变量 ,只能在我们调用method的方法的时候,才可以使用。
实例变量
实例变量声明在一个类中,但在方法、构造方法和语句块之外;
当一个对象被实例化之后,每个实例变量的值就跟着确定;
实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
实例变量的值应该至少被一个方法、构造方法或者语句块引用,
使得外部能够通过这些方式获取实例变量信息;
实例变量可以声明在使用前或者使用后;
类变量(也叫做静态变量)
类中以 static 关键字声明,但必须在方法之外。
无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/private,
final 和 static 类型的变量。静态变量初始化后不可改变。
静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。
静态变量在第一次被访问时创建,在程序结束时销毁。
与实例变量具有相似的可见性。但为了对类的使用者可见,
大多数静态变量声明为 public 类型。
发现问题,解决问题。遇到问题,慢慢解决问题即可。