传智播客-刘意-java深入浅出精华版学习笔记Day05
【视频的前半段讲的是方法。因为方法和函数几乎是一样的,所以直接跳过去了,从数组开始看,唯一有一点需要注意的,就是现在我们暂时都把方法定义为public static型的】
定义格式:
数组的初始化:
动态初始化:指定数组长度
int[] arr = new int[3]
解释:
int:数组元素类型
[]:说明这是一个数组
arr:是数组的名称,也是数组在内存空间中的的地址值
new:为数组分配内存空间
3:数组长度/数组中元素的个数
动态初始化:指定数组内元素的值
Java中的内存分配:
Java程序在运行时,为了提高运算效率,就对空间进行了不同区域的划分,每一片区域都有特定的处理数据方式和内存管理方式。栈、堆、方法区、本地方法区、寄存器。后两个我们管不了,今天考虑前两个。
栈:存放的是局部变量
堆:存放的是所有new出来的东西
【在方法定义中或方法声明上的变量都称为局部变量->那我们目前定义过的变量不就都是局部变量了?bingo】
对于栈来说,数据一旦脱离了作用域,就会被释放。
对于数组来说,栈内存中存放的是数组名的地址,这个地址指向堆内存中我们刚刚new出来的那个数组。
为了深入理解,考虑下面这样一个例子:
假如我定义了一个数组arr,又定义了一个数组arr3,令arr3=arr.此时如果我修改arr3的值,arr的值会不会改变呢?
答案是肯定的。
就像之前说的一样,arr的值是这个数组中的数值,在堆中的存储地址。当我把arr赋给arr3时,它们就指向了同一块堆中的地址。也就是说,它们是同一堆数据的两个不同的引用。
我喝这个杯子里的水,和你喝杯子里的水,是不同的人,但是喝的是同样的水!
静态初始化:指定数组内容(本质上是创建之后马上修改数值)
或简化格式:
(隐含的new)
注意:不要同时静态和动态初始化!
后面关于数组的几个test,时间关系我没有看视频,但是看了一下demo代码,有以下需要注意的问题:
1. 数组长度的获取:数组名.length
2. 我们说局部变量离开作用域就不可用了,但是在非主方法的方法中,对数组进行重写,这个值是可以保存下来的。为什么呢?因为即使是在方法中,我给数组元素赋值时,我其实是通过它找到了它引用的、在堆内存里的那个东西,并且改变了那个东西的值。在方法结束后,虽然局部变量不复存在了,但是堆内存里的东西确确实实被修改了。我们说局部变量对全局变量的修改可以通过指针来进行,也是这个意思。
3. 在方法中,一旦遇到return,立刻停止执行返回。所以下面两种表达是等价的。
传智播客-刘意-java深入浅出精华版学习笔记Day05相关推荐
- 传智播客-刘意-java深入浅出精华版学习笔记Day08
工具中使用静态: 在同一个类中,main方法只能访问静态方法. [错误:无法从静态上下文中引用非静态,这样的错误一定是因为在main方法中调用了非静态方法.] 对非静态方法来说,只能通过对象(也就是其 ...
- 传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(2015年10月25日23:28:50)
day01 win 7系统打开DOS有趣方法:按住shift+右键,单击"在此处打开命令窗口"(注意:在此处可以是任何的文件夹,不一定是桌面) 用DOS删除的文件不可以在回收站恢复 ...
- 2010春节后传智播客报班JAVA,想找学习的人一起团报QQ940834693
折腾这么久,熬了几个通宵,比较北京的几个有名的java培训机构,看他们的招生简章,听他们的网络课程,最终选择了传智播客.现在听说传智播客团报便宜.所以寻找过了春节想去传智播客学java的同道.qq:9 ...
- 传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(day01~day10)(2015年11月17日20:51:59)
本笔记是个人笔记+摘录笔记相结合,非完全原创 day01 win 7系统打开DOS有趣方法:按住shift+右键,单击"在此处打开命令窗口"(注意:在此处可以是任何的文件夹,不一定 ...
- 2015年传智播客java_2015年Java 8强势开始
2015年传智播客java JDK 8从2015年开始,其博客文章和文章的受欢迎程度将激增. 这与本月将 Java 自动升级到JDK 8恰好吻合. 在这篇文章中,我列出并简要描述了2015年已经发布的 ...
- 传智播客 php培训 mysql 刘道成 word 文档,传智播客 刘道成PHP视频教程 mysql 数据库视频教程...
记得14年的时候有整理过这套课程,但是课程太多 今天却翻不到,所以在这里发一下吧. 4 ]0 {2 I. c- Z! u0 h6 J5 x传智播客出品 讲师 刘道成 Mysql 视频教程 mysql和 ...
- 传z播客 刘意_2015年Java基础视频笔记(day18~day20(2016年3月20日14:36:05)
day18 1.Map引入 Map是区分于Collection的另外一个"老大" 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取 ...
- 传z播客 刘意_2015年Java基础视频笔记(day18~day20)(2016年3月20日14:33:31)
day18 1.Map引入 Map是区分于Collection的另外一个"老大" 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取 ...
- 传智播客 - java 就业面试题大全
从享受生活的角度上来说:"程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做:第二,你非常痴迷 ...
最新文章
- Glide 加载圆形头像和gif 图
- layoutSubviews总结(转)
- css标签显示特性(块级元素、行内元素、行内块元素、标签显示模式转换display、简单文字居中、简单导航栏案例)
- Scrapy项目 - 数据简析 - 实现腾讯网站社会招聘信息爬取的爬虫设计
- 用quot;hosting.jsonquot;配置ASP.NET Core站点的Hosting环境
- mysql 包 过程 job_mysql job实例全过程
- C++ 有参构造 无参构造 拷贝构造 以及参数化列表 成员对象之间的执行关系
- Java集合之LinkedHashSet源码分析
- 互联网日报 | 微信支付启动“8.8智慧生活日”;抖音企业号数量突破400万;苏宁将布局车联网领域...
- Scrapy网络爬虫框架实际案例讲解,Python爬虫原来如此简单!
- java自己实现linkedlist_自己根据java的LinkedList源码编写的一个简单的LinkedList实现...
- 信息科学 计算机 区别,电子信息科学技术和计算机科学技术有什么区别啊
- Spring Boot 2.0.3 集成 ActiveMQ 5.15.4 与 内嵌启动 ActiveMQ 服务
- Thrift原理简析
- SpringBoot + iframe 前后端实现简单实用的下载文件、导出excel案例
- 布谷鸟沙盒分析静态文件_布谷鸟cuckoo
- Python实战:利用Uplift模型识别营销敏感用户提升市场策略(二)
- stm32 为什么有二个晶振
- 想转行做数据产品经理?这份书单赶紧收藏起来
- 基于PID的车辆ABS建模与仿真
热门文章
- 欧姆龙 PLC 程序NJ ST语言EtherCat总线控制 24个伺服轴大型程序电池生产线 包括PLC NJ-1400和威纶通触摸屏程序
- 三只松鼠事件竟是乌龙我们能不能给薇娅们一些耐心
- php不支持png图片裁剪,thinkphp5.1 图片处理类think-image的png 缩略,裁剪和添加水印透明度丢失的问题...
- Unix中sed用法
- Apprentice: Using Knowledge Distillation Techniques To Improve Low-Precision Network Accuracy
- Android简易实战教程--第五话《开发一键锁屏应用》
- Eclipse日志文件存放在何处
- NBIOT-BC28模块程序操作接口编写(基于STM32F103ZET6)
- Android常用加密解密实现方式
- RS-232或RS-485与CAN网络互联互通