V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  fantastM  ›  全部回复第 8 页 / 共 17 页
回复总数  340
1  2  3  4  5  6  7  8  9  10 ... 17  
2020-12-16 22:57:51 +08:00
回复了 nightspirit 创建的主题 职场话题 某滴面试题,请教答案
订单 id -> 用户 id,用户 id -> 订单 id
2020-12-04 16:16:43 +08:00
回复了 nekoneko 创建的主题 Elasticsearch 一个关于 ES 的问题,和_stats 这个接口有关
看来老哥也是个宝可梦粉
2020-11-16 13:34:04 +08:00
回复了 coderabbit 创建的主题 程序员 通过 charles 抓淘宝 app 抓包抓不到数据!
可以在浏览器上抓 m.taobao.com 上的请求
2020-11-14 01:59:44 +08:00
回复了 yangkw 创建的主题 酷工作 杭州阿里-新零售场景金融技术部- Java p6p7
多问一下,是 base 杭州吗,哪个区呢
2020-11-10 14:59:30 +08:00
回复了 linxiaoziruo 创建的主题 Java 类 jprofiler 是怎么在 jvm 运行时获得 jvm 相关信息的
2020-11-05 22:43:18 +08:00
回复了 funway 创建的主题 分享创造 发布了一个 macOS 的倒计时小工具
不错。顺带想问下楼主学习 SwiftUI 的途径是什么?
2020-11-05 14:27:44 +08:00
回复了 lambdafate 创建的主题 程序员 有没有简洁的博客主题推荐一下
2020-10-26 00:44:20 +08:00
回复了 Eempty 创建的主题 酷工作 [杭州] 字节跳动招人啦~
字节杭州的面试强度怎么样
2020-10-20 09:24:37 +08:00
回复了 gigizhazha 创建的主题 问与答 前端比后端简单吗
美学 -> 界面 -> 前端 -> 接口 -> 后端 -> 机器 -> 数学
面试者真的能说,居然能一口气把事情说完。换我回答 ArrayList 和 LinkedList 的区别,估计只会说数组和链表,其它的就不想多说了......
2020-09-03 15:18:20 +08:00
回复了 fantastM 创建的主题 Visual Studio Code VS Code 的这个功能是怎么实现的?
@tomatolq @chenny3
嘶...我试了一下,好像确实是 macOS 自带的。那我这需求估计是只能将就了...

谢谢二位!
2020-08-28 12:30:30 +08:00
回复了 bryan31 创建的主题 Redis 面试官: Redis 如何存储和计算一亿用户的活跃度
> 把用户 Id 作为偏移量(offset)

假如 userId 是字符串类型( uuid )的时候要怎么办呢
2020-06-01 22:53:47 +08:00
回复了 asanelder 创建的主题 Java Java annotation processor 拿到被注解文件的内容
楼主说的 annotation processor 应该是 https://docs.oracle.com/javase/8/docs/api/javax/annotation/processing/AbstractProcessor.html

这是作用在 javac 阶段的,类似于 Lombok 的注解
2020-05-26 17:35:14 +08:00
回复了 hlwjia 创建的主题 English [一周年] 我也来带带各位想学英语的 v 友吧 [第五帖 ]
#二群# bTczOTI2MTc1Nw==
2020-05-15 14:14:38 +08:00
回复了 xiaobaobao 创建的主题 Java Synchronized 的轻量锁
有篇 OpenJDK 文章可以先看一下 https://wiki.openjdk.java.net/display/HotSpot/Synchronization

相关的 JVM 实现代码可以看这里 http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/oops/markOop.hpp

按照 OpenJDK 的说法,JVM 是这样实现的(先不考虑偏向锁):

`In the Java HotSpot™ VM, every object is preceded by a class pointer and a header word. The header word, which stores the identity hash code as well as age and marking bits for generational garbage collection, is also used to implement a thin lock scheme.` Java 中的每个对象都有关联的 class pointer 和 header word,Java 是用 header word 来实现 thin lock 的。

`As long as an object is unlocked, the last two bits have the value 01. ` 当对象没有被锁定的时候,header word 最后两位是 01 。

`When a method synchronizes on an object, the header word and a pointer to the object are stored in a lock record within the current stack frame. Then the VM attempts to install a pointer to the lock record in the object's header word via a compare-and-swap operation.` 当对象被 synchronized 的时候,这个对象的 header word 和 class pointer 会先被存储到当前线程 stack frame 中(类似于先保存一下数据的副本),这条栈帧被叫 lock record 。然后 JVM 尝试通过 CAS 操作,把 lock record 的指针记录在对象原先的 header word (前几位)中。

`If it succeeds, the current thread afterwards owns the lock. Since lock records are always aligned at word boundaries, the last two bits of the header word are then 00 and identify the object as being locked.` 如果这个 CAS 操作成功,就表示当前线程获取到了锁,对象的 header word 的最后两位会被设置成 00 。

`If the compare-and-swap operation fails because the object was locked before, the VM first tests whether the header word points into the method stack of the current thread.` 如果这个 CAS 操作失败,JVM 会先检查一下对象的 header word (前几位)里的 lock record 指针是否指向了当先线程的方法栈。(如果是的话,这个对象应该是 recursively locked object,这也就是 synchronized 的可重入特性;如果不是的话,就表示有多个线程在竞争这个对象的锁。)

`Only if two different threads concurrently synchronize on the same object, the thin lock must be inflated to a heavyweight monitor for the management of waiting threads.` 如果有两个不同的线程在竞争同一个对象的锁,thin lock 升级成 heavyweight monitor 。

Java 对象中 header word 的 bit format,可以看第二个链接的 37-54 行。
@maichael #1 其实这两个我都有搜到过,第二个还不支持仅显示选中的行,第一个的话我没搞懂它的 slice 参数是怎么用的......我一直没试成功

我是想着,既然 GitHub 它都支持把 markdown 里的链接渲染成仓库里的代码片段了,就想问问各位有没有什么方法可以直接用它的这个内部功能
2020-05-06 16:39:00 +08:00
回复了 fantastM 创建的主题 Java 热心翻译了 Google Java Style Guide
@hantsy #11 谷歌的风格对代码块要求是缩进 2 个空格 https://google.github.io/styleguide/javaguide.html#s4.2-block-indentation,但是对连续的换行(例如 Stream 的链式调用)要求是缩进 4 个空格 https://google.github.io/styleguide/javaguide.html#s4.5.2-line-wrapping-indent

其实我自己也是主张 4 个空格的...
2020-05-06 14:47:07 +08:00
回复了 fantastM 创建的主题 Java 热心翻译了 Google Java Style Guide
@hantsy #5 我倒是知道谷歌还有个类似于 Golang 中 go fmt 命令的项目 https://github.com/google/google-java-format
1  2  3  4  5  6  7  8  9  10 ... 17  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3180 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 13:19 · PVG 21:19 · LAX 05:19 · JFK 08:19
Developed with CodeLauncher
♥ Do have faith in what you're doing.