Java基础语法
注释
-
基本编程习惯。
-
写给人看,不会被执行。
IDEA颜色设置
路径:file-settings-Color Scheme-java-Comments(即注释)
Block comment:多行注释
Line comment:单行注释
JavaDoc:文档注释
如图

单行注释
//+内容
可以注释一行内容
如图

多行注释
/ * +内容+ * /
可以注释一段内容
如图

文档注释
/** +内容+ */
/**
*
*/
具有一定功能,可以加参数,配合JavaDoc使用。
如图

标识符
定义:
用来表示类名,变量名,方法名,类型名,数组名,文件名的有效字符序列
注意:
- 所有的标识符都应该以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-z或者a-z),美元符($)、下划线0或数字的任何字符组合
- 不能使用关腱字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符举例:age.$salary、__1_value
- 非法标识符举例:123ab、-salary、#abc
- 可以使用中文或拼音命名但不建议
关键字
定义:
先定义的,有特别意义的标识符
如图

数据类型
原因:java是强类型语言
强类型(定义)语言:要求变量使用严格规定,所有变量都必须先定义才能使用。
两大类型:
基本类型,引用类型
如图

基本数据类型
如图

计算机数据存储单位
- 位(bit):最小单位
- 字节(byte):基本单位,常用B表示
1字节=8位
即1B(byte)=8b(bit )
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
数据类型扩展
整数扩展
进制

转换成十进制代码:
二进制:0b
八进制:0
十六进制:0x
如图

浮点数扩展
大概是由于转换成二进制时的误差原因,浮点数无法精确运算比较。
如图

字符扩展
- 所有字符本质是数字
- \u表示转译
如图

- 转义字符
\开头,不同于字符原有的意义
如图


布尔型扩展
- if默认是true
如图

类型转换
包括强制类型转换和自动类型转换
高低级别如图

强制转换:
高——低
(类型)+变量名
自动转换:
低——高
如图

注意:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4·转换的时候可能存在内存溢出,或者精度问题
变量、常量
变量
- java是一种强类型语言,每个变量都必须声明其类型
- java变量是程序中最基本的存储单元,包括变量名、变量类型和作用域
定义
type varName [ =value ] [ {,varName[=value]}];
//数据类型+变量名=值;可以使用逗号隔开来声明多个同类型变量,但不建议。
注意:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
分为类变量(静态变量 )、实例变量(两者属于成员变量)、局部变量
public class Variable{
static int allClicks=0; //类变量
String str="hello world";//实例变量
public void method(){
int i=0; //局部变量
}
}
成员变量
-
在方法体之外,类体声明的变量,叫做成员变量
-
作用范围是整个类
类变量
-
用static声明,必须在方法之外
-
从属于类,与类同步产生消失
-
默认值和实例变量相似
实例变量
- 从属于对象;如果不自行初始化,即为这个类型的默认值
- 数值型变量的默认值是0;布尔型变量的默认值是false;除了基本类型其余都是null
局部变量
-
类的方法中的变量
-
没有默认值,必须经过初始化才可以使用
如图

常量
- 常量(Constant):初始化(initialize)后不能改变
- 一般用大写字符
- 关键字:final
final+常量名=值
如图

命名规范
所有变量、方法、类名原则:见名知意
驼峰原则:除了第一个单词的首字母小写,后面的单词首字母大写
类成员变量:首字母小写和驼峰原则: monthSalary
局部变量:首字母小写和驼峰原则
常量:大母和下划线: MAX_VALUE
类名:首字母大写和驼峰原则: Man, GoodMan
方法名:首字母小写和驼峰原则: run(), runRun()
运算符
算术运算符:
+,-, *, /:加减乘除
如图

运算中数据类型
整数运算:只要没有long类型参与,即为int类型
如图

确认方式




++, --(自增,自减)
一元运算符
-
++自增:操作数的值增加1
-
(++a,--a):先自增或者自减,再赋值
-
--自减:操作数的值减少1
- (a++,a--):先赋值,再自增或者自减
如图

%(取余,模运算)
更多运算:
使用工具类(如Math类)实现
如幂运算如图

