news 2026/6/5 9:48:50

java入门笔记(五)导包和数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java入门笔记(五)导包和数组

P2-4:import导包和API文档

正如C语言里有很多官方的函数一样(需要引入头文件才能使用),

而java不同,java有两种情况,一种是需要“引入头文件”, 或者也可以用我们更熟悉的名字来称呼:导包 , 把我们需要的包导入到 .java文件之后, 就可以使用这个包里的方法

而除了导包之外,java自身在不需要导包的情况下也可以使用一些方法,我们可以称之为java自带的方法

例如我们学的跟String类型有关的方法,就是Java自带的方法:

上面只是展示了一小部分,想看String类的所有方法可以去下面的网站进行查看:

Java String 类 | 菜鸟教程

并且上面网站里的所有String函数你最好都去练一练,这些都是基础的东西,所以需要去练习和熟悉

至于为什么java不需要导包也可以使用方法,这就要详细讲解一下:

我们学C语言的时候知道,想要调用某些特定的函数,就要引入相应的头文件,

因为只有对应的头文件里才写着那些特定函数,就像是工具箱一样

而在Java里,我们前面之所以可以使用一些函数还不用引入任何头文件,

是因为我们提前下载好了jdk, jdk就相当是一个巨大的文件(你也可以理解成是一个巨大的包)

里面就包含着各种各样的包 , 相当于准备了好多的头文件让我们用

所以只要我们下载好jdk,一切都好办多了

如果说C语言里的头文件是工具箱,引入头文件是为了使用特定的工具的话

那么我们在Java里下载了jdk就相当于引入了一个五金店,基本大部分工具都能在里面找到,

只不过五金店里的这些工具(jdk里面的方法), 有些是可以随便用的,例如String类方法,

而有些工具是需要权限的,你必须要申请权限(导包)才可以正常使用

当然,一些java的第三方包也需要通过导包的方式来使用,并且你在导包之前要确保下载了这些第三方包

在C语言中,引入头文件 用 #inclde <xxx>

而在java中, 导包 用 import xxx;

xxx是我们要引入的package包的名字

我们在java文件里为了使用特定方法而倒入package包的操作就叫做导包

你可以这么理解, C中的引入头文件 就等同于 java中的导包

都是为了让我们使用特定的函数/方法

即java中的包 就近似于 C中的头文件

并且要注意,导包不要导错包,因为java的package包里不乏有很多重名的文件包

所以你在文件里导包的时候一定要 表明清楚你要导入的包的package文件路径,不要导错包,

不然导入了一个重名的package包就尴尬了,因为它不是我们要用的package包,无法给我们提供

我们要用的特定的方法

还有就是记得导包最后要加上分号; 不加的话运行会报错

并且要记住,如果是同一个文件夹的 .java文件,那么它们是可以在不导包的情况下互相用对方的方法的,但是,如果是要用其他文件夹的 .java文件的方法, 那么就必须要导包

打个比方就是,同一个文件夹里面都是一家子,都是一家子那互相用一下彼此的东西没多大问题

但是如果你想用其他文件夹的方法,就相当于要用别人家的成员的东西,这时候你总得向他们申请一下,征求一下意见, 所以就需要导包

那么为什么我们使用java自带的那些方法(例如String类的方法)就不需要导包呢?

还是用jdk五金店来举例子,如果把jdk看成是一个巨大的五金店,里面大部分工具应有尽有的话

那么一些工具是可以随便用的,例如我们上面说的String类的方法,这些方法我们可以在不导包的情况下使用

而有一些工具可能比较贵重或者危险,所以就需要权限才能使用的,要通过 导包 这个申请权限的仪式才可以正常使用

有的编译器十分方便,当我们没有导包但是又想使用某些特定方法的时候,编译器就会自动在main函数上面给我们生成 我们可能要导入的包的package包路径, 即自动帮我们导包

但是要注意,虽然很方便,但是有时候可能会出错,因为会出现我们上面说的那种情况,

即有些包的名字是相同的,所以编译器自动帮我们导的包可能是一个重名的错包,

这时候我们就无法正常使用方法,因为导错包了

我们可以在java的API文档里查看java的包有哪些以及导入这些包能带来的功能:

英文版:

https://docs.oracle.com/javase/8/docs/api/?xd_co_f=47c934d9-e663-4eba-819c-b726fc2d0847

中文版:

Java 8中文版 - API参考文档

整体上来讲,jdk给我们提供的这些包已经足够我们去开发了,

无非就是有些包可以不用导入,直接用里面的方法,

而有些包需要导入才能正常使用里面的方法

