第二章 基本数据与运算

第2章 基本数据与运算

2.1 关键字
关键字是指被高级编程语言赋予特殊含义的一些单词,关键字一般都是由小写字母组成。好比是汉语当中的一些专有名词:北京,天安门,兵马俑。不能乱用。

  • 用于定义数据类型的关键字:byte short int long float double char boolean void class interface
  • 用于定义数据类型值的关键字:true false null
  • 用于定义流程控制语句的关键字:if else switch case default while do for break continue return
  • 用于定义访问权限修饰符的关键字:public protected private
  • 用于定义继承关系的关键字:extends implements
  • 用于定义实例对象的关键字:new this super instanceof
  • 用于定义函数类型的关键字:static final abstract synchronized
  • 用于处理异常的关键字:try catch finally throw throws
  • 其他的一些修饰关键字:native assert volatile transient

2.2 标识符

标识符指的是我们在程序中对变量、函数、类、接口、常量所定义的名称,也就是说这些名称是我们自定义的。
标识符必须满足以下组成规则:

  • 标识符可以由数字、字母、下划线 _ 、美元符 $ 组成
  • 标识符不能以数字开头,当然下划线和美元符其实是可以开头的,但不推荐
  • 标识符不能是关键字
  • 标识符也不能是Java内置类的名称标识符可以为任意长度,但必须是一个连续的词
  • 标识符严格区分大小写

标识符命名的规范:

  • 大驼峰式:主要针对类名,接口名。所有单词的首字母大写
  • 小驼峰是:主要针对于变量名,函数名。除了第一个单词之外,其他单词首字母大写
  • 常量规范:所有单词字母大写,单词与单词之间用下划线分隔
  • 包名规范:所有单词字母小写,单词与单词之间用句号 分隔

2.3 注释

注释是用于注解和说明程序的一些程序中的内置文本信息的,但这些内置文本不属于代码的范畴。
所以在对含有注释的源代码进行编译时,所生成的字节码中不含有注释。注释给人看的!
注释主要有三种:

  • 单行注释 //注释内容 直到换行为止
  • 多行注释 /* 注释内容 内部可以进行换行 */
  • 文档注释 /** 注释内容 内部可以进行换行 */ :
  • 文档注释可以被编译器识别,并生成相应的程序说明书。对某一个类进行文档生成时,该类必须是public型

2.4 常量与进制

常量就是指在程序中直接出现的一些数据,也叫字面量
常量都有哪些:

  • 整数常量
  • 小数常量
  • 字符常量:由一个字母、数字、符号被单引号( ‘’ )标识的数据
  • 字符串常量:由若干个字母、数字、符号被双引号( “” )标识的数据
  • 布尔类型常量
  • null常量

2.5进制转化

常见进制转化查阅即可。

2.6变量

指的是变化的量
变量的本质就是在内存中程序所处的进程中的一个临时存储区域。
1.该区域的存储值有限制的。
2.该区域值的变化必须是同类型的或向下兼容的。
3.该区域有其自身的物理内存地址-指针。
4.该区域中 存储值的限制 和 数据的变化类型 由 数据类型 来决定。
5.该区域中 其空间的分配 和 空间的物理内存地址 由计算机底层来决定。
下面是指针相关;

#include<stdio.h>
void main() {
int a = 3; //创建一个普通的整型变量 存3这个常量
int* b; //创建一个一重指针变量 存的是a变量的地址
b = &a;
int** c; //创建一个二重指针变量 存的是b变量的地址
c = &b;
printf("a的地址:%d\n",&a); //打印a的地址 0x123
printf("a的内容:%d\n",a); //打印a空间的内容 3
printf("b的地址:%d\n",&b); //0x456
printf("b的内容:%d\n",b); //0x123
printf("拿着b的内容去找变量a:%d\n",*b); //3
printf("c的地址:%d\n",&c); //0x789
printf("拿着c的内容去找变量b:%d\n",*c); //0x123
printf("拿着c的内容去找变量b,拿着b的内容去找变量a:%d\n",**c); //3
//printf("%d\n",*a);
printf("%d\n",*&*c); //0x123
printf("%d\n",&*&**&c); //0x456
}

结果如下;

a的地址:6422300
a的内容:3
b的地址:6422296
b的内容:6422300
拿着b的内容去找变量a:3
c的地址:6422292
拿着c的内容去找变量b:6422300
拿着c的内容去找变量b,拿着b的内容去找变量a:3
6422300
6422296

2.7运算符

  • +加法 1+2=3 如果加号左右有字符串 则加号为连接符
  • -加法 3-2=1
  • 乘法 32=6
  • / 除法 3/2=1 3.0/2=1.5 如果除号两边都是整数 结果为整数有小数 结果为小数
  • % 取余 9%5=4
  • a++ 后置自增a自身加一,使用原来的值
  • ++a 前置自,a自身加一,使用加之后的值
  • a-- 后置自减,a自身减一,使用原来的值
  • –a 前置自减,a自身减一,使用加之后的值

比较运算符:

运算的结果为布尔类型

  • 大于

  • < 小于
  • = 大于等于

  • <= 小于等于
  • != 不等于

2.8 常见错误

未声明变量,未初始化变量而使用变量

public class Sample {
public static void main(String[] args) {
int a = 3;
int c = a + b;
}
}
Sample.java:4: 错误: 找不到符号
int c = a + b;
^
符号: 变量 b
位置: 类 Sample
1 个错误
public class Sample {
public static void main(String[] args) {
int a = 3;
int b;
int c = a + b;
}
}
Sample.java:5: 错误: 可能尚未初始化变量b
int c = a + b;
^
1 个错误

整型溢出问题

public class Sample {
public static void main(String[] args) {
int a = 3000000 * 3000000;
int b = 3000000 * 3000000;
int c = a + b;
System.out.println(c);//-207937536
}
}

取整错误
一个是小数的问题,小数主要去的是近似值 想要得到一个0.5这个值的话 有可能会得到0.4999999
一个是整数的问题,1/3 = 0.3333 * 3 = 0.99999 数学上1
超出预期的除法问题
/左右两边是整数,结果为整数,如果出现小数则结果为小数
额外冗余的输入对象

import java.util.Scanner;
public class Sample {
public static void main(String[] args) {
Scanner scanner1 = new Scanner(System.in);
System.out.print("请输入整数:");
int num1 = scanner1.nextInt();
//下面scanner2对象就是一个多余的
Scanner scanner2 = new Scanner(System.in);
System.out.print("请输入小数:");
double num2 = scanner2.nextDouble();
/*
Sample.java:3: 错误: 找不到符号
Scanner scanner = new Scanner(System.in);
^
符号: 类 Scanner
位置: 类 Sample
*/
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值