【Java SE】Day05数组
一、数组的定义和访问
1、初始化
- 动态new int[10];--默认值
- 静态new int[]{1,2,3};,省略为{1,2,3};
2、访问
长度arr.length属性(数组的属性)
打印数组名,得到的是内存地址哈希值
二、数组原理内存图
1、概述:程序需要在内存中 运行,结束后清空内存,故JVM需要对内存进行空间的分配和管理
2、内存划分
- 堆内存:new的对象
- 方法区:存放字节码文件
- 方法栈:调用的方法在栈中执行
- 寄存器:供CPU使用
- 本地方法栈:JVM使用操作系统时使用
三、数组的常见操作
1、常见异常及解决
- 数组越界:ArrayIndexOutOfBoundsException
- 空指针异常:NullPointerException,直接等于了null,需要进行new动态初始化
2、数组遍历
3、获取最大值
4、数组反转※
方法:定义前后双指针,满足条件时交换
四、数组作为方法参数和返回值
1、作为方法的参数
- 传递的是地址
- 方法的三要素:方法名、返回值、参数列表
2、作为方法的返回值
方法有多个返回值时,可以通过数组进行返回
3、方法参数类型的区别
- 基本类型:传递的是数据值
- 引用类型:传递的是地址(数组是new出来的对象,new出来的一般都是是引用类型)
【Java SE】Day05数组的更多相关文章
- day05<Java语言基础--数组>
Java语言基础(数组概述和定义格式说明) Java语言基础(数组的初始化动态初始化) Java语言基础(Java中的内存分配以及栈和堆的区别) Java语言基础(数组的内存图解1一个数组) Java ...
- Java SE 基础:标识(zhì)符
Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不 ...
- Java Se :Map 系列
之前对Java Se中的线性表作了简单的说明.这一篇就来看看Map. Map系列的类,并不是说所有的类都继承了Map接口,而是说他们的元素都是以<Key, Value>形式设计的. Dic ...
- 黑马程序员 ——Java SE(1)
----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...
- 【Java SE】如何用Java实现冒泡排序
摘要: 作为一名Java开发工程师,手头如果不会几个常见的排序算法,怎么可能经过笔试题这一关呢.据我所知,许多大型的公司的笔试题都有排序题,那我们先从最简单的排序:冒泡排序开始,以后几篇博客将继续更新 ...
- 【Java SE】如何用Java实现直接选择排序
摘要:直接选择排序属于选择排序的一种,但是它的排序算法比冒泡排序的速度要快一些,由于它的算法比较简单,所以也比较适合初学者学习掌握. 适宜人群:有一定Java SE基础,明白Java的数据类型,数组的 ...
- 【读书笔记】《写给大忙人看的Java SE 8》——Java8新特性总结
虽然看过一些Java 8新特性的资料,但是平时很少用到,时间长了就忘了,正好借着Java 9的发布,来总结下一些Java 8中的新特性. 接口中的默认方法和静态方法 先考虑一个问题,如何向Java中的 ...
- 【Java SE】如何用Java实现插入排序
摘要:前面三期分别写了三篇简单排序的算法,今天来讲一点稍微难一点的排序算法-----插入排序. 基本思想: 设n个数据已经按照顺序排列好(假定从小排到大). 输入一个数据x,将其放在恰当的位置,使其顺 ...
- 【Java SE】如何用Java实现反转排序
摘要:反转排序是将原先已经排序好了的重新排序,是原来的数组元素的顺序反转过来.假设原来的数组顺序是{6,5,4,3,2,1},反转之后的顺序就是{1,2,3,4,5,6}.这个排序的算法不是很难,代码 ...
- Java SE之快速失败(Fast-Fail)与快速安全(Fast-Safe)的区别[集合与多线程/增强For](彻底详解)
声明 特点:基于JDK源码进行分析. 研究费时费力,如需转载或摘要,请显著处注明出处,以尊重劳动研究成果:博客园 - https://www.cnblogs.com/johnnyzen/p/10547 ...
随机推荐
- 基于electron+vue+element构建项目模板之【创建项目篇】
1.概述 electron:使用javascript.css.html构建跨平台的桌面应用程序 vue:数据驱动视图中的一款渐进式的javascript框架 element:基于vue的桌面端UI组件 ...
- 15. 第十四篇 安装CoreDNS
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483850&idx=1&sn=4bfdb26f ...
- 配置 jenkins 权限管理
安装插件 更改认证方式 创建用户 创建角色并授权 给用户指定角色 新用户登录
- 220722 T4 求和 /P4587 [FJOI2016]神秘数 (主席树)
好久没打主席树了,都忘了怎么用了...... 假设我们选了一些数能构成[0,x]范围内的所有值,下一个要加的数是k(k<=x+1),那么可以取到[0,x+k]内的所有取值,所以有一种做法: 对于 ...
- Go的网络编程详解
一 互联网协议介绍 1.1互联网分层模型 互联网的逻辑实现被分为好几层.每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持.用户接触到的只是最上面的那一层,根本不会感觉到下面的几层.要理解互联 ...
- 第 46 届 ICPC 国际大学生程序设计竞赛亚洲区域赛(沈阳)
有时候,很简单的模板题,可能有人没有做出来,(特指 I ),到时候一定要把所有的题目全部看一遍 目录 B 题解 E F 题解 H I 题解&代码 J B 输入样例 3 2 1 2 1 2 3 ...
- JSTL组件的下载链接地址
配置JSTL和下载jar包 JSTL的安装包 下载地址:http://tomcat.apache.org/download-taglibs.cgi 在下载页面找到JSTL的规范和实现的两个jar包,如 ...
- Linux--多线程(一)
线程 线程的概念 线程: 线程是OS能够进行运算调度的基本单位.线程是一个进程中的一个单一执行流,通俗地说,一个程序里的一个执行路线就叫做线程. 可以知道的是,一个进程至少有一个执行线程,这个线程就是 ...
- 1.WEB应用模式
1. Web应用模式 在开发Web应用中,有两种应用模式: 前后端不分离[客户端看到的内容和所有界面效果都是由服务端提供出来的.] 前后端分离[把前端的界面效果(html,css,js分离到另一个服务 ...
- node 学习笔记 模块和包的管理与使用
1.前言 对于各种编程语言,代码组织是很重要的.而模块是node中的代码组织机制,node中的很多功能都以模块划分,而模块中又封装了许多方法,而且不会改变全局作用域,极大的方便了各开发者的需求. 2. ...