【视频的前半段讲的是方法。因为方法和函数几乎是一样的,所以直接跳过去了,从数组开始看,唯一有一点需要注意的,就是现在我们暂时都把方法定义为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相关推荐

  1. 传智播客-刘意-java深入浅出精华版学习笔记Day08

    工具中使用静态: 在同一个类中,main方法只能访问静态方法. [错误:无法从静态上下文中引用非静态,这样的错误一定是因为在main方法中调用了非静态方法.] 对非静态方法来说,只能通过对象(也就是其 ...

  2. 传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(2015年10月25日23:28:50)

    day01 win 7系统打开DOS有趣方法:按住shift+右键,单击"在此处打开命令窗口"(注意:在此处可以是任何的文件夹,不一定是桌面) 用DOS删除的文件不可以在回收站恢复 ...

  3. 2010春节后传智播客报班JAVA,想找学习的人一起团报QQ940834693

    折腾这么久,熬了几个通宵,比较北京的几个有名的java培训机构,看他们的招生简章,听他们的网络课程,最终选择了传智播客.现在听说传智播客团报便宜.所以寻找过了春节想去传智播客学java的同道.qq:9 ...

  4. 传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(day01~day10)(2015年11月17日20:51:59)

    本笔记是个人笔记+摘录笔记相结合,非完全原创 day01 win 7系统打开DOS有趣方法:按住shift+右键,单击"在此处打开命令窗口"(注意:在此处可以是任何的文件夹,不一定 ...

  5. 2015年传智播客java_2015年Java 8强势开始

    2015年传智播客java JDK 8从2015年开始,其博客文章和文章的受欢迎程度将激增. 这与本月将 Java 自动升级到JDK 8恰好吻合. 在这篇文章中,我列出并简要描述了2015年已经发布的 ...

  6. 传智播客 php培训 mysql 刘道成 word 文档,传智播客 刘道成PHP视频教程 mysql 数据库视频教程...

    记得14年的时候有整理过这套课程,但是课程太多 今天却翻不到,所以在这里发一下吧. 4 ]0 {2 I. c- Z! u0 h6 J5 x传智播客出品 讲师 刘道成 Mysql 视频教程 mysql和 ...

  7. 传z播客 刘意_2015年Java基础视频笔记(day18~day20(2016年3月20日14:36:05)

    day18 1.Map引入 Map是区分于Collection的另外一个"老大" 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取 ...

  8. 传z播客 刘意_2015年Java基础视频笔记(day18~day20)(2016年3月20日14:33:31)

    day18 1.Map引入 Map是区分于Collection的另外一个"老大" 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取 ...

  9. 传智播客 - java 就业面试题大全

      从享受生活的角度上来说:"程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做:第二,你非常痴迷 ...

最新文章

  1. Glide 加载圆形头像和gif 图
  2. layoutSubviews总结(转)
  3. css标签显示特性(块级元素、行内元素、行内块元素、标签显示模式转换display、简单文字居中、简单导航栏案例)
  4. Scrapy项目 - 数据简析 - 实现腾讯网站社会招聘信息爬取的爬虫设计
  5. 用quot;hosting.jsonquot;配置ASP.NET Core站点的Hosting环境
  6. mysql 包 过程 job_mysql job实例全过程
  7. C++ 有参构造 无参构造 拷贝构造 以及参数化列表 成员对象之间的执行关系
  8. Java集合之LinkedHashSet源码分析
  9. 互联网日报 | 微信支付启动“8.8智慧生活日”;抖音企业号数量突破400万;苏宁将布局车联网领域...
  10. Scrapy网络爬虫框架实际案例讲解,Python爬虫原来如此简单!
  11. java自己实现linkedlist_自己根据java的LinkedList源码编写的一个简单的LinkedList实现...
  12. 信息科学 计算机 区别,电子信息科学技术和计算机科学技术有什么区别啊
  13. Spring Boot 2.0.3 集成 ActiveMQ 5.15.4 与 内嵌启动 ActiveMQ 服务
  14. Thrift原理简析
  15. SpringBoot + iframe 前后端实现简单实用的下载文件、导出excel案例
  16. 布谷鸟沙盒分析静态文件_布谷鸟cuckoo
  17. Python实战:利用Uplift模型识别营销敏感用户提升市场策略(二)
  18. stm32 为什么有二个晶振
  19. 想转行做数据产品经理?这份书单赶紧收藏起来
  20. 基于PID的车辆ABS建模与仿真

热门文章

  1. 欧姆龙 PLC 程序NJ ST语言EtherCat总线控制 24个伺服轴大型程序电池生产线 包括PLC NJ-1400和威纶通触摸屏程序
  2. 三只松鼠事件竟是乌龙我们能不能给薇娅们一些耐心
  3. php不支持png图片裁剪,thinkphp5.1 图片处理类think-image的png 缩略,裁剪和添加水印透明度丢失的问题...
  4. Unix中sed用法
  5. Apprentice: Using Knowledge Distillation Techniques To Improve Low-Precision Network Accuracy
  6. Android简易实战教程--第五话《开发一键锁屏应用》
  7. Eclipse日志文件存放在何处
  8. NBIOT-BC28模块程序操作接口编写(基于STM32F103ZET6)
  9. Android常用加密解密实现方式
  10. RS-232或RS-485与CAN网络互联互通