一、内存分析

内存分析:指数据的存储,理解程序执行过程,运行期的行为,不是编译期。

分类

栈: 方法栈存储方法的局部变量|形参后进先出

堆: 对象堆存储new的对象散列存储

方法区: 特殊的堆,类方法区,存储类的信息,存储不变的信息共享的信息,散列存储

内存示例:

publicstaticvoid main(String[] args) {

//创建对象

Pig pig =new Pig();

pig.color="黑色";

pig.weight=1000;

pig.gongDi(); //带了自己的数据

//一个人

Person p =new Person();

p.name ="王志勇";

p.age =18;

p.gender =true; //true-->男

p.height =1.92;

p.laugh();

//一个人

Person p2 =new Person();

p2.name ="老裴";

p2.laugh();

}

引用

引用名在左边,对象在右边,通过引用访问、改变对象。

“引用指向了谁?””对象被谁所指向?”

1、  JAVA一切皆为值传递 (地址的副本)

2、  一个对象可以有多个引用所指向,当其中一个引用对该对象发生了变化,其他的引用也可见。

3、  一个引用在同一个时刻只能指向一个对象

二、构造器

构造器也成为构造函数,特殊的方法,用于初始化对象信息,为new服务(其他地方不能调用)。创建对象类名引用 =new 构造器;

1、格式

修饰符类名([形参列表]){

}

注意点

1)、没有返回值类型|void,可以存在return ,跳出方法

2)、作用: 初始化对象信息的

3)、new 创建时调用构造器,与new一起

2、空构造

没有参数的构造器,如果没有编写任何构造器,javac自动加入空构造

一旦加入构造器,javac不再加入,建议,手动加入空构造

3、构造器重载

存在多个构造器,构造器之间存在重载,注意: 就近原则,如果方法的局部变量|形参与属性同名,使用 this.区分

三、this

1、this:代表调用者本身,在成员方法、构造器中形参隐式传递this,避免发生就近最优原则。

2、this([实参])构造器首行,调用其他构造器。

This的用法:1、哪个对象在调用This所在的函数,那么This就等于哪个对象

2、当定义类功能时,该函数内部需要调用该函数的对象时,用This代表这个对象。

3、但凡本类功能内部使用了本类对象,都用this表示。

4、this能调用构造函数,而且只能放在第一行。

四、static

是一个修饰符,只能修饰成员(成员变量。成员函数)

静态的,凡是静态的就是跟对象无关,属于类的;都是对象们共享。修饰以下

1、  属性–>静态变量类变量

2、  方法 -->静态方法类方法

3、  静态块 :在使用类之前加载,仅加载一次

4、 当成员被静态变量修饰后,就多了一中调用方法,除了可以被对象调用外,还可以直接被类名调用,方法为 类名.静态成员

5、 随着类的加载而加载

6、 优先与对象的存在

7、 被所有对象共享

需要注意 静态方法只能访问静态成员。非静态方法可以访问静态也可以访问非静态

静态方法中不可以定义this,super等。

 

类变量随着类的加载而存在于方法区中,随着类的消失而消失

实例变量随着对象的建立,存在与堆中。随着对象的消失而消失

 

主函数是静态的。

静态的方法|块: 不能直接访问成员信息

publicclassTestStatic {

public static inta; //静态变量 类变量

public int b; //成员变量 实例变量

publicvoid t(){

System.out.println("成员方法");

}

//静态方法

publicstaticvoid test(){

System.out.println("静态方法。。。。。");

/* 静态的不能直接访问非静态信息

b =100;

t();

*/

}

//静态块: 在使用类之前加载,仅加载一次

static{

a =100;

System.out.println("静态块,加载类信息,初始化类的信息");

}

publicstaticvoid main(String[] args) {

inta=200;

System.out.println(TestStatic.a);

TestStatic.a =100; //当前类中类.可以省略

/*TestStatic.*/test(); //调用静态方法

}

}

 

