注释
单行注释 ://
多行注释:/* xxxxx */
JavaDoc:文档注释 /** xxxxxx */
标识符
关键字
-
所有标识符以 大写字母 小写字母 美元符号$和下划线_开头
-
首字符后可以由 字母 美元符号$ 下划线_ 任意组合
-
不能使用关键字作为变量名
-
标识符大小写敏感
数据类型
强类型语言
- 要求变量的使用要严格规定,所有变量都必须定义才能使用
java数据类型两大类
基本类型
-
数值类型
byte:1个字节 (8bit) -128 - 127
short:2个字节
int:4个字节
long:8个字节 //long num = 30L(L用来区分long类型)
float:4个字节 //float num = 5.1f(f用来区分float)
double:8个字节
char:2个字节 //代表一个字 ‘字’
boolean类型:1个字节 只有true和false
引用数据类型
- 类
- 接口
- 数组
java拓展
整数拓展
0b:二进制
0:八进制
0x:十六进制
浮点数拓展
银行业务怎么表示
float f = 0.1f;
double d = 1.0/10;
f==d false
float d1 = 1231314214412f;
float d2 = d1+1;
d1==d2 true
总结:float 有限 离散 舍入误差 接近但不等于
最好不适用浮点数进行比较
用一个类 Big Decimal(数学工具类)
字符拓展
-
所有的字符本质还是数字
-
编码 Unicode 2字节 0----65536个字符
-
a的unicode编码 ‘\u0061’
-
转义字符 \t \n 例:“Hello\tworld\n”
类型转换
byte, short ,char -> int -> -> long -> float -> double
强制转换
高—>低
int i =1;
byte a = byte(i);
自动类型转换
低 ----> 高
int i =128;
double b = i;
注意点
- boolean不能进行转换
- 不能把对象类型转换为不相干的类型
- 在高容量转换到低容量,强制转换
- 转换可能存在内存溢出,或者精度问题!
- JDK7新特性:数字之间可以用下划线分割 : 100=1_0_0
- 操作数比较大 注意溢出问题
- 用大写L(容易辨别)
变量
//实例变量
int float double 默认值为0 0.0
//变量类型 变量名字 = new HelloWorld()
helloWorld.name;
//布尔值:默认为flase
//除了基本类型,其余都是默认值null
//类变量 static
static double salary =2500;
System.out.println(salary);//可以不用new
//常量 final 运行过程中不能被改变
static final double pi = 3.14;//修饰符不存在先后顺序
命名规范
- 类成员变量 (首字母小写和驼峰原则):monthSalary
- 局部变量 (首字母小写驼峰原则)
- 常量:大学字母和下划线 : MAX_VALUE
- 类名:首字母大写和驼峰原则:Man、GoodMan
- 方法名: 首字母小写和驼峰原则:run(), runRun()
运算符
-
快捷键:ctrl + d:复制到下一行
-
多个操作数相加,以最高位为准
byte, short ,char -> int -> -> long -> float -> double
-
取余:%
-
&& 会短路:(c<4)&&(c++)
Math.
pow():幂函数
位运算
二进制
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
面试题
<< 左移 >> 右移
2*8怎么运算最快?
2<<3
效率极高
字符串连接符
连接的类型只要有String 就会是连接的作用
System.out.println(""+a+b);
System.out.println(a+b+""); //先运算
1020
30
三元运算符
score < 60 ? "及格" : "不及格";
包机制
一般利用公司域名倒置作为包名
com.baidu.www
为了能够使用某一包的成员,我们需要在java程序中导入
import …*; 导入报下包下所有类