随猿记

随便分享,想写啥就写啥的博客


  • 首页

  • 标签

  • 分类

  • 归档

  • 联系我

  • 书单

  • 好东西

  • 搜索

java动态代理实现与原理详细分析

发表于 2020-06-21 | 分类于 转载 , Java | | 阅读次数:
| 字数统计: 4.3k

一、代理

(1)、什么是代理?

大道理上讲代理是一种软件设计模式,目的地希望能做到代码重用。具体上讲,代理这种设计模式是通过不直接访问被代理对象的方式,而访问被代理对象的方法。这个就好比 商户—->明星经纪人(代理)—->明星这种模式。我们可以不通过直接与明星对话的情况下,而通过明星经纪人(代理)与其产生间接对话。

阅读全文 »

从0开始搭建微信小程序(前后端)的全过程

发表于 2019-04-14 | 分类于 原创 , 架构 | | 阅读次数:
| 字数统计: 4k

前言

有段时间比较闲就尝试着做了一个微信小程序,一是为了锻炼自己独立部署一个前后端全链路系统的能力,二是想做一个自己都想用的小程序出来。方向是让用户可以集中获取优质的电影、音乐、书籍、游戏等信息的推荐,那什么是优质的信息呢?我这里假设的是排行榜里越靠前的信息就越是优质的信息,于是就做了一个这几类信息的排行榜小程序,当然排行的信息不是我随便瞎编的,数据来源主要是豆瓣以及其他一些排行网站,希望排行数据是权威和客观的,能最大化的减少用户获取优质资源的成本。

下面讲解的可能不会太详细,毕竟想呈现的是一个全过程,弄一个非常详细的图文教程反而显得有些冗长,有些详细操作过程需要读者自己去参照相关文档,有些文档链接也会给出。OK,准备好了吗?一起开始这趟快乐的旅程吧。

阅读全文 »

揭开OKR (Objectives and Key Results) 的面纱

发表于 2019-04-05 | 分类于 原创 , 管理 | | 阅读次数:
| 字数统计: 1.8k

什么是OKR

– 摘自[百度百科]:
OKR(Objectives and Key Results)即目标与关键成果法,是一套明确和跟踪目标及其完成情况的管理工具和方法,由英特尔公司发明。

OKR的主要目标是明确公司和团队的“目标”以及明确每个目标达成的可衡量的“关键结果”。一本关于OKR的书将OKR定义为“一个重要的思考框架与不断发展的学科,旨在确保员工共同工作,并集中精力做出可衡量的贡献。”OKR可以在整个组织中共享,这样团队就可以在整个组织中明确目标,帮助协调和集中精力。

阅读全文 »

如何做好一次故障演练?

发表于 2019-04-05 | 分类于 原创 , 运维 | | 阅读次数:
| 字数统计: 2.1k

为什么要进行故障演练?

伴随着海量请求、节假日峰值流量和与日俱增的系统复杂度一起出现的,很有可能是预料之中以及意料之外的各种故障。在很多情况下,由于事故处理预案的缺失或者预案本身的不可靠,以及开发人员故障处理经验的缺失,造成在各种报警之中自乱了阵脚,从而贻误了最佳战机。特别是一些平时线上没出现过的异常故障,一旦突然出现,往往措手不及。

系统是否足够健壮?是否有足够的能力应对故障的发生?当面临故障时会出现什么行为?我们并不希望真正线上出现故障时才去验证这些问题,这样风险太大,成本太大。所以希望在线上环境隔离真实流量的情况下,提前模拟产生各种任何可能发生的故障,来观察系统的反应,验证预期策略。

总结一下,故障演练主要有以下几个目标:

  1. 确保系统按我们预想的方式应对故障
  2. 寻找系统中未预料到的弱点
  3. 寻找其他提高系统鲁棒性的方式来避免事故实际发生
阅读全文 »

深入理解JVM类加载机制

发表于 2019-03-24 | 分类于 原创 , JVM | | 阅读次数:
| 字数统计: 4k

前言

