"https://book.yunzhan365.com/pgup/jwpk/mobile/index.html" (https://link.segmentfault.com/?enc=A9OKis%2B6tlFgCwfrBAQkow%3D%3D.%2BVJJI2YLZRB7BdIUAzWyXnWlj9x%2BO253q59lsMfJFJ1FRf%2BedgmHopojk0EIcYnWWF%2BHQPPga6jW6BYuueZMOw%3D%3D) 上面的网址打不开F12,右击也不管用,我想看源码,怎么看?
环境:jdk18 前言 今天在看Java string类的equals源码,源码主要逻辑比较好理解:先判断是否是同一对象,是就直接返回true,否则判断类型是否是string类型,且每一个元素内容是否相同(先判断length,再判断内容) 问题描述 在使用断点debug时发现 问题1: return (anObject instanceof String aString) && (!COMPACT_STRINGS || this.coder == aString.coder) && StringLatin1.equals(value, aString.value); 是循环运行 的,且有的时候value与aString.value的数组长度就不一样(哪怕字符相等,如""a".equals("a")") 问题2: * ""a".equals(new String("a"));" 传到equals后,参数如图所示 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/aac546615c33412c5a1bfd1e252a3ae0.png) * ""a".equals("a");" 传到equals后,参数如图所示 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/d7ff57fcba18a8d22d5eca1937fbb601.png) 但是上述两行代码,正常情况下传值后不应该是"a"吗? *** 上述两个问题,实在想不通,希望大佬可以解惑一下
在复习JavaSe的时候,注意到Serializable 接口是空接口。比较好奇,Serializable 底层是如何实现序列化相关操作的? 希望大佬们可以解答一下
今天在研究Java中"Integer.parseInt"的源码时,对于"int multmin = limit / radix;"这一句代码不太理解,请教一下为什么通过" result Character.MAX_RADIX) { throw new NumberFormatException("radix " + radix + " greater than Character.MAX_RADIX"); } boolean negative = false; int i = 0, len = s.length(); int limit = -Integer.MAX_VALUE; if (len > 0) { char firstChar = s.charAt(0); if (firstChar < '0') { // Possible leading "+" or "-" if (firstChar == '-') { negative = true; limit = Integer.MIN_VALUE; } else if (firstChar != '+') { throw NumberFormatException.forInputString(s, radix); } if (len == 1) { // Cannot have lone "+" or "-" throw NumberFormatException.forInputString(s, radix); } i++; } int multmin = limit / radix; int result = 0; while (i < len) { // Accumulating negatively avoids surprises near MAX_VALUE int digit = Character.digit(s.charAt(i++), radix); if (digit < 0 || result < multmin) { throw NumberFormatException.forInputString(s, radix); } result *= radix; if (result < limit + digit) { throw NumberFormatException.forInputString(s, radix); } result -= digit; } return negative ? result : -result; } else { throw NumberFormatException.forInputString(s, radix); } }
在查看一个源码文件的时候: 我有看到2个CMakeLists.txt文件: https://projects.blender.org/blender/blender/src/branch/main/CMakeLists.txt https://projects.blender.org/blender/blender/src/branch/main/source/CMakeLists.txt 一个是在根目录,一个是在主源码目录,请问它们之间有联系没有呢?如果有它们是怎么联系起来的? 没有找到答案。