加载中
JVM内幕:Java虚拟机详解

这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论...

2017/10/31 09:04
43
【JAVA基础☞探针技术】Java探针-Java Agent技术

1、原理:基于javaAgent和Java字节码注入技术的java探针工具技术原理 2、原理分析 动态代理功能实现说明,我们利用javaAgent和ASM字节码技术开发java探针工具,实现原理如下: jdk1.5以后引入...

2019/06/26 14:20
1.2K
【算法基础】java 排序算法

Java中的经典算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第...

2017/10/30 10:19
9
高并发Java(3):Java内存模型和线程安全

网上很多资料在描述Java内存模型的时候,都会介绍有一个主存,然后每个工作线程有自己的工作内存。数据在主存中会有一份,在工作内存中也有一份。工作内存和主存之间会有各种原子操作去进行同...

2017/11/02 18:02
7
【JAVA基础☞内部存储和GC】Java方法区和永久代

Java方法区和永久代 这里只讨论HotSpot虚拟机,这也是目前使用的最多的JVM。Sun JDK7 HotSpot虚拟机的内存模型如下图所示: 1、什么是方法区 在Java虚拟机中,方法区是可供各线程共享的运行时...

2019/06/26 14:33
114
【java基础☞初始化顺序】java继承中的初始化顺序

1、初始化顺序:父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父类的非静态变量(父类的非静态代码块)-->父类的构造函数-->子类的非静态变量(子类的非静态代码...

2019/06/25 14:08
140
Java并发之AQS详解

AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架。AQS为一系列同步器依赖于一个单独的原子变量(state)的同步器提供了一个非常有用...

2019/05/15 23:41
68
java中HashMap详解

HashMap 的存储实现 当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例: HashMap<String , Double> map = new HashMap<String , Double>(); map.put("语文" , 80.0); map....

2017/11/02 14:00
7
Java中Volatile关键字详解

1、基础概念: 1.1 Java 内存模型中的可见性、原子性和有序性 可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的,通俗点说,就是一个线程修改了变量值另一个线程能看到...

2019/05/13 22:37
20
JAVA多线程并发的基础知识

并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写出高效、安全、可靠的多...

2019/05/14 15:01
19
java ftp上传方法

提供一个思路,大家可以参考着修改自己的方法! /** * 上传文件到FTP * * @param file * file文件,struts2从页面得到的File类型 * * @param filePath * 要保存在FTP上的路径(文件夹) * @p...

2018/01/26 08:35
71
【java基础之ConcurrentHashMap源码分析】

概述: ConcurrentHashMap这个类在java.lang.current包中,这个包中的类都是线程安全的。ConcurrentHashMap底层存储数据的结构与1.8的HashMap是一样的,都是数组+链表(或红黑树)的结构。 ...

2019/06/04 10:15
42
高并发Java(1):前言

1、关于高并发的几个重要概念 1.1 同步和异步 首先这里说的同步和异步是指函数/方法调用方面。 很明显,同步调用会等待方法的返回,异步调用会瞬间返回,但是异步调用瞬间返回并不代表你的任...

2017/11/02 17:58
21
《深入理解Java虚拟机》读书笔记

《深入理解Java虚拟机》读书笔记 堆分配参数: -XX:+PrintGC 使用该参数,虚拟机启动后,只要遇到GC就会打印日志; -XX:+UseSerialGC 配置串行回收器; -XX:+PrintGCDeltails 可以查看详细...

2017/11/02 16:03
134
高并发Java(2):多线程基础

1. 什么是线程 线程是进程内的执行单元 某个进程当中都有若干个线程。 线程是进程内的执行单元。 使用线程的原因是,进程的切换是非常重量级的操作,非常消耗资源。如果使用多进程,那么并发...

2017/11/02 18:00
40
高并发Java(4):无锁

在高并发Java(1):前言中已经提到了无锁的概念,由于在jdk源码中有大量的无锁应用,所以在这里介绍下无锁。 1 无锁类的原理详解 1.1 CAS CAS算法的过程是这样:它包含3个参数CAS(V,E,N)。V...

2017/11/02 18:03
10
【JVM学习资料之虚拟机栈中都有什么?】

虚拟机栈中都有什么? Java虚拟机栈(Java Virtual Machine Stacks) 是线程私有的,它的生命周期与线程相同。虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,虚拟机栈描述的是Java方法执...

2018/12/26 20:46
289
【JAVA基础之递归调用的案例】实用代码

1、递归 递归就是一个程序或函数在其中定义或说明有之间或者间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个原问题相似的规模较小的问题来求解,递归策略只需要少量的程序...

2019/10/21 14:11
46
各大公司Java后端开发面试题总结(2017更新)

  ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个...

2017/10/31 09:45
129
【Java NIO空轮询bug和Netty中的解决方法】

1、问题提出 https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6670302 简单来说:epoll机制是Linux下一种高效的IO复用方式,相较于select和poll机制来说。其高效的原因是将基于事件的...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部