常量和变量的区别(正确认识)

常量和变量就是在内存中做数据交换的一个过程。

1.常量

常量指的是在程序运行期间不变的数据,常量又分为直接常量和符号常量。

直接常量:

例如:

整数常量:24小时,365天

小数常量:圆周率3.14

字符:‘男’

布尔数值:true,false

空常量:null

以及一些其他进制的数值都是常量

0123(八进制)

0x123(十六进制)

符号常量:符号化的常量,也就是给常量取个名字。

为什么使用符号常量?

(1)便于维护

(2)符号常量相比于直接常量能提供更丰富的信息,便于阅读,增强程序可读性。

 定义常量的语法:

 static final 数据类型 常量名 = 值

例如:

   static final double p = 3.1415926



  2.变量

变量的本质是什么,或者说变量到底是什么?

变量指的是在程序运行的过程中存储可以变化的数据。

变量的本质是内存单元,内存单元可以存储数据,也可以将存储的数据读出来。

int x:的含义是:告诉编译器,需要申请4个字节的内存空间,以后这个单元(4字节)就叫做x了。

int x = 4;的含义:申请4个字节的内存单元,同时将数据4存储进去。

内存单元有两个属性:值和地址

x = x+1;的含义:把x的值取出来,加1再存进去。

定义变量的语法:

数据类型 变量名字 = 初始值

变量定义在方法中或者语句块中。

变量的定义必须要有初始值。

  变量只能在当前的大括号和当前的大括号的子括号中使用。

例如:

  int a = 5

常量和变量的区别,String 用法

通过String知道变量和常量的区别

public static void main(String args[]){
//System.out.print(getAuth());
String a = “abc”;
String c = “a”;
String b = c + “bc”;
String d = “a” + “bc”;
System.out.println(a == b); // false
System.out.println(a == d); //true
}

String常量放在常量池中,Java虚拟机出于优化的考虑,会让内容一致的对象共享内存块,但变量是放在堆空间中,new 定义的不同变量的内存地址不同。

String 常量连接常量还是常量,依然在常量池中,但常量连接变量是变量。

对String 类型对象:1,尽可能使用常量,避免用变量;2。尽量避免大规模对String的(连接)操作,因为会产生大量内存碎片,导致内存性能问题。如果需要,用StringBuilder。

StringBuilder 是字符串变量,当用它进行字符串操作时,实在一个对象上操作的,这样就不会像String那样建一些额外的对象。

StringBuffer功能类似,但是是线程安全的,性能略低于StringBulder,StringBulder不是线程安全的。

在通过System.out.println()输出时,默认的会调用toString()方法,如果自己定义类,可以通过toString来定义类的输出结果。

String不能被继承:Sting是这样定义的:public final class String extends Object,里边有final关键字,所以不能被继承

你可能感兴趣的:(java)