Java从入门到精通(二)· 基本语法
一 变量
1.字面量
计算机是用来处理数据的,字面量
就是告诉程序员:数据在程序中的书写格式。
特殊的字符: \n 表示换行, \t 表示一个制表符,即一个tab
2.变量的含义
变量是用来记住程序要处理的数据的。
变量是内存中的一块区域,当申明一个变量时,这块区域就会被创建,然后专门用来存储这个变量。
变量中的数据,是可以被替换(改变)的。
以下是Java中的基本类型
// byte类型,存储整数,占1个字节,取值范围(-128~127)
byte bNumber=127;
// short类型,短整型,占2个字节
short sNumber=12345;
// int类型,整型,占4个字节
int iNumber=4545121;
// long类型,长整型,占8个字节
long lNumber=12312323432L;
// 浮点型,占4个字节
float fNumber=33.33F;
// 双精度浮点型,占8个字节
double dNumber=4444.44;
// 布尔型,yes or no,占 1 个字节
boolean isOK=true;
// 字符型,存储单个字符,占2个字节
char key='A';
3.关键字
关键字是java中预留的,或已使用了的。这些关键字不能用来作为类名,变量名,否则会报错。
以下是按照顺序排列的Java中的关键字及其含义和用途的说明。
关键字 | 含义 |
---|---|
abstract | 表明类或者成员方法具有抽象属性 |
assert | 断言,用来进行程序调试 |
boolean | 基本数据类型之一,声明布尔类型的关键字 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 声明一个类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循[IEEE 754](https://baike.baidu.com/item/IEEE 754?fromModule=lemma_inlink)算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
4.标识符
标识符是指类或变量的名字。
关于标识符的要求:
- 基本组成:由
数字
,字母
,下划线(_)
或者美元符($)
组成。 - 强制要求:不能以数字开头,不能使用
关键字
作为标识符的名称,并且区分大小写
。
标识符的名称建议规范:
- 满足
标识符规则
,同时建议使用英文,且具有含义。 - 满足
“驼峰模式”
的命名规则(类名使用大驼峰,变量名使用小驼峰)。
二 变量的存储原理
1.二进制(Binary )
计算机中的数据,均是按照二进制
的方式去存储或者表示的。
二进制,即仅包含 0 和 1 的计数法,规则为逢二进一
十进制转二进制,一般可使用除二取余法
计算机中表示数据的最小单元为字节(byte)
,是一个由8个二进制位
组成。
其中,计算机中的每个二进制位称之为位(bit,简称b)
,即有 1 byte = 8 bit
- 对于数字,在计算机底层直接按照二进制的方式存储即可
- 对于字符,则利用
ASCII编码表
作为对照进行存储
ASCII编码表中规定了现代英语,数学字符,和其他西欧字符对应的数字编码
ASCII编码表对照参考地址:ASCII码对照表-完整ASCII码表-我就查查询 (wjccx.com)
字符“A”对应的是65,字符“0”对应的是48。
2.文本图片和声音的存储
1.文本信息的存储就是利用ASCII编码表来进行存储的。
2.图片是按照图片的每个像素点的光学三原色
的值来进行存储,即RGB值
。
3.声音是按照波形图来进行存储的,将波形图映射到一个二进制的坐标系中,来进行存储
至于视频,则是图片和声音的结合体。
三 类型转换
1.自动类型转换
类型范围小
的变量,可以直接赋值
给类型范围大
的变量。
注意:在表达式中,byte
,short
,char
三种类型是直接转换成 int
进行运算的。
在表达式中,表达式的结果的类型,由表达式中的最高类型决定。
2.强制类型转换
强行将类型范围大的变量,赋值给类型范围较小的变量。
以下是示例及语法:
int a=20;
// 转换后的类型 变量名=(转换后的类型)原始变量
byte b=(byte)a;
- 强制类型转换
可能
会造成数据(溢出)或者丢失 - 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
四 运算符
1.基本运算符
"+"符号作用于两个字符串的时候,它的作用是连接符,起结果仍然是一个字符串
2.自增自减
自增自减只能操作变量,不能操作字面量。
自增自减符号非单独使用时
放在变量的前边或者后边时,会有明显的区别。
3.赋值运算
扩展的赋值运算符,隐含了强制类型转换
4.关系运算符
- 判断数据是否满足条件,如果满足,则返回
true
,否则返回false
5.逻辑运算符
6.三元运算符
五 案例:键盘输入
System.out.print("请输入你的姓名:");
Scanner scanner=new Scanner(System.in);
String name = scanner.next();
System.out.println("你的姓名为:"+name);