Java基础语法
目录
注释、关键字、标识符
注释:
-
单行注释://……
-
多行注释:/**/
-
文档注释(JavaDoc):/**
*
*/
关键字:
标识符:
类名,变量名,及其方法名都被称为标识符。
标识符注意点:
-
所有的标识符都应该以字母、美元符($)、或者下划线(_)开始
-
首字符之后可以是字母、美元符($)、下划线(_)或数字的任何字符组合
-
不能使用关键字作为变量名或方法名
-
标识符是大小写敏感的
-
可以使用中文命名,但一般不建议,也不建议使用拼音,很Low!
数据类型
强类型语言:要求变量的使用符合规定,所有变量都必须先定义后才能使用
弱类型语言
Java的数据类型分为两大类:
基本类型(primitive type)
- 数值类型:
1.整数类型:
byte,占1个字节,范围:-128~127
short,占2个字节,范围:-32768~32767
int,占4个字节,范围:-2147483648~2147483647
long,占8个字节(值后带L),范围:-9223372036854775808~9223372036854775807
2.浮点类型:
float,占4个字节(值后带F)
double,占8个字节
3.字符类型:char,占2个字节
- boolean类型(占1位,其值只有true和false)
引用类型(reference type)
- 类
- 接口
- 数组
数据类型拓展
数据拓展
进制:
二进制0b、八进制0、十六进制0x
int i = 010;//八进制
int i1 = 0x10;//十六进制,0~9、A~F
浮点数拓展
float & double 的描述:有限、离散、存在舍入误差、无法精确表示,是大约数、接近但不等于
(最好完全避免使用浮点数进行比较)
BigDecimal——数学工具类(精确比较使用)
原因:表示的字长是有限的
布尔值拓展
boolean flag = true;
if(flag == true){}
if(flag){}
(两个if表达式相等,因为第二个if表达式中flag默认等于true)
字符拓展
所有的字符本质还是数字
其中涉及到编码(Unicode编码,占2字节,最多表示65536个字符)
存在一个Unicode表。区间为U0000~UFFFF
转义字符:\t、\n等
类型转换
运算中,不同类型的数据先转化为同一类型,然后进行运算。
强制类型转换:(类型)变量名,高--->低
自动类型转换:低--->高
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换到低容量的时候,强制转换
-
转换的时候可能存在内存溢出,或者精度问题
JDK7新特性:数字之间可以用下划线分割。例:int i = 10_0000_0000
变量、常量、作用域
注意事项:
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域:
类变量:关键词static。从属于类,随类生存
实例变量:方法外面,类里面。从属于对象:如果不自行初始化,变成这个类型的默认值
变量类型 变量名字 = new 类名
布尔值:默认值是false
除了基本类型,其余的默认值都是null
局部变量:存在于方法里面
常量:
final(修饰符,不存在先后顺序) 常量名 常量值
常量名一般用大写
变量的命名规范:
-
所有变量、方法、类型:见名知意
-
类成员变量:首字母小写和驼峰原则
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线
-
类名:首字母大写和驼峰原则
-
方法名:首字母小写和驼峰原则
运算符
算数运算符:+,-,*,/,%,++,--
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=instanceof
逻辑运算符:&&,||,!
-
短路运算:当a&&b时,若a为假,则跳过判断b,运算结果为false
条件运算符——? :
拓展赋值运算符:+=,-=,*=,/=
-
字符串连接符:+ 若符号两方任意一方出现String类型,则会把另外一个操作数都转换为String类型进行连接
位运算符:&,|,^,~,>>,<<,>>>
A = 0011 1100
B = 0000 1101
A&B = 0000 1100(相同位,数值相异取0,数值相同则取相同数)
A|B = 0011 1101(相同位,数值相异取1,数值相同则取相同数)
A^B = 0011 0001(相同位,数值相同取0,数值相异取1)
~B = 1111 0010(取反)
<< *2 (左移)
>> /2 (右移)
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
幂运算:使用 Math.pow(数,次方)。例:2的3次方
double pow = Math.pow(2, 3);
包机制
包的本质就是一个文件夹
-
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
- 包语句的语法格式为:
package pkg1[. pkg2[. pkg3…]];
- 一般利用公司的域名倒置作为包名:www.baidu.com----->com.baidu.www
-
为使用某个包的成员,需在Java程序中导入该包,使用import语句完成此功能:
import package1[.package2…].(classname|*);
*为通配符,使用时导入此包下的所有的类
-
类在包的下面,包必须在最上面
JavaDoc
-
javadoc命令是用来生成自己API文档的
-
参数信息
-
@author 作者名
-
version 版本号
-
since 指明需要最早使用的jdk版本
-
param 参数名
-
return 返回值情况
-
throws 异常抛出情况
-
-
生成文档
进入所在文件夹后使用cmd命令生成。
-encoding UTF-8 -charset UTF-8
让encoding(编码)和charset(字符集编码)以UTF-8显示。为了多显示一点中文,遇到乱码问题解决掉。