摘要: Java中,方法中所有参数都是“值传递”,也就是“传递的是值的副本”。 也就是说,我们得到的是“原参数的复印件,而不是原件”。因此,复印件改变不会影响原件。 · 基本数据类型参数的传值 传递的是值的副本。 副本改变不会影响原件。 · 引用类型参数的传值 传递的是值的副本。但是引用类型指的是“对象的地 阅读全文
posted @ 2021-09-18 23:28 女王不带冠 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 构造方法用于对象的初始化!静态初始化块,用于类的初始化操作!在静态初始化块中不能直接访问非static成员。 注意事项: 静态初始化块执行顺序(学完继承再看这里): 1. 上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。 2. 构 阅读全文
posted @ 2021-09-18 23:27 女王不带冠 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 在类中,用static声明的成员变量为静态成员变量,也称为类变量。 类变量的生命周期和类相同,在整个应用程序执行期间都有效。它有如下特点: 1. 为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化。 2. 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共 阅读全文
posted @ 2021-09-18 23:24 女王不带冠 阅读(179) 评论(0) 推荐(0) 编辑
摘要: · 对象创建的过程和this的本质 构造方法是创建Java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回该类的对象,但这个对象并不是完全由构造器负责创建。创建一个对象分为如下四步: 1. 分配对象空间,并将对象成员变量初始化为0或空 2. 执行属性值的显示初始化 3. 执行构造方法 阅读全文
posted @ 2021-09-18 23:23 女王不带冠 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 建议: 1. 在实际开发中,经常会造成系统的崩溃。如下这些操作我们应该注意这些使用场景。 请大家学完相关内容后,回头过来温习下面的内容。不要求此处掌握相关细节。 如下四种情况时最容易造成内存泄露的场景,请大家开发时一定注意: · 创建大量无用对象 比如,我们在需要大量拼接字符串时,使用了String 阅读全文
posted @ 2021-09-18 23:22 女王不带冠 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 分代垃圾回收机制,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的回收算法,以便提高回收效率。我们将对象分为三种状态:年轻代、年老代、持久代。JVM将堆内存划分为 Eden、Survivor 和 Tenured/Old 空间。 1. 年轻代 所有新生成的对象 阅读全文
posted @ 2021-09-18 23:21 女王不带冠 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 在对JVM调优的过程中,很大一部分工作就是对于Full GC的调节。有如下原因可能导致Full GC: 1.年老代(Tenured)被写满 2.持久代(Perm)被写满 3.System.gc()被显式调用(程序建议GC启动,不是调用GC) 4.上一次GC之后Heap的各域分配策略动态变化 阅读全文
posted @ 2021-09-18 23:21 女王不带冠 阅读(76) 评论(0) 推荐(0) 编辑
摘要: ·内存管理 Java的内存管理很大程度指的就是对象的管理,其中包括对象空间的分配和释放。 对象空间的分配:使用new关键字创建对象即可 对象空间的释放:将对象赋值null即可。垃圾回收器将负责回收所有”不可达”对象的内存空间。 ·垃圾回收过程 任何一种垃圾回收算法一般要做两件基本事情: 1. 发现无 阅读全文
posted @ 2021-09-18 23:20 女王不带冠 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 构造方法也是方法,只不过有特殊的作用而已。与普通方法一样,构造方法也可以重载。 【示例4-6】构造方法重载(创建不同用户对象) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class User { int id 阅读全文
posted @ 2021-09-18 23:19 女王不带冠 阅读(217) 评论(0) 推荐(0) 编辑
摘要: Java引入了垃圾回收机制,令C++程序员最头疼的内存管理问题迎刃而解。Java程序员可以将更多的精力放到业务逻辑上而不是内存管理工作上,大大的提高了开发效率。 阅读全文
posted @ 2021-09-18 23:19 女王不带冠 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。 声明格式: 1 2 3 [修饰符] 类名(形参列表){ //n条 阅读全文
posted @ 2021-09-18 23:18 女王不带冠 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 为了让大家对于面向对象编程有更深入的了解,我们要对程序的执行过程中,内存到底发生了什么变化进行剖析,让大家做到“心中有数”,通过更加形象方式理解程序的执行方式。 建议: 1. 本页是为了让初学者更深入了解程序底层执行情况,为了完整的体现内存分析流程,会有些新的名词,比如:线程、Class对象。大家暂 阅读全文
posted @ 2021-09-18 23:15 女王不带冠 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 【示例】模拟学生使用电脑学习 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 class Computer { String brand; //品牌 } public class SxtStu { // field int id 阅读全文
posted @ 2021-09-18 23:13 女王不带冠 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。 在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。 成员变量的默认值 数据类型 默认值 整型 0 浮点型 0.0 字符型 '\u0000' 布尔型 false 所有引用类型 null 属性定 阅读全文
posted @ 2021-09-18 23:11 女王不带冠 阅读(873) 评论(0) 推荐(0) 编辑
摘要: 方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。 方法定义格式: 1 2 3 [修饰符] 方法返回值类型 方法名(形参列 阅读全文
posted @ 2021-09-18 23:11 女王不带冠 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 【示例】类的定义方式 1 2 3 4 5 6 7 8 9 // 每一个源文件必须有且只有一个public class,并且类名和文件名保持一致! public class Car { } class Tyre { // 一个Java文件可以同时定义多个class } class Engine { } 阅读全文
posted @ 2021-09-18 22:27 女王不带冠 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 我们人认识世界,其实就是面向对象的(此对象可不是男女谈对象的彼对象呀)。比如现在让大家认识一下“天使”这个新事物,天使大家没见过吧,怎么样认识呢?最好的办法就是,给你们面前摆4个天使,带翅膀的美女,让大家看,看完以后,即使我不说,大家下一次是不是就都认识天使了。 图4-1 认识天使 但是,看完10个 阅读全文
posted @ 2021-09-18 22:26 女王不带冠 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 事物的发展总是遵循“量变引起质变”的哲学原则;企业管理和数据管理、甚至社会管理也有很多共通的地方。本节课类比企业发展,让大家更容易理解为什么会产生“对象”这个概念。 ·数据无管理时代 最初的计算机语言只有基本变量(类似我们学习的基本数据类型),用来保存数据。那时候面对的数据非常简单,只需要几个变量即 阅读全文
posted @ 2021-09-18 22:24 女王不带冠 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 面向过程(Procedure Oriented)和面向对象(Object Oriented,OO)都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的弊端越来越明显的显示出来,出现了面向对象思想并 阅读全文
posted @ 2021-09-18 22:23 女王不带冠 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。 利用递归可以用简单的程序来解决一些复杂的问题。比如:斐波那契数列的计算、汉诺塔、快排等问题。 递归结构包括两个部分: 1.定义递归头。解答:什么时候不调用自身方 阅读全文
posted @ 2021-09-18 22:20 女王不带冠 阅读(540) 评论(0) 推荐(0) 编辑