黑马全套Java教程(二)(上)

简介: 黑马全套Java教程(二)

9 IDEA下载、安装与概述、使用


IDEA全称InteliJ IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具


集成环境:把代码编写、编译、执行、调试等多种功能综合到一起的开发工具


9.1 IDEA的下载


官网链接:https://www.jetbrains.com/idea/


9.2 安装


请查看其他CSDN,这里就不做教程了,或者观看安装教学视频,教学视频链接


9.3 IDEA的基本使用



由于本人是先看了很多视频,再回来补的博客,所以这里的项目->模块->包->类的创建流程这里就不做详细的教程啦


IDEA的基本使用可以查看黑马的第54个视频,视频链接



这张图中,idea_test是模块,在src下,com.itheima为包,ArrayDemo为类


IDEA项目结构如下:



9.4 IDEA字体修改


File->Settings->Editor->Font



9.5 IDEA中内容辅助键和快捷键


快速生成语句


  • 快速生成main()方法:psvm + 回车


  • 快速生成输出语句:sout + 回车


内容辅助键


Ctrl+Alt+space:内容提示,代码补全等


快捷键


单行注释:选中代码,Ctrl+/,再来一次就是取消注释


多行注释:选中代码,Ctrl+Shift+/,再来一次就是取消注释


格式化代码


Ctrl+Alt+L


9.6 IDEA中模块操作


新建模块:


File->Project Structure->Modules->±>New Module



删除模块:


右键模块->remove module



上面只是在工作区间上移除了,而硬盘上还是存在的,还需到对应的文件夹中去删除对应模块文件


快速定位到模块所在目录


右键模块名->open in ->explorer


9.7 导入模块


File->Project Structure->Modules-> + ->import Module ->找到需要导入的模块名称


10 数组


10.1 数组定义格式


数组的定义格式有两种:


格式一:数据类型[] 变量名


范例:int[] arr


定义了一个int类型的数组,数组名是arr


格式二:数据类型 变量名[]


范例:int arr[]


定义了一个int类型的变量,变量是arr数组


推荐使用格式一


例:注意,定义数组会默认给数组赋初始值,值为0


package com.itheima;
public class ArrayTest4 {
    public static void main(String[] args) {
        int[] arr = new int[3];
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}



10.2 数组动态初始化


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


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


数组初始化有两种方法:动态初始化、静态初始化


动态初始化:初始化时只指定数组长度,由系统为数组分配初始值


格式数据类型[] 变量名 = new 数据类型[数组长度];


范例:int[] arr = new int[3];


10.3 数组元素访问


数组变量访问方式


格式:数组名


数组内部保存的数据的访问方式


格式:数组名[索引]


索引是数组中数据的编号方式


作用:索引用于访问数组中的数据使用,**数组名[索引]**等同于变量名,是一种特殊的变量名


特征1:索引是从0开始的


特征2:索引是连续的


特征3:索引是逐一增加的,每次加1


package com.itheima;
/*
    数组:是一种用于存储多个相同类型数据的存储模型
    定义格式:(推荐方式)
        数据类型[] 数组名;
        举例: int[] arr;
    数组初始化:
        动态初始化
            int[] arr = new int[3];
        静态初始化
 */
public class ArrayDemo {
    public static void main(String[] args) {
        //int[]  int类型数组
        //arr   数组名称
        //new   为数组申请内存空间
        //int[3]   数组,元素类型为整型,3个元素
        int[] arr = new int[3];
        //赋值
        arr[0] = 100;
        arr[2] = 200;
        //输出数组名
        System.out.println(arr);   //[I@58ceff1
        //输出数组中的元素
        System.out.println(arr[0]);    //0是由系统分配的
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}



10.4 内存分配


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



单个数组内存图如下



代码实现如下


package com.itheima;
public class ArrayTest1 {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = new int[3];
        //输出数组名及元素
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        System.out.println("赋值后----------");
        //给数组中元素赋值
        arr[0] = 100;
        arr[1] = 200;
        //再次输出
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}


多个数组的内存图如下



代码实现如下


package com.itheima;
public class ArrayTest2 {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = new int[3];
        int[] arr2 = new int[3];
        //输出数组名及元素
        System.out.println("arr----");
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        System.out.println("arr2-------");
        System.out.println(arr2);
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);
        System.out.println("赋值后----------");
        //给数组中元素赋值
        arr[0] = 100;
        arr2[0] = 200;
        arr2[2] = 300;
        //再次输出
        System.out.println("arr----");
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        System.out.println("arr2-------");
        System.out.println(arr2);
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);
    }
}


