注释
单行注释
// 单行注释
多行注释
/*
多行注释
多行注释
*/
文档注释
/**
* javaDoc:文档注释
* @Descriotion
* @Author
*/
关键字
标识符
标识符注意点
- 标识符由字母、数字、_(下划线)、$组成,不能以数字开头
- 不能用Java中的关键字
- 标识符采用有意义的简单命名
- 大小写敏感
数据类型
强类型语言:C/C++、Java
弱类型语言:python、JavaScript
java为强类型语言
- 强类型语言在变量的使用有严格的规范,必须先定义再使用
java数据类型分为两大类
代码:
// 八大基本数据类型
//整数
byte num2 = 20;
short num3 = 30;
int num1 = 10;
long num4 = 30L;
//浮点数
float num5 = 50.01F;
double num6 = 3.000202020202;
//字符
char name = 'A';
//字符串, String不是关键字,是类
//布尔值
boolean flag = true;
数据类型扩展
整数扩展
//整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int j = 010;
int k = 0x10;
System.out.println(i); //10
System.out.println(j); //8
System.out.println(k); //16
浮点数扩展
//浮点数扩展 银行业务怎么表示?钱 ==> BigDecimal 数学工具类
//float 有限 离散 舍人误差 大约 接近不等于
//double
//少用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //false
float d1 = 231231231231f;
float d2 = d1+1;
System.out.println(d1==d2); //true
字符扩展
//字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2);
//字符本质是数字 编码Unicode 2字节 中==20013
char c3 = '\u0061';
System.out.println(c3); //a
// 转义字符 如:\t 制表符
**布尔值扩展
if(flag == true){} ==> if(flag){}
其他拓展
String sa = new String("hello");
String sb = new String("hello");
// 比较的是引用数据类型,则比较的是是否是同一个对象(比较地址)
System.out.println(sa==sb);
String sc = "hello";
String sd = "hello";
// 比较的是基本数据类型,则比较的是数值是否一致(比较数值)
System.out.println(sc==sd);
//需要从对象 内存分析
数据类型转换
int i = 128;
byte b = (byte) i; //内存溢出
//强制转换 高->低
//自动转换 低->高
System.out.println(i);
System.out.println(b);
/*
注意点:
1. 不能对布尔类型进行转换
2. 不能把对象类型转换不相干的类型
3. 把高容量转换到低容量时,强制转换
4. 转换时可能存在内存溢出,或者精度问题
*/
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45
char c = 'a';
int d = c+1;
System.out.println(d); //'a'+1 => 98
//==========================================================
//操作比较大的数的时候,注意溢出问题
//JDK7新特性 数字之间可以用下划线分割
int money = 10_0000_0000;
int num = 10;
int total = money*num; //计算时会溢出
long total2 = money*num; //无法解决溢出问题,转换之前已经溢出
long tatal3 = money*((long)num); //成功解决本例中的溢出问题
System.out.println(money);
变量、常量、作用域
变量
java变量是程序最基本的存储单元,其要素包括变量名、变量类型和作用域
type varName [=value]
注意:
每个变量都有类型,类型可以是基本类型,也可以是引用类型
变量声明是一条完整语句,都必须以分号结尾
变量可分为:局部变量,类变量,实例变量
局部变量:在方法中 type varName
类变量:在类属性中 static type varName
实例变量:在类属性中 type varName new() 后才能使用
public class Demo {
//类变量 static
static double salary = 2500;
// 实例变量:从属于对象。不初始化,则为默认值(默认值为0,0.0,false,null)
String name;
int age;
public void add(){
//局部变量:必须声明和初始化
int i;
}
}
常量
可以理解为一种特殊的变量,值被设定后,在程序运行中不允许被修改。
final 常量名 = 值 //常量名一般为大写
* 修饰符 不存在先后顺序
变量的命名规范
所有变量、方法、类名:见名知意
类成员变量、局部变量、方法名:首字母小写和驼峰原则
类名:首字母大写和驼峰原则
常量:大写字母和下划线
运算符
自动类型转换
long a = 123123123123123L;
int b = 123;
short c = 10;
byte d = 8;
double e = 123.123;
System.out.println(a+b+c+d); //long
System.out.println(b+c+d); //int
System.out.println(c+d); //int
System.out.println(a+e); //double
一元运算符
int a = 3;
a = a++;
System.out.println(a); //3
int b;
b = a++ + ++a;
//a=3 ==> a++=3 ==> a=4 ==> ++a=5 ==> b=3+5=8
System.out.println(b); //8
//幂运算 java中不存在2^3==2*2*2
Math.pow(2,3) == 2*2*2
逻辑运算符
- 短路运算
A&&B 运算中如果A为假则不运算B;
A||B 同理;
位运算
三元运算符
x ? y : z
如果x为 true,则结果为 y,否则结果为 z
包机制
- 用于区别类名的命名空间
- 包语句的语法格式:
package pk1[.pkg2[.pkg3]];
- 一般利用公司域名倒置作为包名
- 包的本质是文件夹
- 导入外部包
import 包名
import 包名.* //倒入包下所有的类
JavaDoc
javadoc命令是用来生成自己的API文档的
注释方法见 注释
cmd:javadoc -encoding UTF-8 -charset UTF-8 Doc.java
IDEA使用javaDoc
最上方工具栏 ==> tools ==> Generate javaDoc