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;然后对外提供大数据存储和分析等相关服务。 一个前提&…

删除顺序表中一个区间的元素 | C语言代码

题目&#xff1a; 已知一组数据&#xff0c;采用顺序存储结构存储&#xff0c;其中所有的元素为整数。设计一个算法&#xff0c;删除元素值在[x,y]之间的所有元素。 输入格式: 输入包含三行数据&#xff0c;第一行是表中元素个数&#xff0c;第二行是顺序表的各个元素&#xf…

设置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…

四、三种基本程序结构

1、程序结构 (1)在C语言程序中&#xff0c;一共有三种程序结构&#xff1a;顺序结构、选择结构(分支结构)、循环结构。 顺序结构&#xff1a;按照事务本身特性&#xff0c;必须一个接着一个来完成。选择结构&#xff1a;到某个节点后&#xff0c;会根据一次判断结果来决定之后…

MySQL8.0.26-unbuntu版安装

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

C语言的前置知识:数据量单位、汇编语言和寄存器

数据量单位 位&#xff08;bit&#xff09;是计算机中最小的存储单位&#xff0c;每一位可以存储一个二进制码值的0或1。而字节&#xff08;byte&#xff09;则通常是由八个位组成的一个存储单元。在计算机中&#xff0c;字节是最小的可寻址单位&#xff0c;这意味着 CPU 在使…

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

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

antv/g6 交互与事件及自定义Behavior

监听和绑定事件 在 G6 中&#xff0c;提供了直接的单机事件、还有监听时机的方法。可以监听画布、节点、边、以及各函数被调用的时机等&#xff1a; 1. 绑定事件 要绑定事件&#xff0c;首先需要获得图表实例&#xff08;Graph 实例&#xff09;&#xff0c;然后使用 on 方法…

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…

[SSD综述 1.5] SSD 主控和固件核心功能详解(万字)

依公知及经验整理,原创保护,禁止转载。 专栏 《SSD入门到精通系列》 <<<< 返回总目录 <<<< 1. 主控概述1.1 主控作用2. 主控的硬件功能和实现2.1 主控处理器2.2 闪存、主机接口2.3 主控纠错2.4 断电保护3 固件功能3.1 FTL3.2 预留空间(Over-provisi…

Linux Crontab 定时任务

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