java基础
-
-
单行注释://
-
多行注释:/* + 回车
-
-
关键字:
-
标识符:
-
开头应该是字母(A-Z或者a-z),美元符号($),下划线(_)
-
首字母之后可以是字母(A-Z或者a-z),美元符号($),下划线(_)或者任何字符组合
-
不能使用关键字作为变量名或方法名
-
标识符大小写敏感
-
可以使用中文,一般不建议,也同样不建议使用拼音,很low
-
-
数据类型:
-
强类型语言:
-
当你定义一个变量是某个类型,如果不经过代码显式转换(强制转化)过,它就永远都是这个类型,如果把它当做其他类型来用,就会报错
-
-
弱类型语言:
-
你想把这个变量当做什么类型来用,就当做什么类型来用,语言的解析器会自动(隐式)转换。
-
-
java基本类型:(String不是关键字,是一个类)
-
数值类型:primitive type:
-
整数型:
-
byte占1个字节,范围:-128~127
-
short占2个字节,范围:-32768~32767
-
int占4个字节,范围:-2147483648~2147483647
-
long占8个字节,范围:-9223372036854775808~9223372036854775807(使用时数值后面要加L)
-
-
浮点型(小数):
-
float:占4个字节(使用时数值后面要加F)
-
double:占8个字节
-
-
字符类型:
-
char:占2个字节
-
-
-
boolean类型:
-
占一位其值只有true和false两个
-
-
-
java引用类型:reference type:
-
类
-
接口
-
数组
-
-
-
什么是字节:
-
位(bit):计算机内部数据储存的最小单位.例:11001100是一个八位二进制
-
字节(byte):计算机中数据处理的基本单位,习惯上用大写B来表示
-
1B(字节)=8bit(位)
-
字符:shizhi计算机中使用的字符,数字,字和符号
-
1b表示1位
-
1Byte表示一个字节 1B=8b
-
1024B=1K
-
1024K=1M
-
1024M=1G
-
-
扩展:
-
整数:
-
进制:
-
int a = 0b10;二进制==2
-
int a = 10;十进制==10
-
int a = 010;八进制==8
-
int a = 0x10;十六进制==16
-
-
-
浮点:
-
存在有限,离散,舍入误差,大约,接近但不等于等属性
-
最好完全避免使用浮点数进行比较
-
实在需要进行比较,可以使用BigDecimal(数学工具类)
-
-
字符:
-
所有的字符本质还是数字
-
对应编码代表对应字符
-
转意字符(放在字符串中):
-
-
Less is More!!代码需要简洁
-
-
类型转换:
-
由于Java是强类型语言,所以数据进行运算时没需要类型转换
-
运算中,不同类型的数据要转换成同意类型在进行运算
-
规则是:低转到高(自动转换),高转低(强制转换,可能存在内存溢出或者精度问题 )
-
(低)byte-->short,char-->int-->long-->float-->double(高)
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
操作相对较大的数时,注意类型转换,精度,内存溢出问题
-
-
变量;
-
变量:相当于位子是确定的,内容不确定的空间,简称可以变化的量
-
由于Java是强类型语言,每个变量都必须声明其类型
-
是程序中最基本的存储单元,要素包括变量名,变量类型和作用域
-
作用域:
-
类变量:
-
方法外,类以内,前面带关键字static
-
从属于类,一起出来一起消失
-
不用声明类的变量,直接调用
-
-
实例变量:
-
方法外面,类里面,从属于对象
-
如果不自行初始化,除了基本类型,其余默认null为默认值,布尔值是false
-
-
局部变量:
-
写在方法里面的变量,生命周期在方法内,且需要声明
-
-
-
建议
-
可以使用逗号隔开多个同类型的变量,但是不建议使用(程序可读性)
-
每个变量都有自己的类型,可以是基本类型,也可以是引用类型
-
变量名必须是合法的标识符,且变量声明是一条完整语句,每个声明都必须以分号结束
-
-
-
常量(Constant):
-
初始化就不能再改变的值!不会变动的值
-
可以理解成一种特殊的变量,一旦设定后,运行过程中不允许被改变
-
常量名一般使用大写字符
-
-
命名规范:
-
所有变量,方法,类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary
-
局部变量:首字母小写和驼峰原则:monthSalary
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:MonthSalary
-
方法名:首字母小写和驼峰原则:monthSalary(),month()
-
-
基本运算符
-
算术运算符:+,-,*,/,%,++,--
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!= instanceof
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^,~,>>,<<,>>>
-
条件运算符:?,:
-
扩展赋值运算符:+=,-=,*=,/=
-
-
自增自减运算符:
-
自增:a++(运行后加),++a(运行前加)
-
自减:a--(运行后减),--a(运行前减)
-
-
Math类:
-
是java里面的数学类,一些相应的数学方程和方法,可以调用Math类的方法执行
-
或者自己写工具类,作引用
-
-
逻辑运算符:
-
&&([与]and):(a && b)两个变量都为真,结果才为真(短路运算)
-
||([或]or):(a || b)两个变量有一个为真,结果为真(短路运算)
-
!([非]取反):(!a)如果为真,结果为假,如果为假,结果为真
-
-
位运算符:
-
与位计算,效率极高!!!
-
a = 0011 1100 ,b = 0000 1101
-
&:a & b = 0000 1100 (a与b两个为1,才为1,不是为0)
-
|:a | b = 0011 1101 (a与b都是0才为0,有一个1以上才为1)
-
^:a ^ b = 0011 0001 (a与b相同为0,否则为1)
-
~:~ b = 1111 0010 (取反)
-
0000 0000 == 0
-
0000 0001 == 1
-
0000 0010 == 2
-
0000 0011 == 3
-
0000 0100 == 4
-
0000 1000 == 8
-
0001 0000 == 16
-
">>" = *2
-
"<<" = /2
-
-
三元运算符:
-
x ? y : z(如果 "x == true",结果为 "y",否则为 "z")
-
-
扩展运算符:
-
a += b: a = a + b
-
a -= b:a = a - b
-
a *= b:a = a * b
-
a /= b:a = a / b
-
-
字符连接符:
-
" " + 10 + 20 == 1020(字符串在前,后面+变成字符串连接符)
-
10 + 20 + " " == 30(字符串在后,前面+变成运算符)
-
-
包机制:
-
尽量不要让包名重复,或者自己引用自己
-
java的包机制主要用于区别类名的命名空间
-
包语句语法格式:packsge pkg1 [. pkg2 [. pkg3 ......] ]
-
一般利用倒置的域名做包名: com.baidu.www.....
-
为了使用某一个包的成员,我们需要在java程序中明确导入该包,使用"import''语句实现
-
import packsge pkg1 [. pkg2 [. pkg3 ......] ].(classname | *);
-
-
JavaDoc生成文档:
-
javadoc命令是用来生成自己的API文档
-
/** + 回车
-
参数信息:
-
@autor:作者名
-
@version:版本号
-
@since:指明需要最早使用的jdk版本
-
@param:参数名
-
@return:返回值情况
-
-
-