什么是类加载?

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。

加载什么?

前面的定义已经讲了是加载描述类的数据,也就是Class文件,关于Class文件,我在《深入解析Class类文件的结构》一文中进行了分析。

谁来加载?

加载描述类的类文件的二进制流是由类加载器完成的,已有的三种类加载和自定义的类加载器组成了类加载器子系统,关于类加载器,下文会详细讲述。

怎么加载?

这就是本文的重点,类加载机制中的类加载流程。
可以通过下图整体上看一下类加载在JVM体系中的位置

阅读全文 »

深入解析Class类文件的结构

发表于 2019-03-21 | 分类于 原创 , JVM | | 阅读次数:
| 字数统计: 1.2k

前言

要深入学习Java以及Java虚拟机,深入学习Java字节码文件是绕不开的一条路,只有知道了字节码文件里的排列结构,你才能透彻的了解在JVM里,类加载是怎么加载Java类的,是怎么将二进制流转化为运行时数据结构的。

Class文件是是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件中,中间没有任何分隔符。

这里的Class文件其实不是特指Java的字节码文件,任何编程语言的编译器只要按照字节码文件规范编译成Class文件,都可以在JVM上运行,所以字节码文件和JVM是和语言无关的。

另外一般Class文件指的不一定是存储在磁盘上的以.class后缀结束的文件,是一种泛指,指的是一切按照字节码文件规范排列的二进制字节流。

字节码文件解析

Class文件采用下面这种类似C语言的结构体的伪结构来存储数据,整个Class文件是一张表,表里又由无符号数和表组成。

阅读全文 »

记一次github提交失败的坑

发表于 2016-07-02 | 分类于 原创 , Git | | 阅读次数:
| 字数统计: 366

git push的时候出现错误:

1
2
3
$ blogweb git:(master) git push
> remote: Permission to XXX/XXX.git denied to XXX.
fatal: unable to access 'https://github.com/XXX/XXX.git/': The requested URL returned error: 403

阅读全文 »

linux和windows的线程机制的区别

发表于 2016-03-31 | 分类于 原创 , 系统 | | 阅读次数:
| 字数统计: 351

在Linux内核中,描述一个进程主要是task_struct,一个称为进程描述符的数据结构。这个数据结构很庞大,包含了内核管理一个进程所需的所有信息,描述了一个正在执行的进程,包括进程ID,它打开的文件,进程的地址空间,挂起的信号,进程的状态等等其他信息。

阅读全文 »

Vmware+Ubuntu14.04+mininet中的host如何访问外网

发表于 2016-01-17 | 分类于 原创 , SDN | | 阅读次数:
| 字数统计: 1.1k

最近需要mininet虚拟出的网络拓扑中的host访问外网,搞了几天,总是出些小问题,今天终于可以不出问题的搞定了。在这里总结一下,以防以后再出问题。

环境:Win7,Vmware workstation 10.0 ,Ubuntu 14.04,mininet 2.2.0
阅读全文 »

Floodligh Web UI显示的host比实际多且不会被清除的原因和解决方法

发表于 2016-01-09 | 分类于 原创 , SDN | | 阅读次数:
| 字数统计: 934

每次启动完floodlight控制器,在http://127.0.0.1:8080/ui/index.html 中打开floodlight的Web UI界面后,发现host总是会比我定义的多,打开拓扑图界面也很混乱。网上查了下,说是因为OVS的一个local port会去发现外部网络的拓扑,只要禁用OVS的这个端口就可以了,有兴趣的可以试试那个方法。下面是我的实验过程及解决方法。

命令:

1
sudo mn --controller=remote,ip=127.0.0.1,port=6653 --topo=tree,2

阅读全文 »
12
猿奋

猿奋

19 日志
12 分类
20 标签
RSS
E-Mail 简书 掘金
© 2019 — 2021 By Jackie Lee, All rights reserved.
本站访客数: 总访问量: 次
全站文章共25.7k字

Powered by Hexo
|
备案 - 赣ICP备19001341号