【类】
 

 
【成员变量】
 
注:
<1>成员变量默认初始化,直接输出不会报错;而局部变量默认情况下不会初始化,直接输出会报错;
 
 
【引用】
 
 
注:
引用类型占两块内存,比如String s;该程序是在内存中分配一段区域,装的是空值(还没进行初始化)。s = new String("Hello");这在堆内存开辟一段空间存储。
 
<1>Java中没有指针,但是所有的引用都是指针;
<2>堆是动态分配内存的,因此对象放在堆中,类放在代码区;
 
 
【对象的创建和使用】
 
 
 
【类和对象的关系】
 
 
 
【构造方法(构造函数)】
<1>在new一个对象的时候调用构造方法,即使用new+构造函数创建一个新的对象;
<2>构造函数是定义在Java类中的一个用来初始化对象的函数;
<3>构造函数与类同名且没有返回值(也不能写void)。
 
默认情况下:
 
【栈与堆】
 
注:
<1>在栈内存中存在调用方法所用到的参数,只不过是暂时性的,引用到堆中才是永久性的数据;
<2>一个方法调用完之后对应的局部变量被清除,最终我们得以把数据存储到堆中(实际上是借助于栈进行存储的)。
<3>堆中如果没有一个引用指向相应的区域,则会被垃圾回收器回收。
 
【构造方法常见错误】
<1> void Person();
        //这是普通方法,不是构造方法(不能加void),否则会显示无法找到构造方法
 
【命名规则】
<1>类名的首字母是大写的;
<2>变量名和方法名的首字母小写;
<3>运用驼峰标识。
 
【内存解析】
 
(1)变量的初始化
 
 
(2)方法调用(值传递)
 
 
 
 
注:试图通过值传递改变堆内存中变量的值,是无法实现的。
 
(3)new对象
 
 
 
 
注:这个新new出来的对象在程序运行后,会由垃圾回收机制进行回收,这对于程序而言相当于不存在了,也就是说不能通过这种方式修改堆中属性的值。
 
 
(4)调用成员方法
 
 
 
 
 
【方法重载】
 
 
 
 
 
 
 
 

Java——类的更多相关文章

  1. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  2. jvm系列(一):java类的加载机制

    java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...

  3. java类与实例

    最近在看设计模式,感觉自己对java的三大特性的理解不够清晰,搞不清楚抽象类.接口.泛型的用处和优缺点.设计模式学了一半,想着还是停下来脑补一下java的基础,就从java对象开始吧. 一.java对 ...

  4. oracle调用JAVA类的方法

    导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了,  1.操作系统需要拥有支持loadjava命令的jdk.  2.加 ...

  5. Java 类的实例变量初始化的过程 静态块、非静态块、构造函数的加载顺序

    先看一道Java面试题: public class Baset { private String baseName = "base"; // 构造方法 public Baset() ...

  6. hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化

    hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...

  7. kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件

    该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...

  8. Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)

    今天重装系统,安装了新的Myeclipse后,导入之前的项目后,,出现了乱码问题.乱码问题主要是java类中的注释,而jsp页面中汉字却完好如初: 右键项目,查看项目的编码格式,UTF-8,把java ...

  9. Java类初始化

    Java类初始化 成员变量的初始化和构造器 如果类的成员变量在定义时没有进行显示的初始化赋值,Java会给每个成员变量一个默认值 对于  char.short.byte.int.long.float. ...

  10. 深入研究Java类装载机制

    目录 1.为什么要研究java类装在机制? 2.了解类装载机制,对于我们在项目开发中有什么作用? 3.装载实现细节. 4.总结 一.为什么药研究Java类装载机制 java类加载机制,便于我们使用自定 ...

随机推荐

  1. Vijos lxhgww的奇思妙想--求K级祖先

    给出一棵树求K级祖先.O(N*logN+Q) 更详细的讲解见:https://www.cnblogs.com/cjyyb/p/9479258.html /* 要求k级祖先,我们可以把k拆成" ...

  2. Lesson 1 A puma at large

    spot (v) 看出,发现 oblige (v) 使...感到必须:obliged (adj)必须的, feel obliged to do sth. 感到不得不做某事 ==have to.eg:E ...

  3. jQuery 获取设置图片 src 的路径

    1.获取: $('#img')[0].src 2.设置:$('#img').attr("src", data.CodeUrl);

  4. Java实验3与第五周总结

    1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) •统计该字符串中字母s出现的次数. •统计该字符串中子串" ...

  5. 手写一个IOC容器

    链接:https://pan.baidu.com/s/1MhKJYamBY1ejjjhz3BKoWQ 提取码:e8on 明白什么是IOC容器: IOC(Inversion of Control,控制反 ...

  6. vue组件注册(极客时间Vue视频笔记)

    vue组件注册 组件是为了方便代码复用,只需引入组件即可在不同的地方使用想同的功能代码 <body> <div class="app"> <todo- ...

  7. 多线程14-Barrier

    , b => Console.WriteLine());         ; i <= ; i++)             {                 Console.Write ...

  8. 终于有人把 Docker 讲清楚了,万字详解!

    一.简介 1.了解Docker的前生LXC LXC为Linux Container的简写.可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性.相当于C++中 ...

  9. Python 实用脚本

    Python 实用脚本 脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作. 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而 ...

  10. 什么场景下用redis而不用mysql?

    redis我们用作缓存,对查询速度要求比较高的应用场景比较适合.对有复杂逻辑关系的存储不适合. mysql是硬盘存储的,在高性能io要求的项目里不能满足需求,而redis所有数据存在内存里,因此要快得 ...