JAVA进阶
有恒则成
本人计算机应用技术专业毕业,从事Java 研发工作10年,其中六年分布式开发五年架构设计;能够独立架构并维护基于ZK+Dubbo 的高可用分布式系统并解决分布式事务;熟悉Oracle/Postgresql/Mysql 数据库,擅长数据表设计,掌握SQL 优化;了解分库分表及HAProxy、MyCat、FastDFS 等高可用集群;熟悉Linux 服务器集群、分布式管理及部署工作;使用Keepalived+Nginx +Tomcat 实现了Web 高可用、负载均衡;熟练掌握PowerDesgin 进行数据建模,熟悉Edraw Max、Visio 等设计工具的使用;责任心强并容易相处。
展开
-
java虚拟机_03_GC算法及垃圾回收
GC 算法与种类GC的概念Garbage Collection 垃圾收集(垃圾回收) 回收java无用的对象 不回收会导致内存泄露1960年 List 使用了GCJava中,GC的对象是堆空间和永久区GC的基本原理: 将内存中不再被使用的对象进行回收,GC中用于回收的方法称为收集器,由于GC需要消耗一些资源和时间,Java在对对象的生命周期特征进行分析后,按照新生代、旧生...原创 2018-07-16 20:53:47 · 13587 阅读 · 0 评论 -
java虚拟机_02_Jvm内存模型
https://blog.csdn.net/u011080472/article/details/51337422 我们知道 - 计算机CPU和内存的交互是最频繁的 - 内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速...原创 2018-07-16 07:44:28 · 14574 阅读 · 0 评论 -
java虚拟机_01_类的加载机制
类的加载机制1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 类加载器并不...原创 2018-07-15 20:52:54 · 13381 阅读 · 0 评论 -
并发_02_JAVA并发机制的底层实现原理
一、并发编程中的三个概念1.原子性原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。2.可见性可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。3. 有序性有序性:即程序执行的顺序按照代码的先后顺序执行二、Volatile它是轻量级的synchro...转载 2018-07-29 09:18:43 · 13472 阅读 · 0 评论 -
并发_01_并发性与多线程介绍
在过去单 CPU 时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个 CPU,并交由操作系统来完成多任务间对 CPU 的运行切换,以使得每个任务都有机会获得一定的时间片运行。随着多任务对软件开发者带来的新挑战,程序不在能假设独占所有的CPU时间、所有的内存和其他计算机资源。...原创 2018-07-18 08:20:26 · 13572 阅读 · 0 评论 -
并发_03_JAVA中的锁
基础及框架容器转载 2018-07-19 07:20:59 · 13481 阅读 · 0 评论 -
并发_04_Java中的线程池
1111转载 2018-07-19 18:20:02 · 13507 阅读 · 0 评论 -
并发_05_ThreadLocal
ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。 ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程的变量...原创 2018-07-20 06:50:43 · 13366 阅读 · 0 评论 -
java虚拟机_05_JVM故障处理分析
JVM中到底哪些区域是共享的?哪些是私有的?Heap和Method Area是共享的,其他都是私有的为什么不建议在程序中显式的生命System.gc()?因为显式声明是做堆内存全扫描,也就是Full GC,是需要停止所有的活动的(Stop  The World Collection),你的应用能承受这个吗?为什么会产生OutOfMemory原创 2018-07-17 19:08:30 · 13792 阅读 · 0 评论 -
java虚拟机_04_性能监控工具
系统性能监控- linuxuptime - 系统时间 - 运行时间 - 例子中为7分钟 - 连接数 - 每一个终端算一个连接 - 1,5,15分钟内的系统平均负载 - 运行队列中的平均进程数top同uptime可以知道哪个程序占CPU最多 vmstat可以统计系统的CPU,内存,swap,io等情况 CPU占用率很高,...原创 2018-07-17 07:12:21 · 13539 阅读 · 0 评论 -
JDKProxy与CGlibProxy
一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP 3、如果目...原创 2018-08-06 18:30:35 · 9142 阅读 · 0 评论