多个数组指向相同时



代码实现如下


package com.itheima;
public class ArrayTest3 {
    //多个数组指向相同时
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = new int[3];
        arr[0] = 100;
        arr[1] = 200;
        arr[2] = 300;
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        //定义第二个数组,并指向第一个数组
        int[] arr2 = arr;
        arr2[0] = 111;
        arr2[1] = 222;
        arr2[2] = 333;
        System.out.println("arr---------");
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        System.out.println("arr2---------");
        System.out.println(arr2);
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);
    }
}


10.5 数组静态初始化


静态初始化:初始化时指定每个数组元素的初始值,由系统确定数组长度


格式:数组类型[] 变量名 = new 数据类型[] {数据1,数据2,数据3,...};


范例:int[] arr = new int[] {1,2,3};


简化格式:数据类型[] 变量名 = {数据1,数据2,数据3,...}


范例:int[] arr = {1,2,3};


推荐简化格式


package com.itheima;
/*
    静态初始化
 */
public class ArrayDemo02 {
    public static void main(String[] args) {
        //定义数组
        int[] arr1 = new int[] {1,2,3};  //一样可以
        int[] arr = {1,2,3};
        //输出数组名
        System.out.println(arr);
        //输出数组中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}


10.6 数组操作常见问题


1.索引越界:访问了数组中不存在的索引对应的元素



代码演示如下


package com.itheima;
/*
    索引越界:访问的元素超出索引
 */
public class ArrayDemo04 {
    public static void main(String[] args) {
        int[] arr = new int[3];
        System.out.println(arr[3]);
    }
}



2.空指针异常:访问的数组已经不再指向堆内存的数据


null是空值,引用数据类型的默认值,表示不指向任何有效对象



代码演示如下


package com.itheima;
/*
    空指针异常
    null:空值
 */
public class ArrayDemo04 {
    public static void main(String[] args) {
        int[] arr = new int[3];
        //空指针异常
        //null赋值给数组
        arr = null;
        System.out.println(arr[0]);
    }
}



10.7 数组常见操作


1.遍历



package com.itheima;
/*
    遍历:获取数组中的每一个元素,并输出
    获取数组长度:arr.length
 */
public class ArrayTest01 {
    public static void main(String[] args) {
        //定义数组
        int[] arr = {11,22,33,44,55};
        //遍历
        for(int x=0; x<arr.length; x++) {
            System.out.println(arr[x]);
        }
    }
}


2.获取最值


package com.itheima;
/*
    获取最值
 */
public class ArrayTest02 {
    public static void main(String[] args) {
        int[] arr = {12,45,98,73,60};
        int max = arr[0];
        int min = arr[0];
        for (int i=1; i<arr.length; i++){
            if (max < arr[i]){
                    max = arr[i];
            }
            if(min > arr[i]){
                min = arr[i];
            }
        }
        System.out.println("最大值:" + max);
        System.out.println("最小值:" + min);
    }
}


目录
相关文章
|
15天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
30天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
131 26
|
1月前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
1月前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
2月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
36 2
|
1月前
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
60 0
|
2月前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
2月前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
2月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
|
2月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
16 0
下一篇
开通oss服务