变量

在Java中,变量分为两种:基本类型的变量和引用类型的变量。

在Java中变量必须先定义后使用,在定义变量的时候可以给它一个初始值.如果不写初始值,默认为0或空.

变量的一个重要特点是可以重新赋值,还可以赋值给其他变量.

public class Main {
public static void main(String[] args) {
int x = 100; // 定义int类型变量x,并赋值100
System.out.println("x=" + x); // 打印x变量的值 x = 200; // 重新赋值为200
System.out.println("x=" + x); // 打印变量的值 int n = x; // 变量x的值赋值给变量n
System.out.println("n=" + n); // 打印n的值 200 n = n + 56; // 重新赋值n
System.out.println("n=" + n); // 打印n的值 256
System.out.println("x=" + x); // 打印x的值 200
}
}

基本数据类型

基本数据类型是CPU可以直接进行运算的类型, Java定义了以下几种基本数据类型:

  • 整数类型: int, short, long, byte
  • 浮点类型: float, double
  • 字符类型: char
  • 布尔类型: boolean

计算机内存最小的存储单元是字节byte, 一个字节就是一个8位二进制整数, 即8bit, 0-255. 每个内存单元可以看做是一间房间, 内存地址就是门牌号.

基本数据类型 占用字节数
int 4
short 2
long 8
byte 1
float 4
double 8
char 2

整型

Java只定义了带符号的整型, 且同一个数的不同进制的表示时完全相同的.

int i = 21456;
int i2 = -89656;
int i3 = 2_000_000; // 加下划线更容易识别
int i4 = 0x11; // 0x十六进制
int i5 = 0b1111; // 0b八进制
long l = 932565400000L; // long 结尾要加L

浮点型

float f1 = 3.14f; // float类型要加上f后缀
float f2 = 3.4e38f;
double d1 = 1.79e308;
double d2 = 4.9e-324;

布尔型

true和false两个值, 是关系运算的计算结果

boolean b1 = true;
boolean b2 = false;
boolean isGreater = 5 > 3; // 结果为true

java对布尔类型的存储没有做规定, 通常JVM会把boolean表示为4字节整数.

字符型

char类型使用单引号', 且仅由一个字符, 要和双引号"的字符串类型区分.

public class Main {
public static void main(String[] args) {
char v = 'v';
char hi = '嗨';
System.out.println(v);
System.out.println(hi);
}
}

常量

定义变量的时候, 加上修饰符final, 变量就变成了常量, 根据习惯常量名通常全部大写.

final double PI = 3.14;
double r = 4;
double area = PI * r * r;
PI = 3; // 编译错误

常量在定义时初始化之后就不可以再次复制, 否则会导致编译错误.

常量的作用是用有意义的变量名来避免魔术数字, 比如定义一个常量来表示3.14, 如果需要提高计算精度, 只需在常量定义处修改,不必在所有地方替换.

var关键字

当类型的名字太长, 想省略变量类型时, 可以使用var关键字.

StringBuilder sb = new StringBuilder(); // 类型的名字较长

var sb = new StringBuilder();

编译器会根据赋值语句自动推断出变量的类型.

变量的作用范围

在java中, 多行语句用{ }括起来,控制语句都以{ }作为他们自身的范围.

if ( ) { // if开始
while ( ) { // while开始 if ( ) { // if开始 } // if结束
} // while结束
} // if结束

定义变量时, 要遵循作用域最小化原则, 尽量将变量定义在尽可能小的作用域,并且不要重复使用变量名.

最新文章

  1. TYPESDK手游聚合SDK服务端设计思路与架构之四:流程优化之信息安全与订单校验
  2. Jsp的九个内置对象
  3. C和指针 第七章 习题
  4. redis-cluster 单个节点不可用
  5. Oracle数据库导入导出命令总结
  6. [转载]UEditor报错TypeError: me.body is undefined
  7. Sublime text 快捷键总结
  8. Shipyard远程API
  9. C ~ C语言字节对齐
  10. PCB编辑快捷键
  11. 学习笔记_Java get和post区别(转载_GET一般用于获取/查询资源信息,而POST一般用于更新资源信息)
  12. Keil MDK入门---从新建一个工程开始
  13. HTML5 简介、浏览器支持、新元素
  14. LVS实现负载均衡安装配置详解
  15. Linux 学习 (六) 关机与重启命令
  16. bean 装配
  17. k64 datasheet学习笔记11---Port Control and Interrupts (PORT)
  18. Nginx详解四:Nginx基础篇之目录和配置语法
  19. HISAT2,StringTie,Ballgown处理转录组数据
  20. [转载]request.getServletPath()方法

热门文章

  1. 36 异常机制 自定义异常 实际应用中的经验总结 尽量添加finally语句块去释放占用的资源
  2. 01 简介 如何高效的学习Java
  3. spring——AOP(静态代理、动态代理、AOP)
  4. 6月29日学习总结 Django自带的用户认证
  5. react中使用截图组件Cropper组件
  6. unicode decode error解决办法
  7. 抖音网页版高清视频抓取教程selenium
  8. 羽夏笔记——Hook攻防基础
  9. 【Spring AOP】暴力打通两个切面之间的通信
  10. 第九届蓝桥杯 C组 Java 等腰三角形