0%

一、概述

Java所提倡的自动内存管理最终可以归结为自动的解决两个问题:给对象分配内存以及回收分配给对象的内存,对JVM参数进行合理的设置, 可以提升GC的效率,从而提升系统的性能。

阅读全文 »

一、概述

垃圾收集 Garbage Collection 通常被称为“GC”。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态的.

阅读全文 »

一、什么是反射

在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息,以及动态调用对象的方法的功能来自于Java语言的反射(Reflection)机制。

阅读全文 »

一、Class文件

在开始讲类加载机制之前,不妨先来了解一下 java 中的这个 ”类“。我们都知道 java 最著名的优点之一就是 摆脱了硬件平台的束缚,实现了”一次编写、到处运行“,那么 java 是怎么做到这种跨平台的呢?答案是通过 虚拟机 + “字节码”。

阅读全文 »

一、概述

与 C、C++ 相比,Java 把内存控制权交给了虚拟机,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去配对delete/free代码,最直接的好处就是不容易出现内存泄露和内存溢出问题,但是一旦出现内存泄露和内存溢出的问题,如果不了解JVM是如何划分内存区域的,那就难以排查问题,所以了解虚拟机的内存区域以及会引起内存泄露和内存溢出的常见场景,将会帮助我们更快的排查问题,这也是成为 OOM Killer 的基本素质。

阅读全文 »

一、概述

问题背景

1.为了解决物理内存读写速度慢,与处理器运算速度不匹配的问题,现代操作系统在处理器和物理内存之间加入了高速缓存:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,从而让处理器无需等待缓慢的内存读写。

这种基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但也引发了一个新问题:缓存一致性(Cache Coherence)。在多处理器系统中,每个处理器都有自己的高速缓存,而他们又共享同一主存,这将可能导致不同处理器缓存的数据不一致的问题,这就需要一种协议来规范并保证内存与高速缓存之间的交互与访问操作。

阅读全文 »

一、进程、线程

在现代操作系统中,线程是处理器调度和分配的基本单位,进程则作为资源(内存地址、文件 I/O 等)拥有的基本单位。线程是进程内部的一个执行单元。 每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系统自动创建的。用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同一个进程中。

阅读全文 »

一、跨域的由来

为了保证用户信息的安全,防止恶意的网站窃取数据,目前,所有浏览器都实行了同源策略,要求域名、协议、端口必须都相同才属于同源,只有同源才可以访问其他页面的对象,否则将受到以下限制:

(1) Cookie、LocalStorage 和 IndexDB 无法读取。
(2) DOM 无法获得。
(3) AJAX 请求不能发送。

阅读全文 »

一、Dubbo 的由来及解决的问题

随着互联网的发展,市场需求快速变更,业务持续高速增长,网站早已从单一应用架构演变为分布式服务架构及流动计算架构。

阅读全文 »

一、基础概念

1、Web service的概念:

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署,Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。

阅读全文 »