Java自学第4课:Java数组,类,对象

1 一维数组的创建和使用

2种创建形式:

(1)先声明,再用new分配内存

(2)声明的同时分配内存

2种幅值形式

(1)用new{}赋值

(2)用{}赋值

如果不使用的话,eclipse会提示变量未使用。

此外,对于整形数组,如果只初始化不幅值,则值为0

下面这个程序对一维数组的使用进行了验证。

package test1;public class hello {public static void main(String[] args) {// 声明一维数组int a[];a = new int[5];// 数组的使用for(int i = 0; i<5; i++){System.out.println("a["+i+"]="+a[i]);}// 声明一维数组int b[] = new int[10];// 数组的使用for(int i = 0; i<10; i++){System.out.println("b["+i+"]="+b[i]);}// 初始化int c[] = new int[]{1,2,3};// 数组的使用for(int i = 0; i<3; i++){System.out.println("c["+i+"]="+c[i]);}// 初始化int d[] = {4,5,6,7,8};// 数组的使用for(int i = 0; i<5; i++){System.out.println("d["+i+"]="+d[i]);}}}

运行结果为

a[0]=0
a[1]=0
a[2]=0
a[3]=0
a[4]=0
b[0]=0
b[1]=0
b[2]=0
b[3]=0
b[4]=0
b[5]=0
b[6]=0
b[7]=0
b[8]=0
b[9]=0
c[0]=1
c[1]=2
c[2]=3
d[0]=4
d[1]=5
d[2]=6
d[3]=7
d[4]=8

可以直接对元素进行赋值,比如

d[2] = 100;

2 二维数组的创建和使用

二维数组的声明也是靠new来分配内存。但要注意每一维可以分配不同的长度。如:

在实际使用时,还是最好声明同时做好初始化。

int a[][] = {{1,2},{3,4}};

3 遍历数组

最常见的遍历就是用for循环来实现。也可以用foreach实现。

数组的长度可以用length属性获取。

4 元素操作

fill方法可以填充数组元素,这个方法可以用作初始化。

从这里开始,比如在头上包含import java.util.*;

5 排序

sort方法可用于排序,这个应用的地方很多。

此外,书上还介绍了常用的排序算法,包括:

  • 冒泡排序
  • 选择排序
  • 反转排序

实现这些排序算法,是基本功。

6 数组复制

copyOf和copyOfRange用于拷贝数组。疑问,复制后不是指向同一个数组吧?会不会联动。可以测试一下。

7 数组查询

二分法搜索方法为binarySearch,使用前必须先排序。

而且,可以对字符串数组进行查询。很厉害吧。

------------------------------------------------------------------------

下面开始学类和对象

8 类和对象

任务:定义book类。

先了解几个概念:成员变量;成员方法;权限修饰符;局部变量;this关键字;构造方法(就是构造函数);静态变量;静态常量;静态方法;主方法。

主方法是静态的,所以只能调用静态方法。

对象的创建;

访问对象的属性和行为;

对象的引用;

Book book;

对象的比较 == 和 equals 有本质区别。==是看地址, equals是看对象内容。

对象的销毁:Java有完整的销毁机制,不需要手动销毁。

垃圾回收机制只能收回new出来的对象,对于不是new出来的,可用finalize()

此外还有system.gc强制启动垃圾回收机制。

9 包装类

Java不能定义基本类型对象,因此提供了包装类来解决这个问题。 

(1)Integer类

(2)Boolean类

(3)Byte类

(4)Character类

(5)Double类

(6)Number类

10 数字处理类

数字格式化,基本数学运算方法,随机数,都的用到数字处理类。

(1)数字格式化

(2)数学运算,Math类,三角函数,角度转换,指对数函数,取整,极值,绝对值

(3)随机数,0-1的随机数

(4)大数字运算,长小数运算,都有对应的类。

这些都是比较重要的基本知识,等用到了再回头看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/130442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apb介绍

https://www.cnblogs.com/xianyuIC/p/17279209.html***带testbench https://zhuanlan.zhihu.com/p/623829190?utm_id0 https://zhuanlan.zhihu.com/p/607964532带testbench by四人独行 https://blog.csdn.net/weixin_40377195/article/details/124899571 APB是最简单的AMBA总…

产品手册应该如何组织内容,以便用户能够快速找到所需信息?

产品手册应该如何组织内容&#xff0c;以便用户能够快速找到所需信息&#xff1f;这是一个关乎用户体验和产品文档效力的重要问题。当用户需要了解产品的功能、操作指南或故障排除时&#xff0c;他们希望能够轻松地找到准确、清晰的信息&#xff0c;而不是在冗长的手册中迷失方…

Selenium处理Cookie

01、cookie介绍 HTTP协议是无状态的协议。一旦数据交换完毕&#xff0c;客户端与服务器端的连接就会关闭&#xff0c;再次交换数据需要建立新的连接&#xff0c;这就意味着服务器无法从连接上跟踪会话。也就是说即使第一次和服务器连接后并且登录成功后&#xff0c;第二次请求…

uniapp 离线打包 google 登录

官方文档&#xff1a; Oauth 模块 | uni小程序SDK 其中有 clientid 和反向url clientid 是 xxxx.apps.googleusercontent.com 反向url 是 com.googleusercontent.apps.xxx

【Android】android studio 怎么下载NDK

序言 新版的android studio在【Project Structure】里面的NDK路径是灰色的&#xff0c;无法点击&#xff0c;导致找不到ndk路径&#xff0c;也无法添加ndk。 下载方法 去这里找&#xff0c;一定要点这个按钮才能出现ndk。 下载之后&#xff0c;要在这个文件里面添加ndk路径

HT5010 音频转换器工作原理

HT5010是一款低成B的立体声DA转换器&#xff0c;内部集成了内插滤波器、DA转换器和输出模拟滤波等电路。其可支持多种音频数字输入格式&#xff0c;支持24-bit字节。 该HT5010 基于一个多比特位的Δ-Σ调制器&#xff0c;将数字信号转化成两个声道的模拟信号并经过模拟滤波器滤…

Hadoop环境搭建

1 Hadoop集群环境搭建概述 所谓集群&#xff0c;就是一组通过网络互联的计算机&#xff0c;集群中的每一台计算机称作一个节点&#xff0c;Hadoop集群搭建就是在这个物理集群之上安装部署Hadoop相关的软件&#xff0c;然后对外提供大数据存储和分析等相关服务。 一个前提&…

设置IDEA快捷生成方法头,类头注释

1.File->settings->editor->live templates进入Live Template界面进行设置&#xff1a; 下一步&#xff1a; 下一步&#xff1a; /*** Title: $title$* author: sunyanzeng* date: $datatime$*/在需要添加文件头的地方打出“aa”&#xff0c;回车&#xff0c;会自…

postgresql 触发器如何生成递增序列号,从1开始,并且每天重置

大家好&#xff0c;我是三叔&#xff0c;许久不见&#xff0c;这期给大家介绍一下笔者在开发中遇到的业务处理&#xff1a;pgsql 创建触发器生成每日递增序列&#xff0c;并且第二天重置&#xff0c;根据不同的用户进行不同的控制。 1.创建生成递增序列的 table 表 -- 创建us…

MySQL8.0.26-unbuntu版安装

MySQL8.0.26-ubuntu版安装 在这里会有一个坑&#xff0c;就是我在安装的时候,是按照另外一种版本的安装&#xff0c;报错没有rpm这个包&#xff0c;然后我就去下载&#xff0c;然后就报错 E: 无法定位软件包 &#xff0c;害的我找了好久的资料&#xff0c;一直没有解决&#x…

喜报|英码科技荣登“广州首届百家新锐企业名单”、“2022年度中国好技术项目库名单”榜单

近日&#xff0c;英码科技喜报连连&#xff0c;在刚刚公布的2022年度“中国好技术”项目库入选名单和广州首届百家新锐企业名单中&#xff0c;英码科技凭借出色的技术创新能力和优秀的企业竞争力荣登榜单。 2022年度“中国好技术” 近期&#xff0c;2022年度“中国好技术”征集…

iOS开发 Command PhaseScriptExecution failed with a nonzero exit code

解决步骤&#xff1a; 1.重启电脑 2.把xcode项目Build Setting中的Sandboxing置为No 3.重跑项目

大数据毕业设计选题推荐-收视点播数据分析-Hadoop-Spark-Hive

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

Java web(六):FilterListenerAJAX

文章目录 一、Filter1.1 基本介绍1.2 过滤器的执行流程1.3 拦截路径配置1.4 过滤器链1.5 案例 二、Listener三、AJAX3.1 快速入门3.2 Axios异步框架 四、 JSON4.1 JSON基础语法4.2 Fastjson 五、 案例JSONAxiosServlet Java web的三大组件&#xff1a;Servlet、Filter、Listene…

Linux Crontab 定时任务

crond 服务 Linux 通过 crond 服务来支持 crontab。 查看 crond 服务是否已经安装 输入下面命令确认 crond 服务是否已安装。 systemctl list-unit-files | grep crond 如果为 enabled&#xff0c;表示服务正运行。 crontab 文件 crontab 要执行的定时任务都被保存在 /etc…

基于单片机的衣物消毒清洗机系统设计

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、系统总体设计2.2 功能分析2.3 系统框架设计 二、硬件电路设计3.1 电源模块的设计 三、 软件设计4.1 系统整体流程4.4 软件整体流程实物图 四、 结论五、 文章目录 概要 基于单片机的衣物消毒清洗机可以应用在…

一篇文章带你学会MybatisPlus~

实现MybatisPlus的简单使用&#xff1a; 数据库准备部分&#xff1a; //创建名为mybatisPlus的数据库 create database mybatisPlus;//使用该数据库 use mybatisPlus;//创建user表 CREATE TABLE user( id bigint(20) NOT NULL COMMENT 主键ID , name varchar(30) DEFAULT NUL…

Sqoop的安装和使用

目录 一.安装 二.导入 1.全量导入 一.MySQL导入HDFS 二.MySQL导入Hive 2.增量导入 一.过滤导入hdfs/hive 二.导出 一.安装 1.下载地址&#xff1a;sqoop下载地址 2.解压 tar -zxvf ./sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C ../module/ 3.改名和配置归属权限 #改名…

首发scitb包,一个为制作统计表格而生的R包

目前&#xff0c;本人写的第3个R包scitb包已经正式在R语言官方CRAN上线&#xff0c;scitb包是一个为生成专业化统计表格而生的R包。 可以使用以下代码安装 install.packages("scitb")scitb包对我而言是个很重要的R包&#xff0c;我的很多想法需要靠它做平台来实现&a…

软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

点此获取更多相关资料 简介 自动化测试脚本可以模拟用户与应用程序的交互&#xff0c;例如点击按钮、输入数据、导航到不同的页面等等&#xff0c;以验证应用程序的正确性、性能和稳定性。 自动化测试在回归测试、冒烟测试等测试流程中都可以极大地起到节省时间、节省人力的作…