第一天学习:数据类型、运算符、数组
编写HelloWorld
- JDK和JRE关系 JRE:JVM+核心类库。 JDK: JRE+开发人员使用的工具。 JDK > JRE > JVM
- DOS常用命令:盘符名: (盘符切换命令) dir(查看当前文件夹) cd 文件夹名 (进入文件夹命令) cd..(退出文件夹命令) cd\(退出到磁盘根目录) cls(清屏)
- 编译:javac 源文件名.后缀名(举例:java HelloWorld.java)
- 运行:java 类名字(java HelloWorld)
- 关键字:public class static void
- 标识符: 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
- 基本数据类型分类:四类八种基本数据类型:整数、浮点数、字符、布尔。 字节型、短整型、整型、长整型、单精度浮点数、双精度浮点数、字符型、布尔类型。
- 引用类型:类、接口、数组
数据类型转换
- 自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型 。
- 强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。
- 数据类型 变量名 = (数据类型)被转数据值;
- // double类型数据强制转成int类型,直接去掉小数点
- int i = (int)1.5;
注意:浮点转成整数,直接取消小数点,可能造成数据损失精度。
int 强制转成 short 砍掉2个字节,可能造成数据丢失。
运算符
- 算术运算符:注意a++和++a区别复制与那算符
- 赋值运算符:= +=(+= 是一个运算符,只运算一次,并带有强制转换的特点,) -= /= %=
- 比较运算符:== < > <= >= !=
- 逻辑运算符: &&短路与 ||短路或 !取反
- 三元运算符:
数据类型 变量名 = 布尔类型表达式?结果1:结果2
布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。
方法入门
-
方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。
修饰符 返回值类型 方法名 (参数列表){
代码...
return ;
}
举例:
public static void methodName() {
System.out.println("这是一个方法");
}
JShell脚本工具
- 当我们编写的代码非常少的时候,而又不愿意编写类,main方法,也不愿意去编译和运 行,这个时候可以使用JShell工具。 启动JShell工具,在DOS命令行直接输入JShell命令。JShell工具,只适合片段代码的测试,开发更多内容,建议编写在方法中。
流程控制语句
- 判断语句、选择语句、循环语句、跳出语句(break、continue)、死循环、嵌套循环
- IDEA的使用
- 调用方法的三种形式:直接调用、赋值调用、输出语句调用
-
方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返
回值类型无关。
参数列表:个数不同,数据类型不同,顺序不同。
数组3种定义和访问
-
数组概念: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。
- 数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
int[] arr = new int[3]; - 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
int[] arr = new int[]{1,2,3,4}; -
数据类型[] 数组名 = {元素1,元素2,元素3...};int[] arr = {1,2,3,4,5};
-
索引访问数组中的元素:数组名[索引]=数值,为数组中的元素赋值 arr[0] = 1;变量=数组名[索引],获取出数组中的元素 int i = arr[0];
- 数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
- JAVA虚拟机的内存划分
寄存器 给CPU使用,和我们开发无关。本地方法栈 JVM在使用操作系统功能的时候使用,和我们开发无关。方法区 存储可以运行的class文件。堆内存 存储对象或者数组,new来创建的,都存储在堆内存。方法栈 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。
- 一个数组内存图
- 两个数组内存图
-
-
两个变量指向同一个数组
-
typora
数组异常
- 数组越界异常:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
- 数组空指针异常:Exception in thread "main" java.lang.NullPointerException
数组遍历(重点)
- 遍历、数组获取最大值元素、数组反转
数组作为方法参数和返回值
-
数组作为方法参数传递,传递的参数是数组内存的地址。
-
数组作为方法的返回值,返回的是数组的内存地址
方法的参数类型区别(易错)
方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值
面向对象 三大基本特征:封装、继承、多态
- 类的定义
定义类:就是定义类的成员,包括成员变量和成员方法。
成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
成员方法:和以前定义方法几乎是一样的。只不过把static去掉,static的作用在面向对象后面课程中再详细
讲解。
public class Student {
//成员变量
String name;//姓名
int age;//年龄
//成员方法
//学习的方法
public void study() {
System.out.println("好好学习,天天向上");
}
//吃饭的方法
public void eat() {
System.out.println("学习饿了要吃饭");
}
}
- 对象的使用
创建对象:类名 对象名 = new 类名();
使用对象访问类中的成员: 对象名.成员变量; 对象名.成员方法();