JAVA基础知识总结:五
一、初步认识数组
1.理解数组
数组是用来存储相兼容数据类型的定长的容器
特点:
a.只能存放相兼容数据类型,不能存放多种数据类型
b.可以存放基本数据类型和引用数据类型
c.数组是定长的,一旦被初始化,数组的长度就不能发生改变
d.将数组中存储的数据称为元素
2.使用数组的好处:
可以自动给数组中的数据从0开始编号,方便操作这些数据,我们把这些编号叫做下标(索引)
3.定义数组
数组是一种引用数据类型
int x = 4;
int 是一种基本数据类型,int[]是一种引用数据类型,用来表示数组
int[] y = xxx;
方式一:数据类型[] 数组名称,例如:int[] x,String[] s
方式二:数据类型 数组名称[]
推荐使用方式一
二、数组的初始化
Java中的数组必须先初始化,然后才可以使用,所谓初始化,就是为数组中的每个数组元素开辟内存空间,并且为每个元素赋初始值
1.静态初始化
初始化的时候由程序员指定每个数组元素的初始值,交给系统去计算数组的长度(大小)
语法:元素类型[] 数组名称 = new 元素类型[]{元素0,元素1,元素2.。。。。。};
2.动态初始化
初始化是程序员只需要指定数组的大小(长度),对应的初始值由系统自行进行分配
语法:元素类型[] 数组名称 = new 元素类型[数组的长度];
系统对初始值的分配规则:
a.整型:0
b.浮点型:0.0
c.boolean:false
d.字符型:‘\u0000’(在不同的系统平台上的展示结果是不一样的,有的是方框(口),有的是空格)
e.引用数据类型:null
注意:在初始化数组时,静态初始化和动态初始化一定不要同时使用(在指定数组长度的同时,不要给数组中每个元素赋初始值)
数组初始化完成之后,就可以使用数组了,包括数组元素的访问,给数组元素赋值,获取数组的长度等
三、数组的使用
见代码
四、内存中的数组
数组是一种引用数据类型,数组元素和引用变量在内存中时分开存放的
数组引用变量存放在栈空间中,数组元素存放在堆空间中
扩展:
1>基本数据类型和引用数据类型在内存中的区别?
基本数据类型
int x = 4;
int y = x;
y = 20;
x = ?
引用数据类型
int[] a = {22,33};
int[] b = a;
b[0] = 18;
a[0] = ?
2>内存的分类:
a.寄存器:最快的存储区,由编译器根据需求进行分配,我们在程序中无法控制
b.栈:存放基本数据类型的变量和引用数据类型的引用
特点:被执行完成之后,函数或者变量所占用的空间会被销毁
c.堆:存放new出来的对象,例如:new出来的实际的数组元素
d.静态域:存放静态成员(static)
e.常量池:基本类型常量和字符串常量
举例:内存结构------》一套房子
卧室----睡觉
厨房----做饭
客厅----招待客人
五、数组的应用
1.排序
1>冒泡排序
思路:比较相邻两个下标对应的元素值,如果符合条件就交换位置(最值出现在最右边)
2>选择排序
思路:固定一个下标,然后使用这个下标对应的值依次和他后面的值进行比较
2.查找
1>顺序查找
思路:遍历数组,依次把每一位元素和要比较的数值进行比较
2>二分法查找
思路:前提是一个数组是有序,通过折半来缩小查找范围,提高效率
JAVA基础知识总结:五的更多相关文章
- java基础知识(五)java类
类是java的核心和本质,是java语言的基础. 一.java中的类 1.类class 一个类可以包含局部变量.实例变量.类变量(静态变量) 一个类至少有一个构造方法,如果没有,系统会默认给出一个无参 ...
- 对象数组、集合、链表(java基础知识十五)
1.对象数组的概述和使用 * 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. Student[] arr = new Student[5]; //存储学生 ...
- Java基础知识陷阱(五)
本文发表于本人博客. 今天我来说说关于静态变量初始化.数组.==与equals的问题,看下面代码: public class Test{ private final int age; private ...
- JAVA基础知识(五)数据类型转换
当使用 +.-.*./.%.运算操作时,遵循如下规则: 1.只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型: 2.如果两个操作数中有一个 ...
- Java基础知识陷阱系列
Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
- java基础知识回顾之---java String final类普通方法
辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /* * 按照面向对象的思想对字符串进行功能分类. * ...
- Java 基础知识总结
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.数据类型: 数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte 8位 (by ...
- Java基础知识总结(超级经典)
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
随机推荐
- Eclipse rap 富客户端开发总结(6) : 如何发布rap到tomcat
1.先下载以来的打包插件 war products 输入下面的地址,选择相应的插件 新建一个 war product Configutation向导 下面的war product Configut ...
- PowerShell脚本—停止占用8080端口的进程
$str = netstat -ano $list = $str.Split('\n') ; $i -lt $list.Length; $i++) { $item_list = [System.Tex ...
- JVM菜鸟进阶高手之路七(tomcat调优以及tomcat7、8性能对比)
转载请注明原创出处,谢谢! 因为每个链路都会对其性能造成影响,应该是全链路的修改压测(ak大神经常说全链路!).本次基本就是局域网,所以并没有怎么优化,其实也应该考虑进去的. Linux系统参数层面的 ...
- 【设计模式】module(模块)模式
写在前面 最近刚接触到设计模式, <head first设计模式>里有一篇文章,是说使用模式的心智, 1.初学者"心智" :"我要为HELLO WORLD找个 ...
- MySQL主从同步和读写分离的配置
主服务器:192.168.1.126 从服务器:192.168.1.163 amoeba代理服务器:192.168.1.237 系统全部是CentOS 6.7 1.配置主从同步 1.1.修改主服务器( ...
- Hex to Int 【十六进制转十进制】
long HexToInt(char *msgline){ long strlength,chvalue,tvalue; WORD i; chvalue=0; strlengt ...
- class DELPHICLASS TObject
class DELPHICLASS TObject 1.自己猜想:delphi,是windows平台的快速应用程序开发工具Rapid Application Development 简称RAD. ...
- bzoj3209 花神的数论题 (二进制数位dp)
二进制数位dp,就是把原本的数字转化成二进制而以,原来是10进制,现在是二进制来做,没有想像的那么难 不知到自己怎么相出来的...感觉,如果没有一个明确的思路,就算做出来了,也并不能锻炼自己的能力,因 ...
- 支持向量机(Support Vector Machine)-----SVM之SMO算法(转)
此文转自两篇博文 有修改 序列最小优化算法(英语:Sequential minimal optimization, SMO)是一种用于解决支持向量机训练过程中所产生优化问题的算法.SMO由微软研究院的 ...
- Python协程深入理解
从语法上来看,协程和生成器类似,都是定义体中包含yield关键字的函数.yield在协程中的用法: 在协程中yield通常出现在表达式的右边,例如:datum = yield,可以产出值,也可以不产出 ...