java学习笔记之基础语法(二)
1.数组:
概念:同一种类型数据的集合,其实,数组就是一个容器
优点:可以方便的对其进行操作,编号从0开始,方便操作这些元素。
2,数组的格式
元素类型[]数组名=new 元素类型[数组元素个数];
int [] arr = new int[5];
int []arr = new int[]{1,2,3};
int []arr={1,2,3};
3.数组的内存分配及特点
int []arr = new int[4];
栈内存中定义一个数组变量,在堆内存中是实体内容,一排连续的地址。
4.java程序在运行时,需要在内存中分配空间,为了提高效率,有对其进行了区域划分,每一块有特定的处理数据的方式和内存管理方式
内存划分为:寄存器、本地方法区、方法区、栈内存区、对内存区。
栈内存:用于存储局部变量,当变量所属的作用域一旦结束,所占空间就会被释放。
堆内存:数组和对象,通过new创建一个实例放入对中,每一个实例一个内存地址值。
实体中的变量都有默认的初始化值,根据数据类型的不同而不同,正数的数据类型是0,小数的类型是0.0或0.0f,boolean类选哪个是false。
如果将数组中的引用实体设置为null,那么就表示实体不被引用,那么会在不确定的时间内被内存回收机制所回收。
5.数组的常见操作。
(1)对数组操作的动作就是存取,核心思想就是对角标的操作。
首先,遍历打印数组元素,遍历的时候,数组的长度是Array1.length
(2)获取数组的值(最大、最小)
实现方法:
需要比较,并定义变量记录住每次比较后的较大值。
对数组中的元素进行遍历取出,和变量中记录的元素进行比较,如果遍历到变量中进行比较,记住最大的值。
变量结果,该记录就是最大值。
一句话总结:假设一个最大值,然后变量数组,让其和任意一个数据进行比较,如果比它大就进行替换,假如小,就不做任何操作,进行下一次数据操作。
实现代码:就是将数据的值进行记录,还有一种是对角标进行记录。
(3)排序:
1)选择排序
思路:首先得到数组的第一个元素,依次与其他数据进行比较,如果第一个元素大于剩下 的元素,就互换内容。
经过一次比较之后,就可以得到第一个数据为最小的数据,然后将第二个元素,进行下一次的数据比较。
一次类推,直到最后一个元素。
2)冒泡排序
思路:首先在第一次排序中,数组的第一个元素到倒数第二个元素依次与其左边元素进行比较,如果左边大于左边元素,就互换。
经过一次比较,最大的元素就已经存入到数组最右边的节点中
第二论排序则是从第一个元素到倒数第三个元素依次与其右边的元素进行比较,如果左边的元素大于右边的元素,那么就互换。
依次下去,就可将所有 的数据比较而结束。
当然上面的排序可以直接的调用工具类来完成操作。
(4)折半查找
一般的数据,如果没有顺序,那么就只有使用遍历的方法进行数据的查找,如果是有顺序 的时候就可以使用折半查找的方法了‘。
折半查找的实现思路:
1,设置三个变量:min、max、mid,min初始为0,max为数组的最大角标,mid是(max+min)/2.
2.查看mid角标的元素是否与带查找的数据值相等,如果相等就可以返回数据
3.如果待查找小于mid的元素值,那么就说明需要在min和mid之间查找数据,如果大于mid的值就需要在max和mid之间找值
4.如果数组中找不到待查找的元素,那么就返回-1.
6.数组可以存什么:可以存基本数据类型和对象数据类型。
java学习笔记之基础语法(二)的更多相关文章
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- java学习笔记之基础语法(一)
1.java语言基础由关键字.标识符.注释.常量和变量.运算符.语句.函数和数组等组成. 2.1关键字 定义:被java语言赋予了特殊含义的单词 特点:关键字中所有的字母都是小写. 2.2用于定义数据 ...
- Java学习笔记之基础语法(数组)
数组 数组概述:是具有相同数据类型的数据的集合 数组的定义:数据类型 数组名 [] 数组特点: 1,数组是引用数据类型. 2,数组值用大括号,元素之间用逗号隔开,元素的个数是0-N个 3,数组长度是固 ...
- Java学习笔记之基础语法(顺序,条件,循环语句)
顺序结构:自上而下 条件分支选择结构: if条件语句 1,一旦某一个分支确定执行以后,其他分支就不会执行.if后面的条件必须是boolean类型 2,if 后面如果不加大括号,默认相邻的下一 ...
- Java学习笔记之基础语法(数据类型)
8种基本数据类型 整型: byte[1字节] short[2字节] int[4字节] long[8字节] 1,四种整型之间的区别:申 ...
- java学习笔记之OOP(二)
java学习笔记二.面向对象[OOP]Object Oriented Programming 一.三大特性: 1.封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用 ...
- java学习笔记之基础篇
java选择语句之switch //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...
- JAVA学习笔记之基础概念(一)
一.Java 简介: Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称. 由 James Gosling和同 ...
- Hive学习笔记:基础语法
Hive基础语法 1.创建表 – 用户表 CREATE [EXTERNAL外部表] TABLE [IF NOT EXISTS 是否存在] HUserInfo ( userid int comment ...
随机推荐
- HTTP服务器状态码定义
HTTP服务器状态代码定义 1.1 消息1xx(Informational 1xx) 该类状态代码用于表示临时回应.临时回应由状态行(Status-Line)及可选标题组成, 由空行终止.HTTP/1 ...
- POJ 2457 BFS
题意: 说人话: 从A到B连边 找从1到k的最短路 并输出路径(随便一条即可 ) 如果不能到达 输出-1 思路: 搜 //By SiriusRen #include <queue> #in ...
- spark源码编译,本地调试
1.下载源码 2.进入源码根据README.md编译源码,注意使用的是源码目录下的maven编译 3.用idea导入顶层pom文件 4.修改顶层pom文件和example下的pom文件,将scope的 ...
- watch---周期性的方式执行给定的指令
watch命令以周期性的方式执行给定的指令,指令输出以全屏方式显示. 选项 -n:指定指令执行的间隔时间(秒): -d:高亮显示指令输出信息不同之处: -t:不显示标题.
- 今日SGU 5.1
SGU 100 题意: 普通的a+b #include<bits/stdc++.h> #define de(x) cout<<#x<<"="&l ...
- Windows Server 2016 关闭Internet Explorer增强的安全配置
Windows Server 2016 关闭Internet Explorer增强的安全配置 IE11 默认启用 Internet Explorer 增强的安全配置,浏览网页时这个提示十分频繁,是不是 ...
- Linux 内存管理与系统架构设计
Linux 提供各种模式(比如,消息队列),但是最著名的是 POSIX 共享内存(shmem,shared memory). Linux provides a variety of schemes ( ...
- 建堆是 O(n) 的时间复杂度证明。
建堆的复杂度先考虑满二叉树,和计算完全二叉树的建堆复杂度一样. 对满二叉树而言,第 \(i\) 层(根为第 \(0\) 层)有 \(2^i\) 个节点. 由于建堆过程自底向上,以交换作为主要操作,因此 ...
- Spring中的AOP注解方式和XML方式
应掌握内容:1. AOP的全名2. AOP的实现原理[静态代理和动态代理]3. 注解方式的配置4. 通知类型 A. 每种通知的特点和使用方式 B. 获取各种数据,方便日后操作5. 执行表 ...
- ASP.NET MVC 4 (十一) Bundles和显示模式--asp.net mvc中 @Scripts.Render("~/bundles/jquery")是什么意思? 在布局文件中使用Scripts.Render()输出脚本包,Styles.Render()输出风格包:
ASP.NET MVC 4 (十一) Bundles和显示模式 ASP.NET MVC 4 引入的js打包压缩功能.打包压缩jquery目录下的文件,在布局文件中使用Scripts.Render()输 ...