Java 语言基础

69 阅读4分钟

Java 语言基础

变量

计算机内存中的存储空间,是存储数据的基本单元。

定义变量

数据类型 变量名 = 值

int a = 10;

定义方式

  • 先定义后赋值
int a;
a = 10;
  • 定义时赋值
int a = 10;
  • 多个同类型变量声明并赋值
int a, b, c;
a = 10;
b = 10;
c = 10;
可能出现的错误
  1. 尚未初始化变量
// 定义了 a 变量但是没有初始化,也就是没有赋值给 a 变量
int a;
System.out.print(a);
  1. 找不到符号(未定义)
// 没有定义 a 变量
System.out.print(a);

注意点

Java 是强类型语言,变量的类型必须与数据的类型一致。

数据类型

Java 数据类型.png

基本数据类型

整数类型
类型字节二进制取值范围十进制取值范围
byte1字节-2^7 ~ 2^7 - 1-128 ~ 127
short2字节-2^15 ~ 2^15 - 1-32768 ~ 32767
int4字节-2^31 ~ 2^31 - 1-2147483648 ~ 2147483647
long8字节-2^63 ~ 2^63 - 1-9223372036854775808 ~ 9223372036854775807

「int」为整数的默认类型,如需要为「long」类型赋值较大整数时,需要在值得后面添加「L」。

小数类型
类型字节负数取值范围正数取值范围
float4字节-3.4E+38 ~ -1.4E-451.4E-45 ~ 3.4E+38
double8字节-1.7E+308 ~ -4.9E-3244.9E-324 ~ 1.7E+308

「double」为小数的默认类型,如需要为「float」类型变量赋值时,需要在值得后面添加「F」。

布尔类型
类型字节取值范围
boolean1字节true / false

「Java」中的「boolean」不能参与算数运算。

字符类型

学习字符类型首先要知道ASCII码表(参:ASCII码)

类型字节取值范围字符编码
char2字节0 ~ 65535Unicode字符集
  • 字符赋值
char c = 'A';
  • 整数赋值
char c = 65;
  • 进制赋值
char c = '\u0041';
转义字符

「Java」使用转义字符来表示特殊符号。

转义字符描述
\n换行符
\t制表符
\\反斜线
\'单引号
\"双引号

引用数据类型

这里只介绍字符串,其余后面介绍。

字符串
类型取值范围字符编码
String任何" "之间的字面值Unicode字符序列

类型转换

自动类型转换

  • 两种数据类型兼容
  • 目标类型大于源类型

强制类型转换

强制转换变量的类型可能会有损失

  • 两种数据类型兼容
  • 目标类型小于源类型
强制类型转换规则
  • 整数长度足够,数据完整
int i = 100;
byte j = (byte) i; // j = 100
  • 整数长度不够,数据截断
int i = 1000;
byte j = (byte) i; // j = -24
  • 小数强转整数,损失精度
double d = 3.1415926;
int i = (int) d; // i = 3
  • 字符整数互转,数据完整
int i = 65;
char c = (char) i; // c = 'A'
  • 「boolean」不能转换类型

运算符

算数运算符

  • 两个操作数
操作符描述
+求和
-求差
*求积
/求商
%求余
  • 一个操作数
操作符描述
++递增
--递减

赋值运算符

操作符描述
=直接赋值
+=求和后赋值
-=求差后赋值
*=求积后赋值
/=求商后赋值
%=求余后赋值

关系运算符

操作符描述
大于
<小于
>=大于等于
<=小于等于
==等于
!=不等于

逻辑运算符

操作符语义描述
&&符号左右两个操作数,同时为真,结果为真
||符号左右两个操作数,有一个为真,结果为真
!假即是真,真即是假

三元运算符

操作符语义描述
? :布尔表达式?结果1:结果2表达式为真,返回结果1;表达式为假,返回结果2

自动类型提升

  • 算术运算时

    • 当操作数中没有int类型,只有「short」与「byte」类型,计算结果自动提升为「int」类型
    • 其余的,计算结果自动提升为该操作数中的最大类型。
  • 特殊:任何类型与「String」相加(+),实际为拼接,自动提升为String。

控制台输入

程序运行中,可在控制台手动输入数据,再让程序继续运行

使用顺序

  • 导入「java.util.Scanner;」包
  • 创建「Scanner」类型变量
  • 使用「Scanner」类中的方法

补充

  • 如果输入了不匹配的数据,异常:java.util.InputMismatchException
  • 「Scanner」中「next()」方法会自动消去有效字符前的空格,遇到空格停止读取,返回空格前的字符串。「nextLine()」方法遇到回车停止读取,返回「回车键」之前的内容。