记录 Java 基础语法,包括注释、标识符、关键字、变量与基本数据类型等内容。
JAVA基础 注释 并不会被执行,平时写代码一定要规范
单行注释
多行注释
有趣的注释
文档注释 JavaDoc
标识符 关键字 Java所有的组成部分都需要名字 。给类、变量以及方法起的名字都被称为标识符。
为了方便区分、使用它们!
java关键字:
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
goto、const:是保留关键字,没有实际使用,预留以后使用。
Java 关键字全部小写,像String不是关键字,是类名。
true、false、null 不是关键字,是字面量,代表固定值,也不能当名字,但不属于关键字。
数据类型 强类型语言 java c 要求变量的使用要严格符合规定,所有变量先定义后才能使用
更安全,速度慢
弱类型语言 python Java的数据类型分为两大类 基本类型 数值类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 1. 整数类型 存整数 byte 占1 个字节范围:-128 ~127 short 占2 个字节范围:-32768 ~32767 int 占4 个字节范围:-2147483648 ~2147483647 long 占8 个字节范围:-9223372036854775808 ~9223372036854775807 L 2. 浮点类型 存小数 float 占4 个字节 单精度浮点数 double 占8 个字节 双精度浮点数 说明: 1. 一般小数优先用 double 。但两者都不能精确表示所有十进制小数,例如 0.1 在它们内部通常是近似值。 2. 赋给 float 时,通常需要加上 F3. 字符型 char 占2 个字节,使用单引号
boolean类型
1 2 占1 位其值只有true 和false 两个bool ean flag = true
还有一个要单独区分
1 2 String 字符串 能存一段文字,使用双引号。但它是一个类,属于引用类型,不是关键字,特不属于上面的8 种基本类型
引用类型 Reference type
知识补充
位 bit
1 是计算机内部数据储存的最小单位,11001100 是一个八位二进制数
字节byte
1 2 3 4 5 是计算机中数据处理的基本单位,习惯上用大写B来表示 1B(byte,字节)=8bit(位)1024B =1KB1024KB =1M1024M =1G
字符
数据类型拓展及面试题讲解 整数拓展
1 2 3 4 5 进制 二进制 0 b 十进制 八进制 0 十六进制 0 x A ~F 16
浮点数拓展
1 2 3 银行业务怎么表示 浮点数 有限 离散 舍入误差 大约 接近但不等于 最好完全避免使用浮点数进行比较
字符拓展
1 2 3 所有的字符本质还是数字 编码Unicode 2 字节 表:97 -a 65 -A 0 ~65536 、 U0000 UFFFF
转义字符
布尔拓展
类型转换 java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低————————————–>高
byte,short,char->int->long->float->double
运算中,不同类型的数据先转化为同一类型,然后进行运算
强制类型转换 高>低 自动类型转换 低>高 注意:
1 2 3 4 不能对布尔值进行转换 不能把对象类型转换为不相干的类型 在把高容量转换到低容量的时候,强制转换 转换的时候可能存在内存溢出,或精度问题!
变量 常量 变量 可以变化的量
java是强类型语言,每个变量都必须声明其类型
1 2 3 4 5 数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型的变量(不建议) 注意: 1 .变量是java程序中最基本的存储单元,其要素包括变量名,变量类型,作用域 2 .变量声明是一条完整的语句,因此每一个声明都必须以分号结束 3 .变量名必须是合法的标识符
作用域 类变量 static
实例变量
1 2 3 从属于对象;如果不自行初始化,这个类型默认值 0 0.0 布尔值:默认类型是false 除了基本类型,其余的默认值都是null
局部变量
变量类型
位置
有没有默认值
是否必须手动初始化
归属
类变量 (static)
类内,方法外,加 static
✅ 有默认值
可以不初始化,JVM 自动填充
属于类,所有对象共享
实例变量
类内,方法外,无 static
✅ 有默认值
可以不初始化,JVM 自动填充
属于单个对象,每个对象独立
局部变量
方法内部 / 代码块 {} 内
❌ 没有默认值
使用前必须手动赋值 ,否则编译报错
属于方法,方法执行结束销毁
常量 Constant 1 2 3 4 初始化后不能再改变值 不会变动的值 特殊的变量 关键字 final final 常量名=常量值 常量名一般使用大写字符。
1 2 public static final double PI=3.14 ;
变量的命名规范
1 2 3 4 5 6 所有变量见名知意 类成员变量:首字母小写和驼峰原则 monthSalary 局部变量:首字母小写和驼峰原则 常量:大写字母和下划线 类名:首字母大写和驼峰原则 GoodMan 方法名:首字母小写和驼峰原则
运算符 计算机——计算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 算术运算符:+ - * / %(取余,模运算) ++ -- 赋值运算符:= 关系运算符:> < >= <= == != instanceof(面向对象) 逻辑运算符:短路运算 && 与 || 或 ! 非 位运算符: 效率极高 & 都是1才为1 | 都是0才是0 ^ 相同为0 ~ 取反 ~B >> 右移 /2 << 左移*2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 >>> 条件运算符: ? : 三元运算符 x?y:z 扩展赋值运算符:+= -= *= /= a+=b; a=a+b 字符串连接符 +
1 2 3 4 5 6 优先级: 数字越大越先算;同优先级看结合性(从左往右 / 从右往左) 括号永远最高,赋值永远最低 括号 > 一元 > 乘除模 > 加减 > 移位 > 比较 > 判等 > 位与异或或 > 逻辑与 && > 逻辑或 || > 三元 > 赋值 !(逻辑非)优先级远高于&&、|| && > ||,先与后或
包机制 本质:文件夹
为了更好地组织类,java提供了包机制,用于区别类名的命名空间
包语句的语法格式
1 package pkg1[.pkg2[.pkg3...]]
一般利用公司域名倒置作为包名
为了能够使用某一个包的成员,我们需要在java程序中明确导入该包——import
JavaDoc 类或者方法上面 javadoc命令是用来生成自己的API文档的
1 2 3 4 5 6 7 8 9 参数信息@author @version @since 指明需要最早使用的jdk版本@param @return @throws 异常抛出情况
命令行生成javaDoc文档
1 2 javadoc -encoding UTF-8 -charset UTF-8 文件名 -encoding UTF-8 -charset UTF-8 预防中文乱码
使用IDEA生成javaDoc文档
1 2 3 4 5 6 顶部菜单栏:Tools → Generate JavaDoc...(生成 JavaDoc)JetBrains Scope(范围) Output directory:必须选一个文件夹 Visibility(可见性) Other command line arguments (解决中文乱码!必须填) 勾选 Open generated documentation in browser,生成完自动用浏览器打开