Java-Java的前奏
区分是否是程序员的方法之二:push的反义词是什么?非程序员:pull,程序员:pop
关键字
在Java程序中,已经定义好的被预先使用的一些特殊的单词称为关键字 ,一共有50个关键字 (48+2个保留字) ,关键字都是小写的英文单词 。
数据类型关键字
byte :字节类型
short : 短整型
int : 整型
long: 长整型
float :单精度浮点型
double:双精度浮点型
char: 字符型
boolean : 布尔类型
void :空类型
null :空对象
流程控制关键字
if: 条件分支判断
else:条件分支
switch: 条件分支判断
case : 条件分支其中一种情况
default : 默认
break: 退出条件 或 循环
continue : 退出当前循环,继续下一次循环
for : 循环
do: 循环
while : 循环
return:方法的返回
面向对象关键字
class:定义类
interface : 定义接口
extends:继承一个类
implements: 实现一个接口
super : 超级 (用于调用父类的成员)
this: 当前类
instanceof : 判断一个类的类型
import : 导入一个类
package : 定义一个类所在的包
new : 创建对象
修饰符关键字
abstract :修饰抽象类 、抽象方法
final : 修饰常量
native: 本地的 ,也用于修饰变量
private :私有的
protected : 受保护的
public : 公共的
static :静态的
synchronized :修饰方法或代码块,用于线程安全的
transient :瞬时状态
volatile :瞬时状态
异常关键字
try:试一试
catch: 捕获异常
finally: 最后执行的代码块 ( 多出的一个)
throws :定义需要抛出的异常
throw:抛出异常
其他关键字
assert :测试中的断言
strictfp : 其他
enum:定义枚举
保留字
const 、goto
标识符
在Java程序中,所有由程序员自己命名的元素统称为“标识符” 。
标识符的命名
-
标识符由数字、字母、**下划线和$**组成
-
标识符不能以数字开头
-
标识符区分大小写
-
标识符不能是关键字
注意事项:
定义类名的标识符 :首字母必须大写 ,后面的单词的首字母大写,准寻 大驼峰命名法 (例如 XxxXxx ,UserInfo ,Student)
定义方法 标识符: 首字母尽量小写 ,后面的单词首字母大写,准寻 小驼峰命名法(例如 xxxXxxx , getUserName() )
定义变量标识符: 单词全部小写 ( username)
定义包名: 按模板分层级, 使用公司的域名倒写,(例如 com.softeem.xxx 、com.j2008.xxx)
定义项目名: 尽量使用英文 (Java项目 可以使用中文,JavaWeb项目一定使用英文)
常量
在Java中,固定不变的数据量称为常量,常量也有内存,常量存放在被称为“常量池”的内存中 。
常量的分类
整数常量、小数常量、字符常量、字符串常量、布尔常量、空常量六种。
变量
在Java中用于保存一个数据的最小内存单元 称为 “变量” ,变量中每次只能存放一个值 ,变量的数值是可以被改变的。
定义变量
//数据类型 变量名( = 初始值);
int a = 1;
Java的数据类型
Java是一门强类型的编程语言,它不同于一些弱类型的语言(JavaScript ,php,python),Java在声明变量时必须显示的定义变量的数据类型,变量的类型一旦定义,则不能改变 。Java中数据类型分为两大类
1、基本数据类型 : 包括 整数,浮点,字符,布尔类型等
2、引用数据类型 :包括 类,数组,集合,接口等
基本数据类型
整数类型
数据类型 | 关键字 | 字节长度 | 数值范围 |
---|---|---|---|
字节型 | byte | 1个字节=8位 | -128~127 |
短整型 | short | 2个字节=16位 | -32768~32767 |
整型 | int(默认) | 4个字节=32位 | -2的31次方 ~2的31次方-1 |
长整型 | long | 8个字节=63位 | -2的63次方~2的63次方-1 |
注:整数型 ,默认值为0
浮点型
数据类型 | 关键字 | 字节长度 | 范围 |
---|---|---|---|
单精度 | float | 4个字节 | 1.4013E-45~3.4028E+38 |
双精度 | double | 8个字节 | 4.9E-324~1.7977E+308 |
注:浮点型,默认值为0.0
字符型
数据类型 | 关键字 | 字节长度 | 范围 |
---|---|---|---|
布尔类型 | boolean | 1个字节 | true、false |
注:布尔型 默认值 false
常用转义符
对于字符类型中 "\ " 表示转义字符,不会占用内存
\n :表示换行
\t : 表示一个制表符tab
\b: 表示退格
\r: 表示enter
引用数据类型
在Java中除了8个基本数据类型以外的数据类型,都是引用数据类型 ,常用的引用数据类型 包括 类、数组、 接口,String 等。
注:在这里就介绍下引用数据类型吧!后面再详细讲解,因为应用数据类型用到了Java的面向对象编程的知识。
数据转换
为什么需要进行数据转换?
在Java中数据进行计算时 ,必须要求计算的元素的数据类型一致,如果数据类型不一致需要进行转换。
自动类型转换
转换规则: 范围小的类型向范围大的类型转换(从小到大转换)
byte -> short -> int-> long -> float -> double 其中boolean类型不参与转换
char ->int
转换原理: 类型向上提升
强制类型转换
整数之间的转化
// int 类型
int i=1;
// byte 类型
byte j=100;
// 由于i和j 不同类型,不能直接计算,程序会自动将j的类型向上提升为 int
// 所以i +j 之后依然是 int 类型
// 此时 int 的内存 大于 byte 的内存,会出现数据溢出的情况 ,JVM不允许
// byte s = i + j ; // 等号两遍类型不匹配
int y = i + j ;
System.out.println(y);
// 如果一定要使用byte赋值,还有一种办法,就是将两遍类型一致
byte s = (byte)(i + j) ; // 两个数在相加时 会先自动提升为int 然后再相加
整数和浮点数之间的转换
// 整数和小数之前 也会丢失精度
int n2 = 100;
double n3 = 3.5;
int n4 = (int)(n2 + n3);
// 相加时先提升为 double ,然后相加后得到 double
// double是8个字节 不能放在4个字节的长度中,
// (这里好比double 为一桶水, int为一杯水,相当于将一桶水往一杯水中放)
// 只能留住一本水的内容,所以 这里 如果强转成int 则小数会丢失,
System.out.println(n4);
浮点数之间的转换
// float 与 double 类型
float f1 = 3.14f;
double d2 = 3.5;
double dd = f1+d2;
float ff = (float)(f1 + d2);
注:
强转会让数据丢失精度
丢失精度案例
// 强转时会丢失精度
byte n=100;
int m = 30;
byte mm = (byte)( n + m); // 因为最大值为127 再往后就是从最小值开始-128
System.out.println(mm);
// 整数和小数之间 也会丢失精度
int n2 = 100;
double n3 = 3.5;
int n4 = (int)(n2 + n3);
ASCLL码
字符 | int值 |
---|---|
a | 97 |
A | 65 |
0 | 48 |
依次小写字母往后都是数字 ,例如 b为98,c为99… | |
A:65 B:66 C:67 0:48 1:49 2:50… |
字符与数值的转换
// int 与 char类型的转换
// 每一个char类型都有一个字符编码 这个编码参照 ASICC码表
char c='a';
// 自动提升 : 因为 char类型占2个字节, int占4个字节,自动char向上提升
int n = c;
System.out.println(n);
// 先相加 再转换
char c2 = (char)(n+2); // 需要强转
// 字符+字符 直接相加
char c3 = 'a'+'b';
System.out.println((int)c3);