ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

3.Java变量与数据类型

3.Java变量与数据类型

为什么程序需要变量和类型

如果想让程序处理真实世界的数据,就必须让程序可以存储东西。
变量就是程序用来存储数据的盒子,而数据类型就是数据上的标签,告诉计算机这个盒子里放的是什么,占多大空间,能做什么运算。

一、变量

每个变量包含三个部分:
①数据类型:决定盒子多大,能装什么
②变量名:标签的名字
③值:盒子里装的东西
Java是一个强类型语言,一个变量声明为什么类型就只能装什么类型的数据。

二、变量的声明与赋值

2.1 先声明,后赋值

intage;age=25;

2.2 声明时直接复制(推荐)

intage=25;string="Hello"

2.3 一次声明多个同类型变量

inta=10,b=11,c=12;

2.4 重新赋值变量

intage=85;age=90;System.out.println(age);//结果为90

局部变量(方法内部声明的变量)必须先赋值才能使用,否则编译报错
成员变量(类里方法外)才有默认值

三、8中基本数据类型

Java数据类型有两种:基本数据类型(8种,存值本身)和引用数据类型(存地址,包括类、接口、数组等)

3.1 速查表

分类类型字节取值范围/说明默认值
整数byte1-128~1270
整数short2-32768~327670
整数int4约±21亿(常用)0
整数long8约±922亿(最大整数)0L
浮点float4单精度:约6~7位小数0.0f
浮点double双精度:约15~16位小数(常用)0.0d
字符char2单个Unicode字符,0~65535‘\u0000’
布尔boolean1true或falsefalse

3.2 四种整数类型

整数类型有四种,区别在于所占空间的大小、能装多大的数
long类型数据后面需要使用L后缀,否则编译器会把他当成int类型数据,这是数据会溢出造成编译报错。

longa=10L;

3.3 两种浮点类型

浮点数就是小数,单精度后面必须加f或F,双精度是Java默认的类型。
浮点数在计算机中使用二进制存储,像0.1这种十进制数在二进制中就是无限循环的,存下会产生微小的误差。所以在进行精密计算时最好使用BigDecimal类。

floatb=1.1F;doublec=2.12;

3.4 字符串char

char用来存储单个字符,用单引号包裹。它本质上是一个16位无符号整数,取值为0~65535每一个值对应这Unicode编码

chse='A';

3.5 布尔型boolean

布尔型只有两个数值:true代表真,false代表假,通常用于条件判断,他们不能和整数互相转换

\booleanah=true;

四、引用数据类型初探

除了8种基本数据类型之外,所有数据都是引用类型数据。他们存的不是数据本身,而是数据在内存中的地址

4.1 String(字符串)

String是Java最常用的数据类型,用来表示一段文字,用双引号包裹:

Stringname="夏明";

4.2 数组

数组是用来装同一类型的数据集合:

int[]num={10,20,30}

五、类型转换

不同类型的数据混在一起运算时会涉及类型转换

5.1 自动转换(隐式)

小范围——大范围,自动完成没安全风险。

5.2 强制类型转换(显示)

大范围——小范围,需要手动写(目标类型),可能丢失精度或溢出

六、常量:不可变变量

有些值在程序运行当中不可以被修改,并且使用final关键字声明的变量叫做常量。

七、命名规范与作用域

7.1 标识符命名规则

  • 必须由字母、数字、下划线、美元符号组成
  • 不能以数字开头
  • 不能使用Java关键字
  • 要区分大小写
  • 长度不限,但不易过长

7.2 命名规范

  • 变量名/方法名:小驼峰命名法(首字母小写,后续单词首字母大写)
  • 类名/接口名:大驼峰命名法(所有单词首字母大写)
  • 常量名:全大写、下划线分隔
  • 包名:全小写,下划线分隔

7.3 变量的作用域

变量只在它所在的大括号范围内有效,除了这个范围就不认识了

publicclassScopedemo{publicstaticvoidmain(string[]args){inta=10;}{intb=20;Syetem.out,println(a);//可以访问System.out.println(b);//可以访问}Syetem.out,println(a);//可以访问System.out.println(b);//编译报错}

八、大坑提醒

  1. 局部变量未初始化就是用
  2. 整数溢出
  3. 浮点比较不用==,普通比较使用误差范围
  4. 忘记long的L和faoat的F
  5. char用单引号,String用双引号
  6. byte/short运算后赋值回原类型
返回列表