V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Sunhcer  ›  全部回复第 1 页 / 共 1 页
回复总数  14
@lazyfighter 接口平台网关那边不走请求头鉴权,就不想给加,所以想直接在业务代码这边处理,比如,比如搞个 filter 识别特定 URL 增加请求头嘛
@night98 在业务层实现一个 filter 吗
@weivi 同一种来源的数据在不同阶段的不同呈现,这样说更准确; 来源上是一样,但数据不一样:打个比喻就像是,一个是带占位符的短信模板,一个是填充好的短信
@ikas 厉害了,我在这里找到一句话似乎可以终结疑问;
https://docs.oracle.com/javase/specs/jvms/se18/html/jvms-5.html

The Java Virtual Machine maintains a run-time constant pool for each class and interface (§2.5.5).
Java 虚拟机为每个类和接口维护一个运行时常量池; 那就是独立的喽
大佬,喝冰可乐!
@weivi 是不同的,我跟倾向于这种说法:
class 文件常量池存储的是当 class 文件被 java 虚拟机加载进来后存放在方法区的一些字面量和符号引用,字面量包括字符串,基本类型的常量。
运行时常量池是当 class 文件被加载完成后,java 虚拟机会将 class 文件常量池里的内容转移到运行时常量池里,在 class 文件常量池的符号引用有一部分是会被转变为直接引用的。
@weivi 类文件常量池跟运行时常量池不同吧
@JasonLaw 感谢回复,我浏览了对于方法区的描述,这个版本的描述是否适用于 jdk8 呢?按文档的说法,常量在方法区,8 中方法区的实现是元空间,那就是说运行时常量池还是在元空间的嘛

@xuanbg 权威,看不太懂,我这样阐述是否有问题呢?元空间内存角度上是一片动态扩展的内存区域,不同的类加载器在这片内存空间划分各自的领域,同一个类加载器加载的 class 元空间都在同一片区域,但是这里没有找到关于运行时常量池的描述,依旧不确定是一个还是多个
@xuanbg 我可以参考什么文献来证实这种说法吗?其实对于运行时常量池在堆区还是元空间也比较迷惑
6 楼猜想错了,参考《深入剖析 Java 虚拟机:源码剖析与实例详解(基础卷)》初步验证了 3 楼大佬的说法
研究了一波 class ,就整个 class 体系而言,(对普通类型而言) IntanceKlass 持有元信息和 class 对象,而真正的类对象 =java 代码中获取到类对象 InstanceMirrorKlass ,是存放在堆区的, 然后实例对象 oop 也是存放在堆区,这样说才准确吧?
@zmal
@huang119412 两者都是对象,都由 markOopDesc 类来实现锁机制?所以类锁和实例对象锁的实现,其实是一样的吗?
oracle 官网有点问题,暂时下载不了源码压缩包时,如果有感兴趣的,可以从下面拿到源码压缩包
链接: https://pan.baidu.com/s/1eL8kcRV2NgmskcBtw-ccXA 密码: ol83
@heiher 谢谢提醒,确实有意识到他是对象,但就是好奇类锁明确的运行机制
@zmal 提问时才发现,我的理解是建立在 1.7 版本,感谢提醒,get 了元空间
@huang119412 谢谢你的详细讲解 ,对象锁的锁标识在对象头的 markword 这确实是 hotspot 的实现方式,是我描述不当; 我按照你的提示,在源码中确实找到这两处;哈哈,但是不懂 c ,如果我还是想验证类锁的运行机制的话,你能否推荐一下相关书籍,我去研究一下
是的,比如以下 RequestHeader 参数:
:authority: xxx.com
:method: GET
:path: /gateway/questions?query=daily_hottest&page=1&size=9
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
content-type: application/json
cookie: _ga=GA1.2.2064040285.xxx; Hm_lvt_e23800c454aa573c0ccb16b52665ac26=xxx,1627203863,1627465270,1627562934; csrfToken=pOrHdM-zEFUfBAYVVxxx; showMotto=true; PHPSESSID=yyy; isCloseBeginnerGuide=1; referer=http://xxx.com/q/1010000041655818/edit; _gid=GA1.2.132730000.1650201310; PHPSESSID=bd36afab69d69df3f7b3f6xxx; _gat_gtag_UA_918487_8=1
referer: https://xxx.com/questions
sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "macOS"
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
token: bd36afab69d69df3f7b3f65ab46cc348
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3142 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 75ms · UTC 00:10 · PVG 08:10 · LAX 16:10 · JFK 19:10
Developed with CodeLauncher
♥ Do have faith in what you're doing.