变量

在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结束

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

Java---变量和基本数据类型的更多相关文章

  1. Java 变量及基本数据类型

    1.Java变量 1.1 变量的概念 内存中开辟的一块存储空间,用于存放运算过程中需要用到的数据: 该区域有自己的名称(变量名)和类型(数据类型): 该区域的数据可以在同一类型范围内不断变化: 1) ...

  2. JAVA 变量 数据类型 运算符 知识小结

    ---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...

  3. Java变量与数据类型之三:数据类型与转义字符

    大家好,小乐又来了,上一篇:乐字节Java变量与数据类型之二:Java常量与变量, 今天接着讲Java变量与数据类型之三:数据类型与转义字符 一.数据类型 1.定义 Java是一种强类型语言,针对每种 ...

  4. 乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符

    大家好,我是乐字节的小乐,这次要给大家带来的是Java变量与数据类型.本文是第一集:Java编程规范,关键字与标识符. 一.编程规范 任何地方的名字都需要见名知意: 代码适当缩进 书写过程成对编程 对 ...

  5. java变量、数据类型

    public class Test { public static void main(String[] args) { //变量 //数据类型 变量名; //基本数据类型: //一个字节8位 //整 ...

  6. java变量和数据类型

    变量 数据类型  变量名  =  数据值: 注意事项: 变量定义后可以不赋值,使用时再赋值.不赋值不能使用 变量使用时有作用域的限制. 变量不可以重复定义 数据类型转换 自动类型转换  范围大的数据类 ...

  7. java的五种数据类型解析

    不知道大家对java的简单数据类型是否了解,下面针对Java的五种类型简单数据类型表示数字和字符,进行详细的讲解和分析. 一.简单数据类型初始化 在Java语言中,简单数据类型作为类的成员变量声明时自 ...

  8. JAVA中分为基本数据类型及引用数据类型

    一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...

  9. JAVA基础知识之数据类型

    JAVA的数据类型知识点主要包括基本数据类型,包装类,字符串类(String,StringBuffer, StringBuilder区别和用法),数组,数据类型转换等等,暂时只想到这么多,后面会再补充 ...

  10. JAVA变量的类型,定义变量

    JAVA中常用的数据类型 数据类型 数据类型解释 说明 char 字符型 用于存储单个字符,如:性别“男”.“女”,电灯“开”.“关” int 整形 用于存储整数,如一天的时间是24小时,一月份是31 ...

随机推荐

  1. TypeScript 2.0开启空值的严格检查

    摘要:在编程过程成空指针是最常见的bug之一,但是在TypeScript中我们无法使用具体的类型来表示特定的变量不能为空!幸运的是,TypeScript 2.0 解决了这个问题. 本文分享自华为云社区 ...

  2. .NET MAUI 已在塔架就位 ,4月份RC

    最美人间三月天,春光不负赶路人.在充满无限希望的明媚春天里,一路风雨兼程的.NET 团队正奋力实现新的突破. 根据计划,新一代移动开发平台MAUI 将于4月份 发布RC. 目前,MAUI的测试工作和火 ...

  3. Java将彩色PDF转为灰度

    本文以Java代码为例介绍如何实现将彩色PDF文件转为灰度(黑白)的PDF文件,即:将PDF文档里面的彩色图片或者文字等通过调用PdfGrayConverter.toGrayPdf()方法转为文档页面 ...

  4. 报错———http://mybatis.org/dtd/mybatis-3-mapper.dtd 报红解决方案

    初次使用mybatis时,下面红线上的地址报红. 解决方法是:将http://mybatis.org/dtd/mybatis-3-mapper.dtd拷贝.添加到下面标记处.

  5. 5分钟了解Redis的内部实现跳跃表(skiplist)

    跳跃表简介 跳跃表(skiplist)是一个有序的数据结构,它通过在每个节点维护不同层次指向后续节点的指针,以达到快速访问指定节点的目的.跳跃表在查找指定节点时,平均时间复杂度为,最坏时间复杂度为O( ...

  6. cute

    环境准备 将靶机导入后将网络设置为NAT kali:192.168.0.102 cute:192.168.0.107 端口扫描 使用nmap对靶机进行端口扫描 nmap –A –p- 192.168. ...

  7. linux下的shell脚本

    先说明以下内容来自: http://c.biancheng.net/cpp/shell/ ,C语言中文网,请大家支持原作,点击链接查看. 我写下来只是作为笔记,如果侵权,请留言,立马删除. Shell ...

  8. vue3.0的更新和defineProperty优化?

    放弃 Object.defineProperty ,使用更快的原生 Proxy (访问对象拦截器, 也成代理器) 提速, 降低内存使用, Tree-shaking更友好 支持IE11等 使用Types ...

  9. 为什么以iPhone6为标准的设计稿的尺寸是以750px宽度来设计的呢?

    iPhone6的满屏宽度是375px,而iPhone6采用的视网膜屏的物理像素是满屏宽度的2倍,也就是dpr(设备像素比)为2, 并且设计师所用的PS设计软件分辨率和像素关系是1:1.所以为了做出的清 ...

  10. SpringBoot DevTools 的用途是什么?

    SpringBoot 开发者工具,或者说 DevTools,是一系列可以让开发过程变得简便的工具.为了引入这些工具,我们只需要在 POM.xml 中添加如下依赖: 1 <dependency&g ...