1.注释
注释主要分为单行注释、多行注释以及文档注释:
- 单行注释:
1 | // 单行注释 |
- 多行注释:
1 | /* |
- 文档注释:
1 | /** |
2.字面量
不同数据在程序中的书写方式不同:
- 整数、小数:按照原本格式即可
- 字符:使用单引号
- 字符串:使用双引号
- 布尔值:只有两个值,分别是
true
和false
- 空值:
null
3.变量
变量是用来记住程序需要处理的数据。
使用变量的好处:便于扩展和维护
变量的注意事项:
- 变量在声明后才能使用
- 变量类型和赋值数据必须匹配
- 变量从定义开始到
}
截至范围内有效,且在同一范围内,它们的名称不能一样 - 变量定义时可以不给初始值,但是使用之前一定要赋值
4.关键字、标识符
4.1 关键字
关键字就是java
语言用到的一些词,有特殊作用,称为关键字,例如:public
/class
/int
/double
等。关键字不能用于类名、变量名,否则会报错。
4.2 标识符
标识符就是名字,例如类名、变量名都是标识符。
标识符的要求:
- 基本组成:由数字、字母以及下划线
_
和美元符号$
等组成 - 强制要求:不能以数字开头,不能用关键字作为名字,同时标识符区分大小写
标识符的建议规范:
变量名称:满足标识符规则,建议采用“驼峰模式”,采用有意义的英文名称、首字母小写
类名称:满足标识符规则,同时采用“驼峰模式”,采用有意义的英文名称、首字母大写
5.变量详解
5.1 变量数据在计算机中的存储原理
- 变量数据在计算机中通过二进制存储,可以通过除二取余法计算。
- 计算机中表示数据的最小单元称为**字节(Byte)**,一个字节中包括8比特(bit/位),一个bit即是一位0/1。
- 计算机中最小表示位是比特(bit)
5.2 图片/音频/字符在计算机中的存储原理
- 字符在计算机中的存储:将字符变成对应数字(ACSII编码)存储在底层。
- 图片分为彩色和黑白图片,图片是由一系列像素点构成的,每个像素点都是由通道数值(0-255)构成,其中彩色图片有RGB三个通道,而黑白图片有一个通道。
- 音频是有一系列波形图构成的,因此可以存储波形图上离散点的值即可。
本质上都是二进制存储。
5.3 进制及进制转化
5.3.1 十进制和二进制
- 十进制转二进制:可以通过除二取余法来进行
- 二进制转十进制:通过各位的指数加法来进行
5.3.2 八进制
- 规则:逢八进一
- 由来:将二进制中每三位作为一组,一组有8个数字(000-111,即0-7),表示出来的数字称为八进制。
5.3.3 十六进制
- 规则:逢十六进一
- 由来:将二进制中每四位作为一组,一组有16个数字(0000-1111,即0-15,表示为0-9 + ABCDEF),表示出来的数字称为十六进制。
java中支持书写二进制/八进制/十六进制的数据:
- 二进制:以
0B/0b
开头- 八进制:以
0
开头- 十六进制:以
0X/0x
开头
5.4 计算机的数据单位
- 计算机表示数据的最小组成单元是字节(byte),1字节=8bit
- 计算机发展出以下单位:
- 1B = 8b
- 1KB = 1024B
- 1MB = 1024KB
- 1GB = 1024MB
- 1TB = 1024GB
5.5 数据类型
基本数据类型包括8种:
数据类型 | 类型名称 | 内存占用(字节数) | 数据范围 |
---|---|---|---|
整型 | byte | 1 | -128 ~ 127(正数首位为0,负数首位为1) |
整型 | short | 2 | -32768 ~ 32767 |
整型 | int | 4 | -2147483648 ~ 2147483647 |
整型 | long | 8 | -9223372036854775808 ~ 9223372036854775807 |
浮点型 | float | 4 | 1.401298E-45 ~ 3.4028235E38 |
浮点型 | double(默认) | 8 | 4.9E-324 ~ 1.797693E308 |
字符型 | char | 2 | 0 ~ 65535 |
布尔型 | boolean | 1 | true, false |
5.6 类型转换
- 为什么要进行类型转换?
- 存在某种类型的变量赋值给另一种类型的变量
- 存在不同类型的数据一起运算
- 类型转化的形式:
- 自动类型转换
5.6.1 自动类型转换
- 定义:类型范围小的变量可以直接赋值给类型范围大的变量
- 原理:
1 | package com.neuer.type; |
以上自动类型转换下,byte
在计算机中以8位存储,int
以32位存储,从类型范围小的变量可以直接赋值到类型范围大的变量,直接放到末尾即可。
5.6.2 表达式的自动类型转换
- 定义:在表达式中,小范围的变量会自动转换为表达式中较大范围的类型,再参与运算。
1 | byte/short/char --> int --> long -->float --> double |
注意:
- 表达式的最终结果类型由表达式中的最高类型决定
- 在表达式中,byte/short/char是直接转换成int类型参与运算的
5.6.3 强制类型转换
当大范围类型的变量转换为小范围变量时会产生强制类型转换,需要()
1 | int a = 128; |
注意:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 大范围->低范围的转换是强制类型转换
- 转换过程中存在精度问题
5.7 算术运算符、连接符
- 基本的算术运算符:+、-、*、/、%(取余)
+
可以做连接符,在字符串运算中作为连接符使用:
1 | int a2 = 5; |
要点:能算则算,不能算就在一起
5.8 自增运算符
- 自增运算符:放在变量之前或者后面,对变量自身的值加一
- 自减运算符:放在变量之前或者后面,对变量自身的值减一
- 自增/自减只能操作变量,不能操作字面量
- 自增/自减如果不是单独使用,则在变量前后会存在明显区别
5.9 其他运算符
- 赋值运算符:
=
- 关系运算符:
>
<
>=
<=
==
!=
instanceof
- 逻辑运算符:
&&
||
!
- 位运算符:
&
|
^
~
>>
<<
>>>
- 条件运算符:
?
:
- 扩展赋值运算符:
+=
-=
*=
/=
5.10 变量命名规范
- 所有变量、方法、类名需要见名知意
- 具体命名原则:
- 类成员变量:首字母小写+驼峰原则,即除了第一个字母小写外,其余单词首字母大写,例如:monthSalary
- 局部变量:首字母小写+驼峰原则
- 常量:所有字母大写+下划线
- 类名:首字母大写+驼峰原则
- 方法名:首字母小写+驼峰原则
6.java
包机制简介
java
中提供了包机制,用于区别类名的命名空间。实际上,包的本质就是文件夹。
包语句的语法格式是:
1 | package pkg1[. pkg2[. pkg3...]]; |
注意:一般采用公司域名倒置作为包名称,例如:百度下面可能包括主站、百科等,可以采用以下方式
1
2
3 com.baidu.www // 百度的主站
baike.baidu.www // 百度的百科
...
在包下面定义的类,需要在首行声明包语句,即:
1 | package com.neuer.operator // 所在包为com.neuer.opeartor |
有些时候,我们需要用到其他包中的类或者方法,需要将其导入,可以使用import
实现(需要在包语句下面):
1 | import package1[.package2...].(classname|*); |
注意:不要让不同包下面的类名称重复,否则导入时会引起冲突。
1 | import com.neuer.operator.Demo1; // 导入Demo1类 |
7.JavaDoc
JavaDoc
可以生成自己的API文档,需要以下参数:
可以通过命令行执行javadoc
命令产生对应的doc,例如:我们在doc
包下有一个类,名为DocDemo1
,可以通过以下命令生成对应的文档:
1 | javadoc -encoding UTF-8 -charset UTF-8 DocDemo1.java |
注意:
-encoding
以及-charset
是为了满足中文编码的需要。
也可以使用IDEA创建javadoc
,可以在导航栏 -> 生成javadoc
中进行配置并生成,配置信息如下所示: