JVM调优(一)

JVM调优相关步骤

Java

面向对象三大特性和六大原则

对象的概念Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象有以下特点: 对象具有属性和行为。 对象具有变化的状态。 对象具有唯一性。 对象都是某个类别的实例。 一切皆为对象,真实世界中的所有事物都可以视为对象。 三大特性面向对象开发模式更有利于人们开...
Java

Java数组拷贝的几种方式

目前在Java中数据拷贝提供了如下方式:1、clone 2、System.arraycopy 3、Arrays.copyOf 4、Arrays.copyOfRange。

Java

Java四种引用-强、软、弱、虚

Java的四种对象引用的基本概念从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 1、强引用Object obj =new Object(); 上述Object这类对象就具有强引用,属于不可回收的资源,垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryEr...
Java

Java内存区域

对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C++程序开发程序员这样为每一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。

Java

重载和重写的区别

重载就是同样的一个方法能够根据输入数据的不同,做出不同的处理

重写就是当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法

Java

简述ConcurrentLinkedQueue原理

简介在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,下面我们一起来研究下Doug Lea是如何使用非阻塞的方式来实现线程安全队列ConcurrentL...
Java

ConcurrentHashMap扩容原理

ConcurrentHashMap从名称是可以看出,它是一个HashMap而且是线程安全的。在多线程编程中使用非常广泛。
ConcurrentHashMap的实现方式,在jdk6,7,8中都不一样。本文只针对jdk8中的实现作一些说明。

Java

Java浮点数精度问题

一、精度丢失的原因1234567891011121314151617181920212223首先我们要搞清楚下面两个问题:(1) 十进制整数如何转化为二进制数 算法很简单。举个例子,11表示成二进制数: 11/2=5 余 1 5/2=2 余 1 ...
Java

获取class对象六种方法

简述Class类是Java反射机制的入口,封装了一个类或接口的运行时信息,通过调用Class类的方法可以获取这些信息。Class类有如下特点:1、该类在java.lang包中,不需要引包2、该类被final修饰,不可被继承3、该类实现了Serializable接口4、该类的构造方法被private修饰,不能通过关键字new创建该类的对象 获取对应class类对象1、(建议)通过Class...
Java