垃圾回收算法

Java垃圾回收思想 枚举根节点,做可达性分析。 根节点 可以做根节点的有:类加载器、Thread、虚拟机栈的本地变量表、static成员、常量引用、本地方法栈的变量等。 垃圾回收算法 标记清除 算法分为标记、清除两个阶段。首先标记处所有需要回收的对象,在标记完成后统一回收所有。 缺...

2019-03-05 20:39:15

阅读数 18

评论数 0

JVM内存结构

注:所有内容基于JDK1.8版本。 一、运行时数据区 在了解JVM内存结构前,先了解一个规范——运行时数据区。查看官方解释:Java虚拟机定义了在程序执行期间使用的各种运行时数据区域。其中一些数据区域是在Java虚拟机启动时创建的,仅在Java虚拟机退出时销毁。其他数据区域是每个线程。线程数据...

2019-03-02 22:40:22

阅读数 21

评论数 0

JVM参数类型

一、JVM参数类型 JVM参数主要主要分为三大类: 1、标准参数,例如-help、-server、-client、-version、-showversion、-cp、-classpath等相对稳定的命令。 2、X参数,它是非标准化参数。在各个版本的JVM中可能会有变化,但是变化比较小。例如-...

2019-01-30 20:33:32

阅读数 23

评论数 0

事务的原则与实现

什么是事务 事务是一种以可靠、一致的方式,访问和操作数据库中数据的程序单元。 事务四大特性 原子性:事务当中的多个操作,要么都完成要么都失败。 一致性:事务完成后,状态的改变是一致的,结果是完整的。 隔离性:不同的事务在试图操作相同数据的时候,它们之间应该隔离 持久性:事务提交后,数据...

2019-01-26 09:04:12

阅读数 47

评论数 0

oracle存量数据迁移脚本示例(适用小数据量)

declare   nHomeCounty     number(3);   nResult         number(2);   nEntrustID      number(12);   nEctrustAgentID number(12);   nCount          numbe...

2018-11-28 19:15:51

阅读数 116

评论数 0

Java并发编程之不可变对象

不可变对象条件 对象需要满足一下三个条件才是不可变对象: 1、对象创建以后其状态就不能修改 2、对象所有域都是final类型 3、对象是正确创建的(对象在创建期间,this引用没有溢出) 简而言之就是将类声明为final,将所有的成员声明为私有的,对变量不提供set方法。将所有可变的成员...

2018-08-16 21:41:04

阅读数 79

评论数 0

Java并发编程之常见线程不安全类与写法

线程不安全类:一个类的对象可以被多个线程访问修改,并且没有做任何的同步或者并发处理,就很容易出现线程安全问题。以下介绍几种常见的线程不安全类及其写法: 一、StringBuilder,StringBuffer 字符串拼接主要提供了两个类: StringBuilder,StringBuffer...

2018-08-15 22:07:21

阅读数 141

评论数 0

Java并发编程之工厂模式

