1.注释
// 单行注释
/* 多行注释 */
/**
* 文档注释
*/
2.标识符和关键字
50个关键字(keywards):在语言中有特殊的含义成为语法的一部分。
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
标识符要求:
- 所有的标识符都应该以字母,美元符($),或者下划线(_)开始;首字符之后可以是字母,美元符,下划线或者数字的任意组合
标识符命名规范(驼峰原则):
类名和接口名:每个单词的首字母大写,其余为小写。(大驼峰)
方法名:第二个单词起的首字母为大写,其余全为小写。(小驼峰)
常量名:基本数据类型的常量名全部使用大写字母,字母与字母之间用下划线分隔。
注意:不能使用关键字作为变量名或方法名,标识符是大小写敏感的,可以使用中文命名,但不建议
3.数据类型
-
JAVA属于强类型语言,要求变量的使用要严格符合规定,所有变量都必须先定义后使用。
-
特点:安全性强,速度低
java数据类型分为两类:
基本类型
数值型:
- 整数类型:
1. byte:存储空间:1个字节;表示范围:-128 ~ 127
2. short:存储空间:2个字节;表示范围:-2^15 ~ 2^15-1
3. int:存储空间:4个字节;表示范围:-2^31 ~ 2^31-1
4. long:存储空间:8个字节;表示范围:-2^63 ~ 2^63-1;要在数字后面+L
- 浮点数类型:
1. float:存储空间:4个字节;表示范围:1.4E-45 ~ 3.4028235E38;要在数字后面+F
2. double:存储空间:8个字节;表示范围:4.9E-324 ~ 1.7976931348623157E308
字符型:
char:字符类型占用2个字节
布尔型:
boolean:布尔类型:只有true和false
注意:在符合JVM规范的虚拟机中,
如果boolean是单独使用:boolean占4个字节。
如果boolean是以“boolean数组”的形式使用:boolean占1个字节。
引用类型
-
class:类
-
interface:接口
-
[]:数组
字节
概念:位(bit)是计算机内部数据存储的最小单位;字节(byte)是计算机中数据处理的基本单位,用大写B表示。
> 1B (字节)=8b (位)
> 1KB (千字节)=1024B
> 1MB (兆字节)=1024KB
> 1GB (吉字节 ,又称“千兆”)=1024MB
> 1TB (万亿字节 ,太字节)=1024GB
> 1PB(千万亿字节 拍字节)=1024TB
> 1EB( 百亿亿字节 艾字节)=1024PB
> 1ZB ( 十万亿亿字节 泽字节)= 1024 EB
> 1YB ( 一亿亿亿字节 尧字节)= 1024 ZB
拓展
- 进制
- 二进制:0b开头
- 八进制:0开头
- 十进制:无
- 十六进制:0x开头
- 浮点数:float double
- 特点:有限,离散,存在舍入误差,接近但不等于
- 结论:最好完全避免使用浮点数进行比较
- 字符
- 所有的字符本质还是数字
- Unicode编码 65536 底层:U0000~UFFFF 例:\u0061
- 转义字符
- \t:制表符
- \n:换行
- \ddd:1~3位 8进制数所代表的任意字符
- \xhh:1~2位16进制数所代表的任意字符
4.类型转换
低>--------------------------------------------->高
byte,short,char->int->long->float->double
运算中不同类型的数据先转换为同一类型,然后进行运算
超过数值范围会导致内存溢出
强制类型转换:(类型)变量名 高 --> 低
自动类型转换:自动转换 低 --> 高
操作比较大的数的时候,注意溢出问题;数字之间可以用下划线分割
注意:
- 不能对Boolean值进行转换;
- 不能把对象转换为不相干的类型;
- 高转低,强制类型转换;
- 转换的时候可能存在内存溢出或者精度问题
5.变量、常量、作用域
变量:程序中最基本的存储单元,要素包括变量名,变量类型和作用域
变量声明:数据类型(type) 变量名(varName) = 值(value);可以使用逗号隔开来声明多个同类型变量
常量:初始化后不能再改变的值,关键字:final;定义:final 常量名 = 值
作用域:
类变量:关键字:static,从属于类
实例变量:在类里,从属于对象
局部变量:在方法里,必须声明和初始化值
6.基本运算符
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:? :
- 扩展赋值运算符:+=,-=,*=,/=
7.自增自减运算符
++a:先自增,再赋值;a++:先赋值,再自增;- -a和a- -同理
8.逻辑运算符、位运算符
逻辑运算符
逻辑与:&&
逻辑或:||
逻辑非:!
短路运算:在逻辑与,逻辑或中,若逻辑运算符前面的表达式能得出结果,则不执行逻辑运算符后面的表达式
位运算符
按位与:A&B
按位或:A|B
按位异或:A^B
按位取反:~A
按位左移:<<:等价于*2
按位右移:>>:等价于/2
位运算的特点:效率极高!
9.三元运算符
x ? y : z
如果x==true,结果为y,否则为z