关系运算符:
>
<
>=
<=
==(等于用两个等号)
!= (不等于)
instanceof
逻辑运算符:
&&
//短路与
||
//短路或
!
//逻辑非
具体如图

德·摩根定律
!(A&&B)与!A||!B等价
!(A||B)与!A&&!B等价
原因:!(非)的优先级高
如图

短路逻辑运算符(条件操作)
&&
//短路与
||
//短路或
短路运算
-
c 的值仍为 5,因此第二个判断没有执行,即先判断 c<4 为 false, d 的结果必为false
-
运算符的第一个表达式为false,则第二个表达式就不会执行
如图

非短路运算符(逻辑操作)
&
//逻辑与
|
//逻辑或
!
//逻辑非
非短路运算
- c 的值为 6,因此第二个判断被执行,即无论第一个表达式无论能否确认,第二个表达式都会执行
如图

区别
-
条件操作只能操作布尔值
逻辑符操作不仅能够操作布尔值,而且还可以操作数值型
-
条件操作会产生短路
逻辑操作不会产生短路
-
短路运算能够采用最优化的计算方式从而提高效率
位运算符:
位逻辑运算符
对应二进制
&
//与
//同时为 1,结果才为 1,否则为 0
|
//或
//只要有一个为 1,那么结果就为 1
// 都为 0,结果才为 0
^
//异或
//相同(同时为 0 或同时为 1)时,结果为 0
//不相同,结果则为 1
~
//非(一元运算符)
// 将1 改为 0,0 改为 1
具体如图

位移运算符
>>
//左移位运算符
二进制形式的数字向左移动对应的位数
>>
//右移位运算符
二进制形式的数字向右移动对应的位数
规律
**M<<n=M*2的n次幂 **
M>>n=M/2的n次幂
如图

复合位赋值运算符
&=
//与赋值
|=
//或赋值
^=
//异或赋值
-=
//取反赋值
<<=
//左移赋值
>>=
//右移赋值
赋值运算符:
简单赋值运算符:
=
扩展赋值运算符:
+=
//加后赋值
-=
//减后赋值
*=
//乘后赋值
/=
//除后赋值
%=
//取模后赋值
如图

复合位赋值运算符
同上
条件运算符:
三元运算符
?:
x?y:z
//如果x==true,则结果为y,否则结果为z
如图

优先级
优先级记忆方法:单目乘除为关系,逻辑三目后赋值
如图

字符串连接符
+
//连接不同的字符串
- 连接字符串和数值时,数值自动转换成字符串型
- 圆括号的优先级最高,可以实现先计算再转换成字符串型
如图

包机制
- 为了更好地组织类,运用包机制,用于区分类名的命名空间
- 包的本质就是文件夹
- 一般利用公司域名倒置作为包名
- 假如凯申物流有限公司的域名为www.Kai-shekwl.com 那么对应包名为com.Kai-shekwl.www
- 尽量不要让包名重复
语法格式
package pkg1[.pkg2[.pkg3...]];
使用“import”语句在Java程序中明确导入包
import package1[.package2...].(classname|*);
import package1[.package2...].*//导入该包下所有类
JavaDoc
-
javadoc命令是用来生成自己API文档的
-
参数信息
- @author作者名
- @version版本号
- @since指明需要最早使用的jdk版本
- @param参数名
- @return返回值情况
- @throws异常抛出情况
-
加在类上的是类的注释,加在方法上的是方法的注释
如图

生成JavaDoc文档
效果如图

打开index.html文件

运用命令提示符(cmd)
javadoc +参数+java文件
如javadoc -encoding UTF-8 -charset UTF-8 Doc.java
运用IDEA
- 工具栏 tool选择Generate JavaDoc
- output directory:生成文档的位置
- Locale语言类型:zh-CN (即中文)
- Other command line arguments:JavaDoc的参数:如下
-encoding UTF-8 -charset UTF-8
//或者
-encoding UTF-8 -charset UTF-8 -windowtitle "你的文档在浏览器窗口标题栏显示的内容" -link http://docs.Oracle.com/javase/7/docs/api
如图

最后:
笔记中大多数内容源于狂神的免费课程https://space.bilibili.com/95256449
,也有不少语言图片来源网络,在此表达由衷感谢。

浙公网安备 33010602011771号