饿汉模式: 饿汉模式的单例实例是在类装载时进行创建的,它是有JVM的机制保证的,所以它总是线程安全的: /** * 饿汉模式 * 单例实例在类装载时进行创建 */ public class SingletonExample2 { // 私有构造函数 private S...

2018-08-09 22:29:15

阅读数 172

评论数 0

Java并发编程之对象发布(Publish)和逸出(Escape)

什么是对象发布: 使一个对象能够被当前范围之外的代码所使用。 示例: @Slf4j public class UnsafePublish { private String[] states = {"a", "b&quo...

2018-08-09 21:55:19

阅读数 289

评论数 0

Java并发编程之可见性与有序性

什么是可见性: 可见性:一个线程对主内存的修改可以及时的被其他线程观察到。   导致共享变量在线程间不可见的原因: 1、线程交叉执行 2、重排序结合线程交叉执行 3、共享变量更新后的值没有在工作内存与主内存间及时更新   对于可见性,jvm提供了synchronized和volat...

2018-08-08 19:34:44

阅读数 324

评论数 0

Java并发编程之原子性-synchronized关键字

原子性提供了互斥访问,同一个时刻只能有一个线程对其进行操作,Java里能够保持原子性的除了atomic包之外还有锁 synchronized关键字:主要依赖jvm来实现锁,在这个关键字的作用对象的作用范围内只能有一个线程来执行操作。 Lock:jdk提供的代码层面的锁,依赖特殊的cpu指令,比...

2018-08-07 21:45:27

阅读数 49

评论数 0

Java并发编程之原子性-Atomic详解

线程安全: 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么就称这个类时线程安全的。 线程安全主要体现在以下三个方面: 原子性:提供了互斥访问,同一时刻只能有一个线程对它进行操作 ...

2018-08-07 20:43:11

阅读数 763

评论数 0

Java并发编程之Java内存模型

        为了屏蔽各种硬件和和操作系统内存访问差异,从而实现JAVA程序在各种平台下都能达到一致的并发效果。Java虚拟机规范中定义了java内存模型(JMM)。JMM是一种规范,规范了java虚拟机与计算机内存时如何协调工作的,它规定了一个线程如何和何时可以看到其他线程修改过的共享变量的值...

2018-07-31 22:13:47

阅读数 48

评论数 0

Java并发编程之CPU缓存和乱序执行优化

    什么是并发:     同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替地换入或者换出内存,这些线程是同时存在的,每个线程都处于执行过程中的某个状态。如果运行在多核处理器上,程序中的每个线程都将分配到一个处理器核上,因此可以同时执行。其聚焦点是多个线程操作相同的资源,保...

2018-07-28 20:25:11

阅读数 323

评论数 0

nginx-https模块

        由于http传输没有被加密,具有不安全性,容易导致传输数据被中间人盗用,发生数据内容劫持及篡改及信息泄露。https就可以很好地解决这些问题。          https采用加密的方式,对传输内容进行加密以及身份验证。         首先需要了解下两个加密方式,对称加密和非...

2018-07-21 22:08:57

阅读数 42

评论数 0

nginx--安全链接及GeoIP模块

secure_link_module安全连接模块: 对于访问限制及防盗链等的功能,如之前的防盗链是基于http_refer来实现,但是该请求头是可以在客户端被改写的,功能相对比较简单但是不完善。而安全链接模块可以帮助我们实现比较高级精度的验证。它利用的是后端加密的机制返还给前端,这样来实现类似于...

2018-07-16 21:24:36

阅读数 120

评论数 0

nginx--动静分离及rewrite规则

动静分离:为了分离资源,减少不必要的请求损耗,减少请求延时。通过中间件将动态请求和静态请求进行分离。     Rewrite规则:实现url重写以及重定向。 应用场景: 1、url访问跳转,支持开发设计(页面跳转、兼容性支持、展示效果等) 2、SEO优化 3、维护(后台维护、流量转发...

2018-07-15 14:05:21

阅读数 155

评论数 0

nginx--代理服务配置

Nginx另外一个重要的应用就是代理服务。 在互联网的请求里,客户端经常无法向服务端直接进行访问。那它就需要一个代理,代理就实现了客户端与服务端之间的通信。   Ngixn可以实现很多协议的代理:   代理分为正向代理和反向代理: 正向代理:翻墙等。   反向代理: 客户端去请求...

2018-07-05 21:37:54

阅读数 55

评论数 0

nginx--静态资源服务器配置

Nginx作为常用的中间件,它主要运用在静态资源web服务器,代理服务,负载均衡调度器SLB及动态缓存上。 Nginx作为http静态资源的server,它可以接收客户端类似于jpeg、htm、flv这种静态资源的请求,然后直接通过静态资源的存储得到这些文件返回给客户端。这种方式是一种典型高效的...

2018-07-03 21:28:36

阅读数 1130

评论数 2

nginx--基础配置语法

查看/etc/nginx/nginx.conf文件: user  nginx; worker_processes  1;   error_log  /var/log/nginx/error.log warn; pid        /var/run/nginx.pid;     e...

2018-07-03 21:23:06

阅读数 370

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