第一章 java语言概述
- JVM(Java Virtual Machine):
- 在需要运行java应用程序的操作系统上,安装一个与操作系统对应的java虚拟机即可。
- JVM的作用是保证java语言可跨平台。
- JRE(Java Runtime Environment):
- 是java程序的运行时环境,包含JVM和运行时所需要的核心类库。
- 我们想要运行一个已有的java程序,那么只需要安装JRE即可。
- JDK(Java Development Kit):
- 是java程序开发工具包,包含JRE和开发人员使用的工具。
- 其中的开发工具:编译工具(javac.exe)和运行工具(java.exe)。
- 我们想要开发一个全新的java程序,那么必须安装JDK。
总结:JDK、JRE和JVM的关系:JDK包括JRE和开发工具,JRE包括JVM和核心类库。
- java程序开发运行流程:
- 编写程序,编译程序,运行程序
- 编译:javac 文件名.java (编译成功后会得到一个class文件) 执行:java 类名
第二章 数据类型
-
分类:
- 基本数据类型
- 数值型
- 整数(byte、short、int、long)
- 浮点数(float、double)
- 字符(char)2字节
- 非数值型:布尔(boolean)
- 引用数据类型
- 类(class)
- 接口(interface)
- 数组([])
-
变量使用的注意事项:
- long类型的变量定义的时候,为了防止整数过大,后面要加L
- float类型的变量定义的时候,为了防止类型不兼容,后面要加F
-
字符串“+”操作:
// 当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算 System.out.println("itheima"+666); // itheima666 // 在“+”操作中,如果出现了字符串,就是连接运算,否则就是算术运算。 // 当连续进行“+”操作时,从左到右逐个执行 System.out.println("itheima"+1+99); // itheima199 System.out.println(1+99+"itheima"; // 100itheima
-
扩展的赋值运算符隐含了强制类型转换。
short a = 10; a += 10; // 不报错 a = a + 10; // 报错
-
短路逻辑运算符:&& || 不同于基本的逻辑运算符:& |
int i=10; int j=10; System.out.println((i++>100)&&(j++>100)); System.out.println(i); // 11 System.out.println(j); // 10 左边为假,右边不执行(和&的区别)
第三章 方法及方法重载
-
方法定义的先后顺序无所谓。
-
方法定义必须是挨着的,不能在一个方法的内部定义另外一个方法。
-
方法定义的格式:
// 修饰符:现阶段的固定写法,public static 修饰符 返回值类型 方法名称(参数类型 参数名称,...) { 方法体; return 返回值; }
-
方法重载(Overload):
- 定义:多个方法的名称一样,但是参数列表不一样
- 好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能。
- 参数列表不同指的是:
- 参数个数不同
- 参数类型不同
- 参数顺序不同
注意:仅仅返回值类型不同不足以称为方法的重载。
第四章 数组
- 定义:是一种容器,可以同时存放多个数据值
- 特点:
- 数组是一种引用数据类型
- 数组当中的多个数据,类型必须统一
- 数组的长度在程序运行期间不可改变
- 初始化:
- 动态初始化(指定长度)
- 格式:数据类型[] 数组名称 = new 数据类型[数组长度];
- 格式解析:
- 左侧数据类型:也就是数组中保存的数组,全都是统一的什么类型
- 左侧的中括号:代表我是一个数组
- 左侧的数组名称:给数组取一个名字
- 右侧的new:代表创建数组的动作
- 右侧的数组类型:必须和左边的数据类型保持一致
- 右侧中括号的长度:也就是数组当中,到底可以保存多少个数组,是一个int数字
- 静态初始化(指定内容)
- 格式:数据类型[] 数据名称 = new 数据类型[]{元素1,元素2,…}; (new 数据类型[] 可省略)
- 注意:虽然静态初始化没有直接告诉长度,但是根据大括号里面的元素具体内容,也可以自动推算出来长度。
- 动态初始化(指定长度)
第五章 java的内存划分
- 栈(stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。
- 局部变量:方法的参数,或者是方法{}内部的变量
- 作用域:一旦超出作用域,立刻从栈内存当中消失
- 堆(Heap):凡是new出来的东西,都在堆中。
- 堆内存里面的东西都有一个地址值:16进制
- 堆内存里面的数据,都有默认值
- 方法区(Method Area):存储.class相关信息,包含方法的信息
- 本地方法栈(Native Method Stack):与操作系统相关
- 寄存器(PC Register):与CPU相关
前三个划分必须掌握,后两个了解即可