首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏墨鬓

    《Java 开发手册》解读:三目运算符为何会导致 NPE?

    那么他就会先根据 JLS 15.25 的规定,把返回值结果转换成基本类型。 参考资料: 【1】《Java 开发手册(泰山版)》 【2】http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.25   【3】http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.25  【4】https://docs.oracle.com /javase/specs/jls/se8/html/jls-15.html#jls-15.2  【5】https://docs.oracle.com/javase/specs/jls/se7/html /jls-15.html#jls-15.12.2.7  【6】https://docs.oracle.com/javase/specs/jls/se8/html/jls-18.htm

    2K00发布于 2020-07-30
  • 来自专栏LeetCode

    <JVM> 关于GC的一些文章链接

    docs.oracle.com/javase/specs/jvms/se8/html/index.html java语言规范 https://docs.oracle.com/javase/specs/jls specs/jvms/se8/html/jvms-4.html#jvms-4.7.12 constant variable: https://docs.oracle.com/javase/specs/jls /se8/html/jls-4.html#jls-4.12.4 常量表达式 https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls

    59500发布于 2018-11-28
  • 来自专栏一个会写诗的程序员的博客

    Java Class 对象模型的数据结构分析: ClassLoader 与 Modifier

    * @jls 9.1.1 Interface Modifiers */ private static final int INTERFACE_MODIFIERS = * @jls 8.8.3 Constructor Modifiers */ private static final int CONSTRUCTOR_MODIFIERS = * @jls 8.4.1 Formal Parameters */ private static final int PARAMETER_MODIFIERS = * * @jls 8.1.1 Class Modifiers * @since 1.7 */ public static int classModifiers * * @jls 8.3.1 Field Modifiers * @since 1.7 */ public static int fieldModifiers

    53030编辑于 2021-12-16
  • 来自专栏nobody

    Java避坑指南之:三元操作符(?: )

    conversion may include boxing or unboxing conversion (§5.1.7, §5.1.8). https://docs.oracle.com/javase/specs/jls /se17/html/jls-15.html#jls-15.25 其它规则:比如原生类型的类型不同,会发生类型自动转换,基本都是范围小的类型转换为范围大的类型。

    33320编辑于 2023-06-19
  • 来自专栏Albert陈凯

    2018-10-28 String.valueOf(null) 会报空指针异常

    https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2

    73710发布于 2018-12-04
  • 来自专栏飞天小牛肉

    重大线上事故!三元表达式引发的空指针问题

    原理分析 关于为什么编辑器会在代码编译阶段对于三目运算符中的表达式进行自动拆箱,其实在《The Java Language Specification》(后文简称 JLS,是Java 语言规范,是一切 我们直接看 Java SE 1.7 JLS 中关于这部分的描述(因为 1.7 的表述更加简洁一些),原文地址 -> https://docs.oracle.com/javase/specs/jls/se7 /html/jls-15.html#jls-15.25: 看我框出来的两句话: If the second and third operands have the same type (which may 理解下这句话,JLS 的规范是如果第二和第三位操作数分别是基本类型和包装类型,那么要求返回值是基本类型。 那如果你自己写的代码返回值是包装类型,那么编译器为了满足 JLS 规范,其实是会自动做一个拆箱的 简单总结:只要表达式 1 和表达式 2 的类型有一个是基本类型一个是包装类型,就会做触发类型对齐的拆箱操作

    50330编辑于 2023-09-09
  • ​byte加byte居然是int了?

    1;byte b = 2;b = (byte) (a + b);// 写法二(这种写法是上面写法的一种简化写法,具体可以见:https://docs.oracle.com/javase/specs/jls /se8/html/jls-15.html#jls-15.26.2byte a = 1;byte b = 2;b += a;问题原理首先根据 Java 语言规范的描述,在执行加法或者减法运算时,会对操作数进行类型提升

    35110编辑于 2024-11-07
  • 来自专栏凯哥Java

    Java中注解学习系列教程-3

    Java官方文档(https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.1)原文如下: ? 类型举例: ?

    40820发布于 2019-06-28
  • 来自专栏大神带我来搬砖

    如何编写更优雅的代码——java中用break语句模拟goto来中止代码块的执行

    根据https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html, java的break语句不仅可以跳出循环,还可以中止label标记的代码块

    1.6K90发布于 2018-05-02
  • 来自专栏IT可乐

    Java关键字——instanceof

    System.out.println(null instanceof Object);//false   关于 null 类型的描述在官方文档:https://docs.oracle.com/javase/specs/jls /se7/html/jls-4.html#jls-4.1 有一些介绍。 7、深究原理   我们可以看Java语言规范Java SE 8 版:https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.20.2

    2.2K70发布于 2018-03-30
  • 来自专栏code-x

    Java重载匹配算法

    mfrbuaa/p/4713799.htmlhttps://www.cnblogs.com/keeya/p/12780847.htmlhttps://docs.oracle.com/javase/specs/jls /se8/html/jls-15.html#jls-15.12.2

    82800编辑于 2022-12-03
  • 来自专栏一枝花算不算浪漫的专栏

    由初始化线程池引发的NoClassDefFoundError 异常分析

    NoClassDefFoundError 异常究竟是怎么来的了,打开Oracle 文档便开始全局搜索这个,果不其然,有了新的发现: (文档地址:https://docs.oracle.com/javase/specs/jls /se7/html/jls-12.html#jls-12.4.2) ?

    77920发布于 2018-10-10
  • 来自专栏null的专栏

    图解机器学习总结——2、回归

    \left ( \mathbf{ x}_i\right )-y_i \right )^2 二、最小二乘学习法 最小二乘法是对LossLoss函数为最小时的参数进行学习,即: θ^LS=argminθJLS 此时,损失函数的形式为: JLS(Θ)=12∥ΦΘ−y∥2 J_{LS}\left ( \Theta \right )=\frac{1}{2}\left \| \Phi \Theta -\mathbf 1\left ( \mathbf{x}_n \right ) & \cdots & \phi _b\left ( \mathbf{x}_n \right ) \end{pmatrix} 为了能够求出JLS (Θ)J_{LS}\left ( \Theta \right )最小值时对应的参数Θ \Theta : ▽ΘJLS=(∂JLS∂θ1,⋯,∂JLS∂θb)T=ΦTΦΘ−ΦTy \bigtriangledown

    65230发布于 2019-02-14
  • 来自专栏用户2276240的专栏(5)

    为什么缺少Annotations不会导致类未找到异常-Java快速入门教程

    此外,JLS §13.5.7条目还指出: 添加或删除注释不会影响 Java 编程语言中程序二进制表示的正确链接。 底线是,运行时不会因缺少注释而引发异常,因为 JLS 允许这样做。 3.3. 168) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 1 more 根据 JLS

    45700编辑于 2025-04-05
  • 来自专栏后台技术汇

    一文读懂《Effective Java》第23条:不要在新代码中使用原生态类型

    在类文字(class literal)中必须使用原生态类型,规范不允许使用参数化类型(但允许数组类型和基本类型)[JLS,15.8.2] ClassLiteral: TypeName {[ ] or the pseudo-type void, followed by a '.' and the token class. https://docs.oracle.com/javase/specs/jls /se8/html/jls-15.html#jls-15.8.2 instanceof 操作符对“无限制通配符”的参数化类型是无效非法的。

    49520编辑于 2022-05-28
  • 来自专栏极梦C

    文件上传绕过-getshell

    ps JSP Unicode解析特性 在JSP文件中,在除开头部声明处,其他的代码内容均可以使用Unicode代码进行替换 https://docs.oracle.com/javase/specs/jls /se8/html/jls-3.html#jls-UnicodeEscape 免杀马制作: 先正常的免杀马,绕过进行unicode编码。

    84322编辑于 2023-07-12
  • 来自专栏兜兜毛毛

    Integer使用双等号比较会发生什么

    identity semantics of autoboxing for values between * -128 and 127 (inclusive) as required by JLS +) cache[k] = new Integer(j++); // range [-128, 127] must be interned (JLS7

    67120发布于 2019-10-23
  • 来自专栏FreeBuf

    某次攻防文件上传绕过-getshell

    -成功 JSP Unicode解析特性 在JSP文件中,在除开头部声明处,其他的代码内容均可以使用Unicode代码进行替换 https://docs.oracle.com/javase/specs/jls /se8/html/jls-3.html#jls-UnicodeEscape 免杀马制作 先正常的免杀马,然后进行unicode编码。

    2.4K20发布于 2021-05-20
  • 来自专栏程序猿DD

    你真的了解lambda吗?一文让你明白lambda用法与源码分析

    /* @jls 4.3.2. The Class Object * @jls 9.8 Functional Interfaces * @jls 9.4.3 Interface Method Body * @since 1.8 */ * * @jls 4.3.2. The Class Object * @jls 9.8 Functional Interfaces * @jls 9.4.3 Interface Method Body * @since 1.8

    69120发布于 2018-08-17
  • 来自专栏架构专题

    血洗多线程,抱得offer归

    扩展阅读(jdk10): https://docs.oracle.com/javase/specs/jls/se10/html/jls-17.html#jls-17.7 咦?怎么有11个?

    59420发布于 2019-07-10
领券