1.尽量减少值传递,多用指针和引用来传递参数 值传递要拷贝对象,引用传递不用 2.++i和i++的效率问题 i++开辟了临时变量,效率低 3.将小粒度函数声明为内联函数 内联函数直接会直接展开,不需要函数调用的开销 4.减少函数调用 函数调用需要两次跳转,外加栈帧的内存操作 5.优先使用迭代而不是递 ...
分类:
编程语言 时间:
2019-03-20 22:13:12
阅读次数:
167
引言 引言 上一篇文章 JVM 基本介绍 我们了解了一些基本的 JVM 知识,本篇开始逐步学习垃圾回收,我们都知道既然叫垃圾回收,那回收的就应该是垃圾,可是我们怎么知道哪些对象是垃圾呢? 哪些对象需要被回收? 什么时候需要回收呢? 上一篇文章 JVM 基本介绍 我们了解了一些基本的 JVM 知识,本 ...
分类:
其他好文 时间:
2019-03-18 12:07:06
阅读次数:
153
复用类有两种实现方式。 在新的类中产生现有类的对象,由于新的类是由现有类的对象所组成,所以这种方法称之为组合。 采用继承实现。 一 组合语法 下面创建两个类WaterSource和SprinklerSystem。其中SprinklerSystem中包含WaterSource的对象引用。 运行结果如下 ...
分类:
编程语言 时间:
2019-03-17 15:55:31
阅读次数:
197
20175327 2018 2019 2 《Java程序设计》第3周学习总结 教材学习内容 第四章 类与对象 类变量和实例变量、import语句 对象的创建过程,对象引用与实体的关系,访问权限的理解 this关键字:this可以出现在实例方法和构造方法中,但不可以出现在类方法中 运行有包名的主类:如 ...
分类:
编程语言 时间:
2019-03-15 21:52:59
阅读次数:
187
java深浅拷贝 一、前言 为什么会有深浅拷贝这个概念? 我觉得主要跟JVM内存分配有关,对于基本数据类型,只存在栈内存,所以它的拷贝不存在深浅拷贝这个概念。而对于对象而言,一个对象的创建会在内存中分配两块空间,一个在栈内存存对象的引用指针,一个在堆内存存放对象。这个时候会有一个问题,你拷贝的只是这 ...
分类:
编程语言 时间:
2019-03-14 00:35:48
阅读次数:
200
1. 引用计数GC算法 每个对象都会有对应的计数器来计算对象引用,但JVM不会采用该策略,因为不能解决对象相互引用的回收。 设置VM参数,打印GC日志 部分GC日志: [GC (System.gc()) [PSYoungGen: 6758K->584K(38400K)] 6758K->592K(12 ...
分类:
其他好文 时间:
2019-03-07 12:51:55
阅读次数:
159
容器(Container) 容器是一个Java 所编写的程序,原先必须自行编写程序以管理对象关系,现在容器都会自动帮您做好。 常用容器 WebSphere, WebLogic, Resin, Tomcat 为什么要引入数据容器 在书写程序的时候,我们常常需要对大量的对象引用进行管理。为了实现有效的归 ...
分类:
其他好文 时间:
2019-03-06 13:22:57
阅读次数:
117
hashcode()和equals()及HashSet判断对象相等。1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。public boolean equals(Object obj) 指示某个其他对象是否与此对象“相等”。 equals 方法在非空对象引用 ...
分类:
其他好文 时间:
2019-03-03 16:09:34
阅读次数:
129
编写代码分别更改指针的值以及指针所指对象的值 说明指针和引用的主要区别 指针本身就是一个对象,允许对其赋值和拷贝,而指针的生命周期内它可以指向几个不同的对象;引用不是一个对象,无法令引用重新绑定到另外一个对象。 指针无须在定义时赋值,和其他内置类型一样,在块作用域定义的指针如果没有被初始化,也将拥有 ...
分类:
其他好文 时间:
2019-02-25 23:19:34
阅读次数:
268
Java虚拟机在执行Java程序的过程中会把它所管理的内存化分为若干个不同的数据域。如下图所示,主要包括程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。 1.1 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,可以当成单签线程所执行的资码 ...
分类:
编程语言 时间:
2019-02-18 23:04:44
阅读次数:
221