黑马全套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);
    }
}


相关文章
|
1天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十九)-java+ selenium自动化测试-隐藏元素定位与操作(详解教程)
【5月更文挑战第13天】本文主要讨论了在Selenium自动化测试中如何处理前端隐藏元素的问题。隐藏元素通常是通过`type="hidden"`或`style="display: none;"`属性实现的,它们在页面上不可见,但仍然存在于HTML代码中。Selenium可以定位到这些隐藏元素,但无法直接进行点击、输入等操作,会报错“ElementNotInteractableException”。
18 3
|
2天前
|
JavaScript 前端开发 测试技术
《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
【5月更文挑战第12天】本文介绍了WebDriver中用于判断元素状态的三个方法:`isEnabled()`、`isSelected()`和`isDisplayed()`。`isSelected()`检查元素是否被选中,通常用于勾选框。`isDisplayed()`则用来判断元素是否在页面上可见。`isEnabled()`方法确定元素是否可操作,例如是否能点击或输入内容。
11 1
|
3天前
|
存储 JavaScript Java
《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
【5月更文挑战第11天】WebDriver 的 `isDisplayed()` 方法用于检查页面元素是否可见,如果元素存在于DOM中且可视,返回`true`,否则返回`false`。在自动化测试中,这个方法常用于验证元素是否真正显示在页面上。示例代码展示了如何使用 `isDisplayed()` 判断百度登录页面的特定错误提示文字是否出现。
14 1
|
4天前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
【5月更文挑战第10天】本文介绍了使用Java和Selenium进行Web自动化测试的实践,以安居客网站为例。最后,提到了在浏览器开发者工具中调试和观察页面元素的方法。
14 2
|
4天前
|
算法 Java Python
保姆级Java入门练习教程,附代码讲解,小白零基础入门必备
保姆级Java入门练习教程,附代码讲解,小白零基础入门必备
|
4天前
|
Web App开发 JavaScript 测试技术
《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
【5月更文挑战第9天】本文介绍了在Appium中处理App自动化测试中遇到的Toast元素定位的方法。Toast在Web UI测试中也常见,通常作为轻量级反馈短暂显示。文章提供了两种定位Toast元素的技巧.
11 0
|
6天前
|
Web App开发 缓存 前端开发
《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
【5月更文挑战第8天】这篇文档介绍了如何在IE、Chrome和Firefox浏览器中处理不信任证书的问题。作者北京-宏哥分享了如何通过编程方式跳过浏览器的证书警告,直接访问不受信任的HTTPS网站。文章分为几个部分,首先简要介绍了问题背景,然后详细讲解了在Chrome浏览器中的两种方法,包括代码设计和运行效果,并给出了其他浏览器的相关信息和参考资料。最后,作者总结了处理此类问题的一些通用技巧。
16 2
|
6天前
|
Java Android开发
【Java开发指南 | 第十八篇】Eclipse安装教程
【Java开发指南 | 第十八篇】Eclipse安装教程
14 2
|
6天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
14 1
|
6天前
|
前端开发 Java 测试技术
《手把手教你》系列技巧篇(四十二)-java+ selenium自动化测试 - 处理iframe -下篇(详解教程)
【5月更文挑战第6天】本文介绍了如何使用Selenium处理含有iframe的网页。作者首先解释了iframe是什么,即HTML中的一个框架,用于在一个页面中嵌入另一个页面。接着,通过一个实战例子展示了在QQ邮箱登录页面中,由于输入框存在于iframe内,导致直接定位元素失败。作者提供了三种方法来处理这种情况:1)通过id或name属性切换到iframe;2)使用webElement对象切换;3)通过索引切换。最后,给出了相应的Java代码示例,并提醒读者根据iframe的实际情况选择合适的方法进行切换和元素定位。
13 0