文章标题
来源:互联网 发布:搜狗输入法 编程皮肤 编辑:程序博客网 时间:2024/05/29 08:31
JAVA基础知识整理五
一、数组
案例:班级中的全班成绩平均值引入数组数组侧重点:不在多个变量和变量名,关注数据和数据的处理。操作多个变量,不如操作一个数组方便,数组完成数据的良好处理。以介绍一维数组: 格式1:定义数组及动态初始化 数据类型[] 数组名 = new 数据类型[长度]; 数据类型:byte、short、int、long、float、double、char、boolean是基本数据类型 引用数据类型(类、对象)面向对象 举例:int[] scores = new int[80]; 定义了一个数组容器,最多可以放入80个元素 内存图解: 等号左边,在栈内存(main定义),等号右边在堆内存中定义 格式2:定义数组及静态初始化 完整写法:数据类型[] 数组名 = new 数据类型[]{数据1, 数据2, ...}; 简略写法:数据类型[] 数据名 = {数据1, 数据2, ...}; 区别:简略写法要定义在一行,不能多行定义java语言中的内存模型: 程序是在硬盘上的,要想程序运行要加载到内存中。 (关注)栈内存使用完立即释放,局部变量(等号左边的变量名)可以定义 (关注)堆内存可以用new创建并使用的一个内存区域,局部变量不能在堆内存 方法区是面向对象中的知识(第五次课后) 本地方法(操作系统)不能控制 寄存器(cpu使用)不能控制,存储空间较小
二、二维数组
在其他语言中二维数组存在这个概念,而java中的二维数组不是纯正口味的二维数组。明显是一维数组包含另一个一维数组,变相的方式可以完
成二维数组的概念。
格式1:数据类型[][] 变量名 = new 数据类型[m][n]; 数据类型:基本数据类型和引用类型 [][]:几个中括号,表示几维数组 变量名:见名知意 new:在java中主要就是创建对象,堆内存 m:二维数组中的那个第一个数组包含其他数组的外层数组 n:被包含的一维数组格式1定义出来的二维数组是标准的二维数组格式2:数据类型[][] 变量名 = new 数据类型[m][]; 可以定义出不规则的二维数组 int[][] arr = new int[3][]; // 以下就是不规则的内部数组 arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[4];格式3:数据类型[][] 变量名 = new 数据类型[][]{{数组元素1, 数组元素2}, {数组元素3, 数组元素4, 数组元素5}, {数组元素6}}; 建议简写:数据类型[][] 变量名 = {{数组元素1, 数组元素2}, {数组元素3, 数组元素4, 数组元素5}, {数组元素6}}; 举例:int[][] scores = {{69, 79, 89}, {99, 100}, {96}};杨辉三角形: 1、我们要化繁为简,软件项目要化繁为简(工作经验心得,过度设计只会拖累你当前的进度:软件的需求会变化) 2、分析图形,先做一个三角形 3、用数字1代替三角形的静态部分(第一列和每行的最后一列) 4、杨辉三角形动态部分的数据规则:动态数据每个元素的值=当前值的上一行值([i-1][j]) + 当前值的上一行值的左邻居([i-1]
[j-1])
5、数组不论是一维还是二维都可以通过下标直接访问或赋值,直接对静态外的部分和静态部分进行了坐标值的赋值。进而完成绘制图
形。
基本数据类型和引用数据类型的传递:在方法上(指的就是方法后面的那个小括号可以接收基本类型数据和引用类型数据),如果传递的是基本数据类型: 会把基本数据类型的值复制一份(共两份,当前方法一份,传递到调用的方法里面的是复制的那一份,相互不影响) 在调用方法没有返回值的时候,我们的两个值没有任何影响和交集在方法上,如果传递的是数组(在java语言中数组是当成对象类型、引用类型看待的)是把当前从栈内存指向堆内存的那个地址值赋值了一份 虽然两个方法用的不是一个值,是复制的值,但是指向的堆内存地址可是一个,当一个修改堆内存中的数据时,会影响另一方的变化面试题,一定要告诉面试者在java语言中只有值传递,没有引用传递,虽然是引用类型做方法参数,但是是这个引用的内存地址值,还是一个值 java语言之父james gosing也赞同这样的说法
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- CSDN论坛网友写的一篇IOCP文章 -- 理解IOCP
- leetcode -- Trapping Rain Water -- 重点
- nginx源码分析--使用GDB调试
- DCT加密(Java((伪
- Android高德地图开发--读取解析KML文件并显示在地图上
- 文章标题
- 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
- 优化积分方法在Matlab中的实践
- Linux负载均衡软件LVS之一(概念篇)
- android 解码出来的视频frame数据,是如何一步步的传递到显示端的(使用 GPU offline 合成)
- java编程思想(读书笔记):9.持有你的对象
- leetcode303-range sum query-python
- 3种LVS/Nginx/HAProxy负载均衡器的对比分析
- 工作中实用shell脚本与语句