Java学习第五天的更多相关文章

  1. 201671010140. 2016-2017-2 《Java程序设计》java学习第五周

    java学习第五周心得体会        本周,是Java学习第五周,随着时间推移,随着课本内容的推进,我们接触到的程序也开始变得越来越复杂,不再是二三章那些用来练手的小程序了,这一点,在我们的例题运 ...

  2. java学习(五)

    学号 20189214 <Java程序设计>第五周学习总结 教材学习内容总结 输入输出 文件系统可以包含3种类型的对象:文件.目录和符号链接. 一个文件或路径是一个java.io.File ...

  3. 从.Net到Java学习第五篇——Spring Boot &&Profile &&Swagger2

    从.Net到Java学习系列目录 刚学java不久,我有个疑问,为何用到的各种java开源jar包许多都是阿里巴巴的开源项目,为何几乎很少见百度和腾讯?不是说好的BAT吗? Spring Boot 的 ...

  4. 别样JAVA学习(五)继承上(1.0)Object类equals()

    上一节继承下(一)我们进行抽象类.接口以及多态的学习. 接下来大家我们讲点特殊的东西就是object类, 我们一直在说继承,子继承了父,父还有没有父类呢, 为什么这么思考,大家想构造函数的第一行是不是 ...

  5. JAVA学习第五十九课 — 网络编程概述

    网络模型 OSI(Open System Interconnection)开放系统互连:參考模型 TCP/IP 网络通讯要素 IP地址 port号 传输协议 网络參考模型 七层OSI模型的基本概念要了 ...

  6. Java学习笔记五:Java中常用的运算符

    Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...

  7. 别样JAVA学习(五)继承上(1.1)Object类toString()

    接下来说完equals以后,我们学习接下来的toString(), Java又觉得全部对象不光具有比較性, 还能使对象变成字符串被打印. 出现 曾经前面显示的是数组.如今显示的是这个对象所属的类. 紧 ...

  8. Java学习十五

    学习内容: MyBaits 以前从来没有接触过mybatis,通过今天的学习知道这是一个框架,适用于关注SQL优化和需要频繁更新的项目. 今天做一个关于mybatis项目的入门小程序,效果很不理想. ...

  9. java学习第五天2020/7/10

    一. 今天继续学习算法: 1. 查找,一般我们采用的是顺序查找的方法,这种方法是比较简单,但是效率却很低:一般就是从第一个数开始与想要查找的那个数进行比较,当遇到相同的时候则就成功查找了: 另一种比较 ...

  10. Java学习笔记五——流程控制

    分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...

随机推荐

  1. 小心buffer的拼接问题 --转

    最近遇见一个从前没有遇见的陷阱,就是data里的chunk拼接. 由于本人身为前端工程师,对buffer的概念实在是认识不足.这次的场景是我要通过http.get去抓取远端的网页文件,很不小心的是对方 ...

  2. 各种浏览器hack

    Hack是针对不同的浏览器去写不同的CSS样式,从而让各浏览器能达到一致的渲染效果,那么针对不同的浏览器写不同的CSS CODE的过程,就叫CSS HACK,同时也叫写CSS Hack.然后将Hack ...

  3. 超棒的响应式设计测试书签和工具(bookmarks)(转)

    一.测试书签(bookmarks) Viewport Resizer 这个书签号称拥有158个国家3万多活跃的用户,主要特性: 完全自定制 方便的添加自定义尺寸 手动的横竖屏切换 自动的横竖屏切换 ( ...

  4. Div CSS absolute与relative的区别小结

    absolute:绝对定位,CSS 写法“ position: absolute; ”,它的定位分两种情况,如下: 1. 没有设定 Top.Right.Bottom.Left 的情况,默认依据父级的“ ...

  5. Error in Android Studio - "Default Activity Not Found"

    Make sure you have specified the default activity in your AndroidManisfest.xml file. Within your def ...

  6. 电脑的基本硬件知识以及unix图解

    1.DELL R720 R610 2.电源: 人体心脏3.硬盘: 存数据的地方.机械的性能不高,3.5英寸 性能 SATA 借口<SAS <SSD 价格:SSD> SAS>SA ...

  7. [转]AndroidTolls国内镜像

    AndroidDevTools简介 Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具. ...

  8. Ibatis.Net 各种配置说明(二)

    一.各个配置文件的作用说明 providers.config:指定数据库提供者,.Net版本等信息. xxxxx.xml:映射规则. SqlMap.config:大部分配置一般都在这里,如数据库连接等 ...

  9. 安装arbotix simulator仿真环境()

    先安装rbx1功能包: cd ~/catkin_ws/src git clone https://github.com/pirobot/rbx1.git cd rbx1 git checkout in ...

  10. inoic是什么

    本篇只侧重框架提供的功能和能力的研究,请关注后续实际部署使用体验. 一.inoic是什么? inoic是一个可以使用Web技术以hybird方式开发移动app的前端开源框架. 二.inoic框架特点 ...