- 博客(30)
- 收藏
- 关注
原创 JVM五:内存分区之线程共享区—堆
Java 虚拟机规范》中对堆的描述为:所有对象实例以及数组都应当在运行时分配在堆上。《Java 虚拟机规范》规定:堆可以处于物理上不连续的内存空间中,但在逻辑上它应该是被视为连续的。其大小是可以调节的。所有的线程共享 Java 堆内存,也可以在内划分线程私有的缓冲区(Thread Local Allocaltion Buffer,TLAB)方法结束后、堆中的对象不会马上被清理,仅在垃圾回收时才会被清理。堆是垃圾回收的重点区域。
2023-04-19 16:46:49
742
原创 JVM四:内存分区之线程共享区—方法区
Java 虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于 HotSpot JVM 而言,方法区还有一个别名叫做 Non-Heap(非堆),目的就是要和堆分开。因此、可以把方法区看作独立于堆的内存空间JVM 规范中的一个抽象概念,属于线程共享区域,其内存大小可固定也可动态配置(具体指令取决于方法区在不同虚拟机下不同版本的实现),主要用来存储 Class 的静态数据结构,也就意味着当加载过多的类时,会造成异常。
2023-02-08 10:44:09
579
原创 Java 中的 static 和 final 关键字
Java的访问控制(public、private、protected)是停留在编译层的,也就是它不会在 .class 文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。因此我们常见的修饰符也就是 static 和 final。同时被 static 和 final 修饰、为什么被 final 修饰的方法执行效率高(类方法和实例方法区别)
2023-02-07 15:40:13
193
原创 使用 javap 反编译字节码(补充 javac)
JDK 自带的一个工具,作为 .class 文件解析器,可通过 javap 命令反编译一个或者多个 .class 文件,输出结果取决于输入参数,默认输出 protected 和 public 限定的类属性和方法。
2023-01-04 13:55:45
192
原创 OpenPose 运行指令 (Version@1.7)
COCO和MPI模型速度较慢,精度较低,且不包含脚部关键点。它们是基于我们以前的论文中使用部分亲和字段实时多人物二维姿态估计。我们强烈建议只使用BODY_25模型。BODY_25模型(——model_poseBODY_25)包括身体和脚的关键点,它基于OpenPose,利用部分亲和力字段实时的多人二维姿态估计。...
2022-07-30 14:12:24
862
原创 OpenPose 基本理念
OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用,基于它的实例如雨后春笋般涌现。人体姿态估计技术在体育健身、动作采集、3D试衣、舆情监测等领域具有广阔的应用前景,人们更加熟悉的应用就是抖音尬舞机。...
2022-07-30 14:02:10
12286
原创 Netty 开发 WebSocket
WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信 (full-duplex)。一开始的握手需要借助 HTTP 请求完成。Websocket 是应用层第七层上的一个应用层协议,它必须依赖 HTTP 协议进行一次握手,握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了。.........
2022-07-30 11:58:10
473
原创 Netty 基本概念
Netty_是由JBoss提供的一个Java开源框架,提供异步的、事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,_Netty_是一个基于NIO的客户端、服务端编程框架,使用Netty可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。_Netty_相当于简化和流线化了网络应用的编程开发过程,例如基于TCP和UDP的socket服务开发。_Netty_...
2022-07-30 11:51:47
281
原创 RocketMQ 的基本概念和特性
RocketMQ 的基本概念和特性、Name Server、Broker Server、Producer 消息生产者、Consumer 消息消费者、Topic 主题、Clustering 集群消费、Normal Ordered Message 普通顺序消息、Strictly Ordered Message 严格顺序消息、消息可靠性、事务消息...
2022-07-30 11:46:22
380
原创 RocketMQ 的架构设计
启动 NameServer 并监听端口,等待 Broker、Producer、Consumer 连上来,相当于一个路由控制中心,启动 Broker,跟所有的 NameServer 保持长连接,定时发送心跳包。心跳包中包含当前 Broker 信息(IP、端口等)以及存储所有 Topic 信息,注册成功后,NameServer 集群中就有 Topic 跟 Broker 的映射关系,收发消息前,先创建 Topic,创建 Topic 时需要指定该 Topic 要存储在哪些 Broker 上,也可以在发送消息时自动创
2022-07-30 11:37:51
149
原创 RocketMQ 在 linux 的部署(单机 & 集群)
RocketMQ 在 linux 的部署模式、单机部署、集群部署、RocketMQ DLedger 模式基于 Raft 协议、复制状态机、Raft 一致性算法
2022-07-30 11:34:10
494
原创 消息队列的技术选型
消息队列选型对比分析,为什么使用RocketMQ,通过与 kafka、rabbitmq、rocketmq 对比各项指标探讨用哪个更合适
2022-07-30 11:18:17
258
原创 MongoDB笔记(安装、基本命令、 Java API 的操作)
MongoDB 笔记,记录如何安装、基本命令、JAVA API 操作、MongoDB 是一个基于分布式文件存储的数据库,由 C++ 编写,支持的数据结构松散,是类似于 JSON 的 BSON(Binary JSON) 格式,因此可以存储比较复杂的数据类型。其最大特点是支持的查询语言非常强大,语法类似于面向对象的查询语言,基本上可实现类似关系数据库单表查询的绝大部分功能,且支持对数据建立索引。......
2022-07-30 10:46:14
222
原创 SpringBoot 时间格式化
主要针对接口响应数据,在返回给前端的时候时间格式参差不齐,采用统一配置的形式对时间进行格式化,避免了业务代码中的多余操作,SpringBoot 时间格式化、@JsonFormate、@JsonComponent
2022-07-30 09:54:22
475
原创 三方对接接口数据安全问题
三方对接、AES加密解密、每次请求均会对请求来源以及数据的合法性进行校验,采取以下策略,之后接口明细中会说明采用哪种加密方式。接口说明获取调用凭据,有效期24h、获取后之后调用接口添加到请求头。并通过MD5对全部数据进行加密、接收方对其进行校验证,示例如下。涉及敏感数据,采用AES进行加解密,注意妥善保管密钥,示例如下。常规数据加密,每次请求数据添加随机字符串。小记一下在与第三方对接过程的一些操作。...
2022-07-29 17:43:11
657
原创 Oauth2.0 补充
初次接触 Spring Security 的朋友相信会被AuthenticationManager,ProviderManager ,AuthenticationProvider …这么多相似的Spring认证类搞得晕头转向,但只要稍微梳理一下就可以理解清楚它们的联系和设计者的用意。...
2022-07-29 17:20:32
383
1
原创 Oauth2.0 自定义响应值以及异常处理
}自定义客户端异常处理过滤器{“error”通过配置到认证服务器(AuthorizationServerConfig)的client认证异常过滤器中(client_id、client_secret错误时会执行)配置的同时要设置CustomAuthenticationEntryPoint以此来格式化异常返回值注意AuthenticationEntryPoint没有实例,需要我们自己实现这个接口才能进行注入}}/**...
2022-07-29 17:17:27
1903
1
原创 Oauth2.0 资源服务器搭建
//必须注入,并保证对称密钥和认证服务器的一样@BeanpublicJwtAccessTokenConverteraccessTokenConverter(){//对称秘钥,资源服务器使用该秘钥来验证returnconverter;}}
2022-07-29 17:09:41
1562
原创 Oauth2.0 认证服务器添加验证码登陆方式
自定义验证码授权模式配置到AuthorizationServerConfig.tokenGranter()将配置好的授权列表添加到AuthorizationServerEndpointsConfigurer中AuthorizationServerConfig其他配置已省略,详细见Oauth2.0认证服务器搭建//配置授权方式}/***先获取已有的五种授权列表,然后将自定义的授权方式置入*...
2022-07-29 16:46:57
1325
3
原创 Oauth2.0 认证服务器搭建
***配置token//令牌存储方案采用JWTreturnnewJwtTokenStore(jwtAccessTokenConverter());}/**AccessToken转换器定义token的生成方式表示采用JWT来生成//对称秘钥,资源服务器使用该秘钥来验证returnconverter;}}//查询用户信息的service,自行定义privatefinalUserServiceuserService;...
2022-07-29 16:31:57
3061
原创 Oauth2.0 安全性(以微信授权登陆为例)
用户A要使用微信账号登陆Z平台(www.z.com),一个黑客H想要把使用微信账号登陆Z平台的用户A转到恶意网站(www.h.com)来侵犯A的隐私。
2022-07-29 16:26:46
1518
原创 Oauth2.0 核心篇
最安全的一种模式。一般用于client是Web服务器端应用或第三方的原生App调用资源服务的时候。因为在这种模式中access_token不会经过浏览器或移动端的App,而是直接从服务端去交换,这样就最大限度的减小了令牌泄漏的风险。...
2022-07-29 16:04:54
1114
原创 JVM三:内存分区之线程私有区
Java 文件编译为 Class 文件,这时类加载器对 Class 文件进行加载,将其转化为某种静态数据结构存储到方法区,并在堆内存中生成 对象,之后便交由执行引擎来进行操作(将字节码命令转化为机器语言来执行)。编译期生成(可通过 反编译 Class 文件查看 LocalVariableTable),此时局部变量表的大小已经确定,所以在运行时也不会发生改变,主要用来存储方法的信息(参数、局部变量、基本数据类型、对象的引用地址、返回值地址)。局部变量表是一个字节数组,byte、short、char、boo
2022-07-07 15:53:42
908
原创 JVM二:类加载器和双亲委派模型
根据 JVM 规范分为启动类加载器(Bootstrap ClassLoader)和非启动类加载器。类加载器的命名空间:每个类加载器都有属于自己的命名空间,一个限定名类理论上只会被一个类加载器加载。通过以下代码验证,同一个限定名类被不同类加载器加载后,被 JVM 认为这是两个完全不一样的 Class 加载字节码文件 将给定的字节数组转化为 Class 实例会先验证是否已经被加载过,如果没有加载过则会先去找父加载器进行加载,如果父加载器无法加载则由当前 进行加载。在向上寻找加载器的过程中,当发现获
2022-07-04 18:05:53
213
原创 JVM一:类加载器
读取 .class 文件,将其转化为某种静态数据结构存储在方法区,并在堆内存中生成一个 java.lang.Class 对象。这个阶段可以是在初始化环节之后进行,实现所谓的“后期绑定”将类变量(静态变量、实例变量)初始化为指定的值(如果指定的话),并执行静态代码块,主动权由 JVM 转移到应用程序,触发初始化有以下场景:第五阶段:卸载命令思考javac 编译过程中已经进行了一次校验怎么在 jvm 还要再进行一次1)防止出现 .class 文件本身就是非法的,采用了不规范的编译器,或者恶意修改了
2022-06-29 16:18:11
213
1
原创 Docker(二)
一Docker安装与启动1.1说明Docker是基于Ubuntu发布的, 官方建议在Ubuntu中安装, 很多版本的CentOS是不支持更新最新的一些补丁包的但是个人喜欢用CentOS, 所以一系列操作均在CentOS7 以上版本操作1.2安装Dockera. yum包更新到最新sudo yum updateb. 安装需要的软件包, yun-util提供yun-co...
2018-11-11 23:13:07
192
原创 Docker(一)
一什么是Docker基于Google公司的Go语言实现,后加入Linux基金会,遵从Apache2.0协议,项目代码在GitHub上进行维护。二Docker的优点 2.1上手快 用户只需要几分钟就可以把自己的程序“Docker化”,Docker依赖于“写时复制”(Copy on Write)模型,使修改应用程序非常迅速。 2.2职责的逻辑分类 使用Docker...
2018-11-11 20:03:58
673
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人