[TOC]
## 包名称
包名称 :com(cn).igeek(公司或者组织的名字).模块名称(admin)
## 类名称
* 类名称(对现实生活中同一种(同一类)事物的一种描述,是抽象上概念上的定义)
* 一般描述类的时候,描述的就是类的属性还有方法
## 关键字
* 关键字:就是给不同的单词给一些定有的方法
* public 表示共有的,访问权限修饰 private私有的 protected 受保护的 default 默认的
* static 静态的 void 表示没有返回值
## 保留字
保留字:当前JDK版本 不是java关键字 ,但是在以后版本升级中可能会成为java的关键字 。
## 标识符
1.命名规范:
* A-Z a-z和_以及$还有数字 不能包含空格,
* 不能使用Java关键字,不能以数字开头
2.例子
test com.igeek.day01 凡是这种可以自己取名字的地方,都叫做java的标识符
## 常量
* final 修饰的变量 叫做常量,常量的值是不能发生更改的
* 常量的命名规范 :所有单词的字母都是大写,多个字母用_隔开
# 两大类
## 1.基本数据类型(4类8种)
### 1.1整型:
byte 1 (-128~127) 2(7)次方 ~ 2(7)次方-1
short 2 (-32768~32767) 2(15)次方 ~ 2(15)次方-1
int 4 2(31)次方 ~ 2(31)次方-1 (java中默认的数据类型)
long 8 2(63)次方 ~ 2(63)次方-1 (需要在 后面加上L或者l)
### 1.2浮点型:
float 4 (需要在后面加上F或者f) 小数点和整数部分一共有八位
double 8 (Java 中小数默认的数据类型) 有效位数16位
### 1.3布尔类型
boolean true,false
### 1.4字符型
char 1|2 '只能放一个字符'
## 2.引用数据类型(对象类型)
string,数组,对象,enum ...
## 数据类型转换
### 数值运算中的类型转换
例1.
范围小得数据类型会自动转换成大的数据类型
```
byte a = 10;
int b = 20;
int c = a+b;//30
```
> 该事例中,byte取值范围为-128~127,int取值范围为2的31次方~2的31次方-1。
> 故运算中a自动转成int型,得到结果也为int型。
例2.
强制类型转换,可能会造成精度降低或者数据丢失。
```
int a = 1;
byte b = 127;
byte c = (byte)(a+b);//将a+b的结果强制转换为byte型
//c = -128
```
> 该例中,byte范围是-128~127,当值的范围溢出时,将取值范围理解成收尾相连的一个圆,则在上限127的基础上再增加1,就回到下线-128
### 字符与数字运算中的类型转换
例1.
将字符a转成对应ascii码的值做运算,输出int型数字
```
char c = 'a';
int i = 10;
System.out.println(c+i);
//将a转成对应的ascii码 int型97,再与10相加,得int型107
```
例2.
特殊的强制转换。
当byte、short、char三者做运算时,统一转换成int型再运算。
```
byte b = 2;
short s =3;
char c ='A';
char result = (char) (b+s+c);//F ascii=2+3+65
```
> 在java中 == 用于比较基本数据类型 比较的是==两边的值是否相等。
> 当比较对象的时候 == 表示比较对象的内存地址