w568w 最近的时间轴更新
w568w

w568w

V2EX 第 415660 号会员,加入于 2019-05-26 08:16:51 +08:00
今日活跃度排名 375
1 G 71 S 26 B
如何防止身边人被深度伪造等技术诈骗?
问与答  •  w568w  •  27 天前  •  最后回复来自 w568w
17
C# 有哪些显著的缺点?
  •  1   
    C#  •  w568w  •  11 小时 37 分钟前  •  最后回复来自 niubiman
    42
    创建异步风格 API 接口的最佳实践?
  •  1   
    程序员  •  w568w  •  209 天前  •  最后回复来自 w568w
    3
    各位有没有这种感受:用英文写文本有利于促进思考
    随想  •  w568w  •  211 天前  •  最后回复来自 gpt5
    13
    运行时 GC 成为过 / 可能成为你的性能瓶颈吗?
    程序员  •  w568w  •  229 天前  •  最后回复来自 Kumo31
    15
    突然发现脸萌已经是十年前流行的应用了
    分享发现  •  w568w  •  268 天前  •  最后回复来自 ezrameow
    4
    Blessed C:现代 C 生态系统使用指南
    分享创造  •  w568w  •  339 天前  •  最后回复来自 icyalala
    14
    2023 年,有什么原生级性能的跨平台 UI 框架?
  •  4   
    程序员  •  w568w  •  350 天前  •  最后回复来自 layxy
    106
    检测 Xposed 安装、防止应用被劫持的终极解决方案
  •  2   
    Android  •  w568w  •  2022-01-03 18:09:40 PM  •  最后回复来自 knziha
    41
    w568w 最近回复了
    1 天前
    回复了 nnegier 创建的主题 Java Android 的 Java 是阉割版的?何解呢
    > 怎样才能让 Android 用上非阉割版的 java

    首先,Java 标准是分得很碎的,至少有 Java SE API 和 JDK API 两部分[1]。Java SE 保证在所有完整的 Java 实现中存在,但 JDK 只是可选。你说的 com.sun.net.httpserver.HttpServer 属于 jdk.httpserver 模块[2],所以甚至都不属于 Java SE ,而是 JDK 这个可选规范的一部分。

    然后,Android 用的根本不是标准 JVM ,各种 Java 8 、11+ API 都是脱糖实现的[3],所以塞不进额外模块是理所当然的。先不说这些模块的实现可能依赖额外语言功能,光是有 JNI/JNA 就足够喝一壶了。这些平台下的最优解就是换用对应的库,不要想着沿用原来的写法了。

    当然如果你钻牛角尖说「我就是要用 com.sun.net.httpserver.HttpServer ,别的库用了我晚上睡不着」,这里[4]也有人试过直接把 runtime 打包塞进 APK 里,至少 HttpServer 看起来能工作。

    [1] https://docs.oracle.com/en/java/javase/23/docs/api/index.html
    [2] https://docs.oracle.com/en/java/javase/23/docs/api/jdk.httpserver/module-summary.html
    [3] https://developer.android.com/studio/write/java11-default-support-table
    [4] https://stackoverflow.com/a/70486739
    @SunsetShimmer #1 虽然但是,第一个就是楼主的吧
    1 天前
    回复了 HikariLan 创建的主题 Linux 从进程到协程:计算机的并发编程之路
    「无栈协程=状态机」这样的思想在 Rust 这种无默认运行时的语言中表现得更明显: https://doc.rust-lang.org/stable/std/future/trait.Future.html

    从上面的文档可以看到,Rust 对 Future 的定义就是:「一个有 poll(context) 方法的对象,每次执行返回 Pending 或者 Ready(result) 两种状态之一」。任何实现了 poll 方法的对象都被承认为一种协程。
    1 天前
    回复了 nnegier 创建的主题 Java Android 的 Java 是阉割版的?何解呢
    这很难吗: https://letmegooglethat.com/?q=android+http+server+library

    这种库实在太多以至于我不知道先给你推荐哪个……我用得最多的是 https://github.com/ktorio/ktor
    Alacritty 和 Kitty 这种实在太 raw 了,除了终端几乎没有任何额外功能:标签页、快速连接 SSH…

    我推荐 WezTerm

    https://wezfurlong.org/wezterm/ssh.html
    2 天前
    回复了 zhouyin 创建的主题 Java Java 为什么能给 char 类型赋值中文字符
    @sagaxu #33 这我倒没了解过,有来源吗?我的断言是上面文档里的描述:

    > The Java platform uses the UTF-16 representation in char arrays and in the String and StringBuffer classes.
    2 天前
    回复了 zhouyin 创建的主题 Java Java 为什么能给 char 类型赋值中文字符
    @w568w #29 手快发出去了。

    再太长不看:char 就是 16 位整数,所以有的字符你无法赋值给 char 。int 则用于代表任意一个 Unicode 字符。Java 在 char[] 和 String 中储存字符串的方式是 UTF-16 编码。
    2 天前
    回复了 zhouyin 创建的主题 Java Java 为什么能给 char 类型赋值中文字符
    这种涉及具体设计的东西,为什么不直接看文档呢: https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/Character.html#unicode

    太长不看:

    char 数据类型基于 Unicode 规范,该规范将字符( characters )定义为固定宽度的 16 位实体。从 U+0000 到 U+FFFF 的字符集有时被称为基本多语言平面 (Basic Multilingual Plane ,BMP)。码位大于 U+FFFF 的字符称为补充字符( supplementary characters )。UTF-16 编码这些补充字符的方式是,利用一对 16 位整数(称为「代用码位」), 第一个来自高代用值范围(\uD800-\uDBFF ),第二个来自低代用值范围(\uDC00-\uDFFF )。

    因此,一个 char 值代表基本多语言平面中的一个码位,包括 UTF-16 编码使用的代用码位。为了表示那些在 UTF-16 中需要多码位编码的补充字符们(如部分汉字、符号等),将用 int 类型来代表一个完整 Unicode 码位。

    因此,那些接受 char 类型的字符串工具函数,将无法处理补充字符;而接受 int 类型的那些,就可以处理所有字符。
    @MacsedProtoss #42 Flutter 一般根本接触不到多线程的,能用上 Isolate 的应用少之又少。好奇你说的「重活」是什么?写代码跑 FFT 还是自己实现数据库?

    原生代码交互确实很傻逼,Flutter 文档语焉不详,但一般都有现成的跨平台包可以调吧,pub.dev 生态还是很好的。

    你说的「不前端」的思维是什么?我看 SwiftUI 和 Flutter 的核心思想也挺像的啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   949 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:12 · PVG 05:12 · LAX 13:12 · JFK 16:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.