AOP 的利器:ASM 3.0 介绍

ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。

与 BCEL 和 SERL 不同,ASM 提供了更为现代的编程模型。对于 ASM 来说,Java class 被描述为一棵树;使用 “Visitor” 模式遍历整个二进制结构;事件驱动的处理方式使得用户只需要关注于对其编程有意义的部分,而不必了解 Java 类文件格式的所有细节:ASM 框架提供了默认的 “response taker” 处理这一切。

Read More

07-K8S离线单节点安装

点击数:63目标 1.在所有节点上安装docker和kubeadm 2.部署kubernetes master 3.部署容器网络插件 4.部署kubernetes worker 5.部署dashboard可视化插件 6.部署容器存储插件 操作系统版本 $ cat /proc/version # Linux version 5.0.1-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 4.8.5 20150623 (Red Hat 4.8 …

Read More

05-Docker仓库

Docker 官方维护了一个公共仓库,大约有上万个镜像,大多数情况下,我们可以直接使用该仓库中的镜像部署服务。

通过在 Docker Hub 注册账户,获得一个 dockerId,可能很多人在 Mac 版的 Docker 中看到登录时需要一个 dockerID,其实这个dockerId 就是登录账号。

在 Docker Hub 的 WEB 站点,可以搜索自己感兴趣的镜像,还可以查看镜像的参数,比如nginx、mysql等,可以看到数据nginx html 页面保存的目录,端口配置,可以看到MySQL用户名和密码的设置参数等信息。

Read More

深入理解类文件结构

点击数:101写在前面 我们都知道 JVM 并不能直接运行 Java 源文件,而是开发者通过 JDK 自带的工具命令 javac将 Java 源文件编译成 class 字节码文件,也就是二进制文件,然后供JVM加载并使用。 为了深入学习这一块的内容,先创建类 User: User.java package com.openmind; /** * jishuzhan * * @author zhoujunwen * @date 2019-11-17 * @time 20:28 * @desc */ …

Read More

Mac OSX之Catalina 10.15中编译OpenJDK8

如果想深入学习JDK 内部的实现机制,最便捷的路径是自己手动编译一套JDK,通过阅读和跟踪debug JDK源码去深入了解Java技术体系的原理,结合各类书籍、文章和博客,对比理解,更容易让你了解JDK是怎么运作的,底层都做了什么。

本文基于目前最新的Mac操作系统Catalina 10.15.1 编译OpenJDK8,编译过程中遇到很多新问题,做个总结,为后来者提供方便。

Read More

浅谈分布式锁

随着架构系统的演进,由纯真的单机架构到容器化编排的分布式架构,可以说是一个大型互联网企业发展的必然走向。在网站初创时,应用数量和用户较少,可以把Tomcat和Mysql部署在同一台机器上。随着用户数量增多,访问量增大,并发升高,Tomcat和MySQL竞争资源,此时,单机已经扛不住了,需要把Tomcat和MySQL分离在不同的机器上,用于提升单台机器的处理能力。业务从来没有减少,产品越做越大。应用也越来越复杂,原来的大应用,拆分成多个小应用,加入各级缓存,做了反向代理负责均衡,最后坠入分库分表的深渊。

Read More

数据标注系统核心逻辑设计

点击数:62理解数据标注 人工智能快速发展,离不开海量数据的支撑,而提供给机器学习的大数据采集工作,仍基于密集劳动力的人工智能数据标注。 图1 数据标注现场 有一段时间,某视频分享社交APP上,有一个妈妈教baby认识图片的视频火了,妈妈给出了鸭子、鹅、狗、兔子、猪的5张图片,小孩子依次识别,当问到猪的图片是什么,baby毫不犹豫地说“爸爸”。这个过程中,一开始baby的认知能力为0,是妈妈告诉baby每张图片是什么,baby一遍一遍的学习和认识后,每当妈妈问baby时,baby则把5张图片识别 …

Read More

[转]怎么回答面试官:你对Spring的理解?

Java面试中不可避免的都会问到Spring相关的问题,经常会遇到的就是IOC、AOP、Bean的实例化等,虽然有时候我们能回答上这些问题,但是如果没有从源码中领悟Spring的架构原理,也就不知道spring背后做了哪些事,我们项目中会遇到哪些问题。本文作者bravo1988从BeanDefinition和BeanPostProcessor层面阐述了spring中的设计思想以及spring核心原理。

Read More