学习至:
1. 注释
//单行注释
//**
多行注释
*/
2. 标识符
Java语言中,对于变量,常量,函数,语句块的名字,我们统统称之为Java标识符。标识符是用来给 类、对象、方法、变量、接口和自定义数据类型命名的。
-
必须以字母、$ 或者_ 开头(汉字也可以但不建议)
int 1a; //×
int $a; // √
int _skf; // √
int 数字a; // √ -
首字符后可以是字母、$、_ 或数字的任意组合(同样可以是汉字)
-
标识符严格区分大小写(?)
string // C#
String // Java -
不能以关键字作为标识符
-
可以使用汉字和拼音,但是不建议这样使用
3. 数据类型
整数类型
-
byte:1字节,表示范围-128~127
-
short:2字节,表示范围-32768~32767 (正负三万左右)
-
int:4字节,表示范围-2147483648~2147483647(正负21亿左右)
-
long:8字节,表示范围-9223372036854775808~9223372036854775808(很大),需要在数值后加 上L来表示使用了long类型,例如646889715125468L
long a = 1L;
进制前缀:
-
二进制: 0b
-
八进制: 0
-
十进制: 无
-
十六进制: 0x
浮点类型
-
float:4字节,数值后需要加上F,例如86.146F
-
double:8字节
拓展: float是离散的,近似的,精度为6-7位,避免直接使用float类型变量进行比较!!!!!
字符类型
-
char:2字节
注意:字符串String不是关键字,是类 3.1.2
Boolean类型
占用根据条件而变,只有true和false
4. 类型转换
高转低时,需强制转换:(类型)变量名
float f1 = 3.5f;
int i1 = (int)f1; //结果i1=3,精度丢失
int a = 128;
byte b = (byte)a; //结果a=128,b=-128,内存溢出
低转高时,会自动转换,不需要操作
int a =8
double b = a;
注意:
-
不能对布尔类型进行转换;
-
不能把数据类型转换为不相干的类型;
-
转换的时候可能存在内存溢出和精度问题;
小技巧:
数字之间可以用下划线分割,不影响数据大小,方便阅读。
int money = 100000000;
int money = 1_0000_0000;
5. 转义字符
常用转义字符
转义字符 | 意义 | ASCLL码值(十进制) |
---|---|---|
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
' | 代表一个单引号 | 039 |
" | 代表一个双引号字符 | 034 |
\ | 代表一个反斜线字符''' | 092 |
? | 代表一个问号 | 063 |
\0 | 空字符(NUL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 十六进制所代表的任意字符 | 十六进制 |
6. 变量
java是强类型语言,每个变量都需要声明类型;
java是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域;
局部变量:定义在方法里,只在方法内可用
实例变量:定义在方法的外边,类的里边。从属于对象,可不初始化,默认值为 数值型(0,0.0,...) ,布尔型 false, 其余均为null
类变量:定义在方法的外边,类的里边,前边需加关键字 static 。从属于类,与类共存亡
7. 常量
关键词 final
常量名 一般全大写,赋值后无法修改
8. 命名规范
见名知意
类成员变量、局部变量、方法名:首字母小写和驼峰原则(第一个词首字母小写,后续词首字母大写)eg : monthSalary
类名:首字母大写和驼峰原则(所有词首字母均大写)eg : Hello、HelloWorld
常量:大写字母和下划线 eg : MIN_SALARY
9. 运算符
-
算术运算符:
-
二元运算符: +、- 、*、/、%(取余数,也叫模运算)
-
一元运算符: ++(自增)、--(自减)
注: b=a++ 先赋值,再自增
b=++a 先自增,再赋值 (--同理)
-
-
赋值运算符:=
-
关系运算符:> 、< 、>=、<=、==、!= ( MySQL 中等价于<> )、instanceof
-
逻辑运算符:&&(与)、||(或)、!(非)
-
位运算符:&、|、^、~、>>(右移)、<<(左移)、>>>
eg: A=0011 1100
B=0000 1101
A&B = 0000 1100 (与: 同为1才为1,否则为0)
A|B = 0011 1101 (或: 同为0才为0,否则为1)
A^B = 0011 0001 (异或: 相同为0,否则为1)
~B = 1111 0010 (取反)
<< 相当于 *2 ; >> 相当于/2, 如计算2^3 可直接输出 System.out.println(2<<3),效率极高
-
条件运算符(三元运算符): ? :
x ? y : z 若x为真,返回y,否则返回z
-
扩展赋值运算符(双目运算符: +=、-=、*=、/=
eg: a+=b :a=a+b
a-=b: a=a-b
优先级由高到低: () 算术运算符(一元 二元) 关系运算符 逻辑运算符 赋值运算符
10. 包机制
语法格式:
package pkg1[.pkg2[.pkg3...]];
一般利用域名倒置作为包名;
导入包:
import package pkg1[.pkg2[.pkg3...]]
import package pkg1.* //*是通配符,表示导入pkg1路径下所有的类
11. Java Doc
javadoc命令用于生成自己API文档。
注释加在一些代码块上面,如类、方法等。
其他
idea中 Ctrl + D 复制当前行至下一行
整数值运算时,有long,结果为long, 没有long,结果为int
小数运算时,有double,结果为double
工具类函数:Math.pow(3,2),用于计算3的二次方
字符串链接: 用+ , 字符串先出现,后续也识别为字符串, 运算在前则先运算才识别成字符串,eg:
int a=10;
int b=20;
System.out.println(""+a+b);
System.out.println(a+b+"");
输出为1020
30