Java当中的变量

01

Java当中的实例变量和类变量

什么是实例变量和类变量呢?

实例变量为没有用static修饰符修饰的变量,而类变量为用static修饰符修饰的变量。

public class Hello{
// 私有的静态变量 name
private static name = "dashu";
// 私有变量 age
private int age = 17;
// 无参构造方法
public Hello(){
this.age = 18;
}
public static void main(String[] args){
// 实例化对象 在堆内存中
new Hello();
}
}

程序运行过程:Hello.java变成Hello.class,通过类加载器,加载到Java虚拟机中的方法区中,在方法区中,进行加载,验证,准备,解析,初始化。

验证,class文件的版本是否能兼容当前的Java虚拟机版本,然后class文件要满足虚拟机的规范。

准备,需要准备什么呢?就是要进行类成员的初始化为初始值,其中为final修饰的类变量除外,final变量就直接初始化为变量值,而类成员不一样。

解析,什么是解析呢?就是把符号引用解析为直接引用,就是我们变量xxx,这种代表变为直接引用,什么是直接引用呢?就是内存地址,如我们常见的xxx0203r0e,这种。

初始化(将类变量的值设置为初始值),把关于static修饰的变量或者是static静态代码块按照顺序组成构造器进行初始化变量。static修饰的方法无法访问非static的实例哦~

初始值为要进行类成员的初始化为初始值为准备阶段,初始值为jvm中默认的值。

变量为成员变量和局部变量

成员变量在类中定义,有实例变量和类变量,实例变量是没有static修饰的(属于实例),而类变量是有static的(属于类本身)。

局部变量有在方法里的局部变量,作用域在该方法内有效;代码块中的局部变量,就只是在代码块中有效;还有形参,参可别不记得了,也是变量,在整个方法内有效。

实例变量,是在创建实例时,实例变量就存在,被销毁就不存在,类变量是,有类,类变量就存在,类变量在jvm中只加载一次。

在系统中会为成员变量进行默认的初始化,初始化两种,一种为基本类型,一种为引用类型。

基本类型: 0 / 0.0 / \u0000 / false
引用类型: null

局部变量是在方法栈中。局部变量是由程序员赋值,系统不会默认给局部变量进行初始化的。

成员变量,是系统有给予默认的初始化值,在类方法外,在堆内存中,是随着对象的创建而存在,随着对象的消失而消失的。

局部变量,是没有初始化的值,在定义的时候必须要赋予初始值的,在方法中,在堆内存中。

面向对象

02

OOA, OOD, OOP

OOA为面向对象分析

OOD为面向对象设计

OOP为面向对象编程

面向对象是对象之间的交互

面向过程是注重数据的流向

Java中的三大特性为封装,继承,多态

面向对象,首先要进行面向对象分析,分析有多少个对象,然后进行面向对象设计,设计出对象含有的函数和属性等。

往后余生,唯独有你

简书作者:达叔小生

90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通

简书博客: https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

第45节:Java当中的变量,面向对象的更多相关文章

  1. 第55节:Java当中的IO流-时间api(下)-上

    Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...

  2. 第54节:Java当中的IO流(中)

    Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ...

  3. 第53节:Java当中的IO流(上)

    Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...

  4. java当中成员变量和局部变量的区别

    1:成员变量定义在类中,整个类中都可以访问.2:局部变量定义在函数,语句,局部代码块中,只在所属的区域有效.3:成员变量存在于堆内存的对象中.4:局部变量存在于栈内存的方法中.5:成员变量随着对象的创 ...

  5. 第48节:Java当中的集合框架

    Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得 ...

  6. 第47节:Java当中的基本类型包装类

    Java当中的基本类型包装类 01 基本数据类型对象的包装类 什么是基本数据类型对象包装类呢?就是把基本数据类型封装成对象,这样就可以提供更多的操作基本数值的功能了. 基本数据类型对象的包装类8个: ...

  7. 第46节:Java当中的常量池

    Java当中的常量池 在Java虚拟机jvm中,内存分布为:虚拟机堆,程序计数器,本地方法栈,虚拟机栈,方法区. 程序计数器是jvm执行程序的流水线,是用来存放一些指令的,本地方法栈是jvm操作系统方 ...

  8. 第44节:Java当中的JVM

    Java当中JVM 01 在使用控制面板时的实质: Hello.java使用javac,然后变成为Hello.class通过运行java这个命令,在类加载器中(含有加载,验证,准备,解析,初始化,使用 ...

  9. 第51节:Java当中的集合框架Map

    简书作者:达叔小生 Java当中的集合框架Map 01 Map提供了三个集合视图: 键集 值集 键-值 映射集 public String getWeek(int num){ if(num<0 ...

随机推荐

  1. 分布式之redis

    正文 1.为什么使用redis 分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发.当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有 ...

  2. gooflow学习笔记

    前端jqury脚本实现流程设计,兼容目前主流浏览器 gooflow 默认属性节点只有:id,name,top,left,width,height,type (各个版本不同,属性节点有所增加),但是这些 ...

  3. fmt.printf输出的格式

    动 词 功 能 %v 按值的本来值输出 %+v 在 %v 基础上,对结构体字段名和值进行展开 %#v 输出 Go 语言语法格式的值 %T 输出 Go 语言语法格式的类型和值 %% 输出 % 本体 %b ...

  4. dotNet程序员的Java爬坑之旅(二)

    囉里囉唆的寫了一大堆,最後還是全刪除了.哎~ 言歸正傳,最近因爲發生了很多事情,所以更新的有嗲晚了,最近也一直在學習,但是感覺效率什麽的不是很高,這是不對的,反思一下,從這篇博文開始,打起精神吧. M ...

  5. sha1 算法源码

    原来指望sha1 这种烂大街的算法 不会出什么幺蛾子 结果<linux C编程实战Code>bt章节的sha1 代码 我在linux和windows下的结果不一样 然后用了哈希工具查看了下 ...

  6. Python学习——1

    我是一名刚入IT行业的小白,目前主要是做网络运维这一块.曾经总是认为我是做网络运维的,学习代码干啥啊?后来就慢慢发现,传统的运维方式让我的效率好像不如别人效率高,关键还TM看别人比我更轻松.每一个网络 ...

  7. Python3.7 Scrapy crawl 运行出错解决方法

    安装的是Python3.7,装上依赖包和scrapy后运行爬虫命令出错 File "D:\Python37\lib\site-packages\scrapy\extensions\telne ...

  8. Layui使用table展示数据

    今天在Layui官网拿了一个table表格数据展示的源码,研究遇到了很多问题,最后才把数据展示出来,和大家分享下. 源码地址:https://www.layui.com/demo/table/oper ...

  9. 3.11formdata的使用

    var formData = new FormData(); formData.append('files[]',document.getElementById("file").f ...

  10. Lambda表达式遍历和泛型ForEach遍历方式

    lambda表态式 DataTable dtAllItems = policySecurity.GetUserAccessTypeOnAllItems(userID); List<DataRow ...