类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏 ...
分类:
编程语言 时间:
2019-10-22 18:51:42
阅读次数:
90
引用计数法高效率,但无法解决循环引用的问题,Python语言在使用可达性分析主流商用程序语言在使用,比如C#,Java,以及Lisp。通过一系列被称为GC Roots的对象作为起点,从这些节点开始向下搜索,搜索所走过的路径称为引用链。当一个对象到GC Roots没有任何引用链相连,对象不可达的,则证... ...
分类:
编程语言 时间:
2019-10-21 09:46:59
阅读次数:
86
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View(视图) - 视图代表模型包含的数据的可视化。 C ...
分类:
编程语言 时间:
2019-10-21 09:17:21
阅读次数:
108
Java异常结构图 Java所有异常都是从Throwable继承而来,Throwable有两个子类,Error与Exception。 Error是错误,对于所有的编译时期的错误以及系统错误都是通过Error抛出的。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行 ...
分类:
编程语言 时间:
2019-10-20 22:51:28
阅读次数:
169
1. this的使用:this是属于一个对象的,而不是属于一个类的。当你创建了一个对象的时候,Java虚拟机就为每个对象都给了个this,this就指向了该对象了 this不能在外部使用,只能在类定义的部分中使用 public class Testthis{ int a,b,c; Testthis( ...
分类:
其他好文 时间:
2019-10-20 15:47:43
阅读次数:
135
JVM内存结构简介(jdk1.8) JVM层的GC调优是生产环境上必不可少的一个环节,因为我们需要确定这个进程可以占用多少内存,以及设定一些参数的阀值。以此来优化项目的性能和提高可用性,而且这也是在面试中经常会被问到的问题。 想要进行GC调优,我们首先需要简单了解下JVM的内存结构,Java虚拟机的 ...
分类:
其他好文 时间:
2019-10-19 21:01:10
阅读次数:
106
一.概念 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。 注 ...
分类:
其他好文 时间:
2019-10-19 16:25:22
阅读次数:
84
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别。这里仅讨论HotSpot虚拟机中的垃圾收集器。垃圾收集器组合HotSpot虚拟机的所有收集器如下:... ...
分类:
其他好文 时间:
2019-10-18 11:10:56
阅读次数:
73
静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)? 类中静态的方法或者属性,本质上来讲并不是该类的成员,在java虚拟机装在类的时候,这些静态的东西已经有了对象,它只是在这个类中"寄居",不需要通过类的构造器(构造函数)类实现实例化;而 ...
分类:
其他好文 时间:
2019-10-18 09:34:56
阅读次数:
134
首先,这两者是完全不同的概念,绝对不能混为一谈。1.什么是Java内存模型?Java内存模型是Java语言在多线程并发情况下对于共享变量读写(实际是共享变量对应的内存操作)的规范,主要是为了解决多线程可见性、原子性的问题,解决共享变量的多线程操作冲突问题。多线程编程的普遍问题是:所见非所得无法肉眼检测程序的准确性不同的运行平台表现不同错误很难复现故JVM规范规定了Java虚拟机对多线程内存操作的一
分类:
编程语言 时间:
2019-10-17 20:31:58
阅读次数:
100