语法基础
JDK 和 JRE
JRE指的是JAVA运行环境,包括了JVM和JAVA的核心类库。
JDK是JAVA开发工具包,不仅包含JRE,还有JAVA基础类库和常用的JAVA开发工具比如编译器、调试器
基本数据类型
有8个,4个整数类型byte short int long(1,2,4,8),2个浮点类型float double(4 8),字符类型char(2),布尔类型 boolean(4)
除了布尔类型之外的其他7个类型,都可以看做是数字类型,它们相互之间可以进行类型转换。
访问修饰符
- private:在类本身内可见
- default: 在相同的包内可见
- protected:在相同的包内和所有的子类可见
- public:对所有类可见
自己的类→相同包的子类→子类→所有类
⾃动装箱与拆箱
- 装箱:把基本数据类型转换为包装类型
- 拆箱:将包装类型转换为基本数据类型
为什么有了int还要有设计Integer
int 是基本类型,直接存数值,而integer是包装类,用一个引用指向这个对象。对象封装有很多好处,可以把数据与处理这些数据的方法结合在一起,比如Integer就有parseInt()方法来专门处理int型相关的数据。
另一个非常重要的原因是,很多方法的使用都是用来处理引用数据类型的,如ArrayList集合类就只能以类作为他的存储对象,而这时如果想把一个int型的数据存入list是不可能的,必须通过自动装箱将其转换为Integer才能被List所接受。
局部变量、成员变量
- 成员变量:(其他语言里叫全局变量,,Java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。)
- 成员变量是在类的范围里定义的变量;
- 成员变量有默认初始值;
- 未被static修饰的成员变量也叫实例变量,实例化之后可以被类访问,它存储于对象所在的堆内存中,生命周期与对象相同;
- 被static修饰的成员变量也叫静态/类变量,可以直接被类访问,也就是方便在没有创建对象的情况下调用变量或方法,它存储于方法区中,生命周期与当前类相同。
- 局部变量:
-
局部变量是在方法的范围里定义的变量;
-
局部变量没有默认初始值,因此我们使用它之前要对其进行初始化;
-
局部变量存储于栈内存中,生命周期与方法相同。
for循环 while循环 do while循环
for循环格式固定,控制次数方便。因此for循环时候提前知道循环总次数的场景。
for循环括号内定义的变量仅仅在循环内可用,while的初始化表达式本来就在外面所以仍然可用。
while循环格式灵活,不在意控制次数。结构在循环的开始判断下一个迭代是否应该继续。
do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。
public static void main(String args[])这段声明里每个关键字的作用
public 因为main方法是java程序运行时调用的第一个方法,因此必须可见
static java在调用main方法的时候不会创建这个类的实例,因此声明为静态方法
void main方法没有返回值
String 指命令行传进参数的类型,args指命令行传进的字符串数组
System.out.println每个关键字的作用
system是java的一个类,out是system类下的一个静态变量
print是个方法,里面调用的就是借用输出流进行打印
final!
- 修饰一个变量时,它只有一次赋值的机会,若是成员变量中的final int i必须在定