除非有一些情况,你要用的工具在jdk这个五金店里找不到,

那你就要去下载一些包含着你想用的那些方法的包(第三方包),大概率是别的公司或者大佬开发的包,把这些包下载之后再去导入使用

P2-5:java中的数组

我们来讲一讲java当中是怎么声明和定义数组的

我们在C语言中,定义数组是这么定义的:

而我们在java当中有很多种定义数组的方式, 而最常用的一种就是下面这种:

其实就是把C语言定义的数组的中括号给挪动到数据类型后面了

java里面声明数组的方式有两种:

并且java里面,初始化一个数组的方式也有两种:

一种是直接初始化,另一种是用new xxx(数据类型名)先分配空间,然后再一个个的进行初始化

第二种方式有点类似于C语言中的malloc函数分配空间,但注意只是类似,并不是真的跟malloc函数一样,只是方便理解而已,new int[3]确实是给arr_2这个整型数组分配了3个整型变量的空间

数组的输出:java整型数组的输出跟C语言一样,输出 数组名[索引下标] 即可, 记得不要直接输出数组名,不然会输出一堆乱码

并且我们用第二种先分配再赋值的方式去写数组的时候,如果分配了空间却没有赋值初始化,

那么强行输出的时候,计算机就会默认数组中没有赋值的元素为0

.length() 这个函数我们知道是用来查看长度size的, 如果是跟String类型联用的话要记得带上小括号(),

例如 String变量名.length()

而 .length()这个方法除了跟字符类联用之外,也可以跟数组联用,用来输出数组的长度size

(或者说上面的String类型本身就是一种字符数组)

.length()与整型数组联用时就不用在后面带上小括号()了

你可以这么理解, .length 跟String类型联用时 ,是作为函数存在的(类似于C的strlen),

所以最后要加上小括号()

而 .length 跟整型数组联用时, 是作为 象征数组长度size的变量存在的,所以这时候就不用加小括号()

这也是java比C语言方便的地方,C语言里我们要得到一个整型数组的长度,

就需要 用到sizeof的运算,还需要创建一个变量size来存储

而在java中直接用 .length就能得到数组的长度size了, 非常方便

但实际上,我们这两种定义数组的方式都不怎么常用,因为这两种方式都定义的是静态数组:

静态数组一旦定义好之后,长度大小就不会再改变(除非我们手动去改),无法扩容,没有灵活性

这就很不方便我们的实际开发,因为我们在实际开发中,需求肯定是不断变化的,

大小固定的数组是满足不了我们变化无常的需求的

所以我们在实际开发中用的数组一般都是动态数组,会根据我们的需求来动态的变化自身的大小

而讲到数组就不得不提到循环,在java中有一种特殊的循环:增强循环

增强循环,也叫for each循环:

For each循环 第一个参数 数组的数据类型 + 你要输出的元素的代号(一般默认是element),

第二个参数是 数组名

然后你就可以在for each循环的循环体内用 System.out.println( ); 搭配 元素代号element的形式输出数组的元素了

可以直接在编译器里输入foreach然后按下enter来召唤for each循环的框架代码:

java中,数组作为函数参数的方式,跟C语言中基本一样,就是定义数组参数的时候记得用java的方式,把中括号[]挪到数组的数据类型后面

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 9:44:09

用snscrape抓推文+自建情感分类器实战指南

1. 项目概述&#xff1a;为什么现在还要手动抓推文&#xff1f;又为什么要自己训情感分类器&#xff1f;“Scrape Tweets using snscrape and Build a Sentiment Classifier”——这个标题乍看像一份课程作业&#xff0c;但在我过去三年处理过27个舆情监测、竞品口碑分析和KOL影…

作者头像 李华
网站建设 2026/6/5 9:43:16

空间机器学习在精准农业中的三大实战算法

1. 为什么空间机器学习正在改写农田里的“决策权”Precision Agriculture&#xff08;精准农业&#xff09;这个词&#xff0c;十年前还常被当作PPT里的概念词&#xff0c;堆在农业展会的展板角落&#xff1b;今天它已经变成华北平原上拖拉机驾驶室里平板电脑上跳动的实时氮素热…

作者头像 李华
网站建设 2026/6/5 9:40:59

1961-2018年中国0.25°分辨率逐月天然径流量数据集

本数据集提供了1961—2018年中国范围内0.250.25分辨率的天然径流量格点数据&#xff0c;用于反映剔除大规模人类活动影响下的自然河川径流时空变化规律。该数据旨在解决现有天然径流资料缺失率高、站点密度不足等问题&#xff0c;为水循环研究提供本底数据支持。本数据集为未经…

作者头像 李华