Java | 回顾Java之Java基础 一、Java语言基础

一、Java语言基础

1、键盘录入

  • 导包:import java.util.Scanner;
  • 创建键盘录入对象:Scanner sc = new Scanner(System.in);
  • 通过对象获取数据:int x = sc.nextInt();

2、方法

2.1 方法概述和格式说明

  • 简单来说:方法就是完成特定功能的代码块
    在很多语言里面都有函数的定义,而在java中函数被称为方法
  • 格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){
    函数体;
    return 返回值;
}
  • 详细解释:
    • 修饰符:目前就用public static ,后面我们再详细的讲解其他的修饰符。
    • 返回值类型:就是功能结果的数据类型
    • 方法名:符合命名规则即可
    • 参数:
    • 实际参数:就是实际参与运算的
    • 形式参数:就是方法定义上的,用于接受实际参数的
    • 参数类型:就是参数的数据类型
    • 参数名:就是变量名
    • 方法体语句:就是完成功能的代码
    • return:结束方法的
      返回值:就是功能的结果,由return带给调用者

2.2方法注意事项

  • 方法不执行不定义
  • 方法与方法是平级关系,不能嵌套定义
  • 方法定义的时候参数之间用逗号隔开
  • 方法调用的时候不用再传递数据类型
  • 如果方法有明确的返回值,一定要有return带回一个值

2.3方法重载概述

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可
参数列表不同有两种情况:

  • 参数类型不同
  • 参数个数不同

2.4方法重载的特点

  • 与返回值类型无关,只看方法名和参数列表
  • 在调用时,虚拟机通过参数列表的不同来区分同名方法

2.5Java中的参数传递问题

  • 基本类型:形式参数的改变对实际参数没有影响
  • 引用类型:形式参数的改变直接影响实际参数

3、数组

3.1 数组的概括

  • 数组是存储同一个数据类型多个元素的集合,也可以看成是一个容器
  • 数组既可以存储基本数据类型,也可以存储引用数据类型

3.2 数组的定义格式

  • 格式1:数据类型 [] 数组名
  • 格式2:数据类型 数组名 []

注意:这两种定义做完后,数组中是没有元素值的,应该对数组的元素进行初始化

3.3 数组初始化概述

java中的数组必须先初始化,然后才能使用

所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值

3.4 数组的初始化方式

  • 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
    • 格式:数据类型 [] 数组名 = new 数据类型 [数组长度];
    • 数组长度其实就是数组中元素的个数
  • 静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度
    • 格式:数据类型 [] 数组名 = new 数据类型 {元素1,元素2......}

注意:不要同时进行动态初始化和静态初始化
例如:int [] arr = new int [3] {1,2,3};//错误

3.5 java中的内存分配

java程序在运行时,需要在内存中的分配空间,为了提高运算效率,有对空间进行了不用的区域划分,因为每一片区域都有特定的处理数据方式和内存管理方式

  • 栈:存储局部变量
  • 堆 :存储new出来的东西
  • 方法区:面向对象部分详细讲解
  • 本地方法区:和系统相关
  • 寄存器:给cpu使用
    • 局部变量:在方法定义中或者方法声明上的变量都称为局部变量
    • 堆内存的特点
      • 每一个new出来的东西都有地址值
      • 每个变量都有默认值
      float,double:0.0
      char:'\u0000'  
      boolean:false;  
      引用类型:null
      
      • 使用完毕就变成了垃圾,但是并没有立即回收,会在垃圾回收期空闲的时候
    • 栈内存的数据用完就释放掉

例如:

int [] arr = new int [3];
System.out.println(arr);//地址值
System.out.println(arr[0]);//0
System.out.println(arr[1]);//0
System.out.println(arr[2]);//0

栈和堆的变化如下:


3.6 数组操作的两个常用小问题

  • ArrayIndexOutOfBoundsException:数组索引越界异常
    原因:你访问了不存储的索引
  • NullPointerException:空指针异常
    原因:数组已经不再指向堆内存了,而你还用数组名去访问元素

3.7 数组的长度

数组提供了一个属性length,用于获取数组的长度
格式:数组名.length

3.8 二维数组概述

二维数组就是一个元素为一维数组的元素

3.9 二维数组定义格式

  • 格式1:
    数据类型 [][] 变量名 = new 数据类型 [m][n];
    m表示这个二维数组有多少个一维数组
    n表示每一个一维数组的元素个数
  • 格式2:
    数据类型 [][] 变量名 = new 数据类型 [m][];
    m表示这个二维数组有多少个一维数组
    这一次没有直接给出一维数组的元素个数,可以动态的给出
  • 格式3:
    数据类型 [][] 变量名 = new 数据类型 [][]{{元素...},{元素...},{元素...}};
    变化版格式:
    数据类型 [][] 变量名 = {{元素...},{元素...},{元素...}};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章