Title: Bugs from FindBugs · Issue #765 · TheAlgorithms/Java · GitHub
Open Graph Title: Bugs from FindBugs · Issue #765 · TheAlgorithms/Java
X Title: Bugs from FindBugs · Issue #765 · TheAlgorithms/Java
Description: These are the bugs that detected by FindBugs in eclipse Scariest(3) 1.1 High confidence(1): Location: Line 32 in Matrix.java System.out.println("m3=="MATRIX": " + m2.equals("MATRIX")); //false Reason: Call to equals() comparing different...
Open Graph Description: These are the bugs that detected by FindBugs in eclipse Scariest(3) 1.1 High confidence(1): Location: Line 32 in Matrix.java System.out.println("m3=="MATRIX": " + m2.equals("MATRIX")); //false Reas...
X Description: These are the bugs that detected by FindBugs in eclipse Scariest(3) 1.1 High confidence(1): Location: Line 32 in Matrix.java System.out.println("m3=="MATRIX": " + m2.equals(&quo...
Opengraph URL: https://github.com/TheAlgorithms/Java/issues/765
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Bugs from FindBugs","articleBody":"These are the bugs that detected by FindBugs in eclipse\r\n1.\tScariest(3) \r\n1.1\tHigh confidence(1):\r\n\r\n1) Location: Line 32 in Matrix.java \r\n System.out.println(\"m3==\\\"MATRIX\\\": \" + m2.equals(\"MATRIX\")); //false\r\nReason: Call to equals() comparing different types\r\n\r\n Bug: Call to DataStructures.Matrix.Matrix.equals(String) in DataStructures.Matrix.Matrix.main(String[])\r\n\r\nThis method calls equals(Object) on two references of different class types and analysis suggests they will be to objects of different classes at runtime. Further, examination of the equals methods that would be invoked suggest that either this call will always return false, or else the equals method is not be symmetric (which is a property required by the contract for equals in class Object). \r\nRank: Scariest (1), confidence: High\r\nPattern: EC_UNRELATED_TYPES \r\nType: EC, Category: CORRECTNESS (Correctness)\r\n\r\n1.2\tNormal confidence(2):\r\n 1), Location: Line 35 in Matrix.java \r\n\t System.out.println(\"m2==m2: \" + m2.equals(m2)); //true\r\nReason: Self comparison of value with itself \r\nBug: Self comparison of DataStructures.Matrix.Matrix.equals(Matrix) with itself DataStructures.Matrix.Matrix.main(String[])\r\n\r\nThis method compares a local variable with itself, and may indicate a typo or a logic error. Make sure that you are comparing the right things. \r\nRank: Scariest (3), confidence: Normal\r\nPattern: SA_LOCAL_SELF_COMPARISON \r\nType: SA, Category: CORRECTNESS (Correctness)\r\n\r\n2), Location: Line 19 in CirclLinkedList.java\r\n head = new Node\u003cE\u003e(null,head);\r\n Reason: Uninitialized read of field constructor\r\nBug: Uninitialized read of head in new DataStructures.Lists.CircleLinkedList()\r\n\r\nThis constructor reads a field which has not yet been assigned a value. This is often caused when the programmer mistakenly uses the field instead of one of the constructor's parameters.\r\nRank: Scariest (3), confidence: Normal\r\nPattern: UR_UNINIT_READ \r\nType: UR, Category: CORRECTNESS (Correctness)\r\n\r\n2.\tScary(10)\r\n2.1\tHigh confidence(7):\r\n1) Location: Line 337 in AES.java\r\nint cellBitsLength = cellBits.length();\r\n\t\t\twhile (cellBitsLength \u003c 8) {\r\n\t\t\t\tcellBits = '0' + cellBits;\r\n\t\t\t}\r\n\t Reason: An apparent infinite loop \r\nBug: There is an apparent infinite loop in ciphers.AES.mergeCellsIntoBlock(int[])\r\nThis loop doesn't seem to have a way to terminate (other than by perhaps throwing an exception).\r\nRank: Scary (8), confidence: High\r\nPattern: IL_INFINITE_LOOP \r\nType: IL, Category: CORRECTNESS (Correctness)\r\n\r\n2) Location: Line 223 in AES.java\r\n\t\t\tint currentByteBitsLength = currentByteBits.length();\r\nwhile (currentByteBitsLength \u003c 2) {\r\n\t\t\t\tcurrentByteBits = '0' + currentByteBits;\r\n\t\t\t}\r\n\t Reason: An apparent infinite loop \r\n\r\nBug: There is an apparent infinite loop in ciphers.AES.scheduleCore(BigInteger, int)\r\nThis loop doesn't seem to have a way to terminate (other than by perhaps throwing an exception).\r\nRank: Scary (8), confidence: High\r\nPattern: IL_INFINITE_LOOP \r\nType: IL, Category: CORRECTNESS (Correctness)\r\n\r\n3) Location: Line 206 in AES.java\r\nint rBytesLength = rBytes.length();\r\n\t\t\twhile (rBytesLength \u003c 8) {\r\n\t\t\trBytes = \"0\" + rBytes;\r\n\t\t}\t \r\n \tReason: An apparent infinite loop \r\nBug: There is an apparent infinite loop in ciphers.AES.scheduleCore(BigInteger, int)\r\nThis loop doesn't seem to have a way to terminate (other than by perhaps throwing an exception).\r\nRank: Scary (8), confidence: High\r\nPattern: IL_INFINITE_LOOP \r\nType: IL, Category: CORRECTNESS (Correctness)\r\n\r\n4) Location: Line 308 AES.java\r\nint blockBitsLength = blockBits.length();\r\n\twhile (rBytesLength \u003c 8) {\r\n\t\t\trBytes = \"0\" + rBytes;\r\n\t\t}\t \r\n \tReason: An apparent infinite loop \r\n\r\nBug: There is an apparent infinite loop in ciphers.AES. splitBlockIntoCells(BigInteger)\r\nThis loop doesn't seem to have a way to terminate (other than by perhaps throwing an exception).\r\nRank: Scary (8), confidence: High\r\nPattern: IL_INFINITE_LOOP \r\nType: IL, Category: CORRECTNESS (Correctness)\r\n\r\n5) Location: Line 70 StackOfLinkedList.java\r\nNode temp = head;\r\n head = head.next;\r\n Reason: Possible null pointer dereference \r\nBug: Possible null pointer dereference of temp in DataStructures.Stacks.LinkedListStack.pop()\r\nThere is a branch of statement that, if executed, guarantees that a null value will be dereferenced, which would generate a NullPointerException when the code is executed. Of course, the problem might be that the branch or statement is infeasible and that the null pointer exception can't ever be executed; deciding that is beyond the ability of FindBugs. \r\nRank: Scary (6), confidence: High\r\nPattern: NP_NULL_ON_SOME_PATH \r\nType: NP, Category: CORRECTNESS (Correctness)\r\n\r\n6) Location: Line 90 DoublyLinkedList.java\r\n head = head.next; // oldHead \u003c--\u003e 2ndElement(head)\r\n head.previous = null; // oldHead --\u003e 2ndElement(head) nothing pointing at old head so will be removed\r\n Reason: Nullcheck of value pervious dereferenced \r\nBug: Nullcheck of DoublyLinkedList.head at line 91 of value previously dereferenced in DataStructures.Lists.DoublyLinkedList.deleteHead()\r\nA value is checked here to see whether it is null, but this value can't be null because it was previously dereferenced and if it were null a null pointer exception would have occurred at the earlier dereference. Essentially, this code and the previous dereference disagree as to whether this value is allowed to be null. Either the check is redundant or the previous dereference is erroneous.\r\nRank: Scary (9), confidence: High\r\nPattern: RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE \r\nType: RCN, Category: CORRECTNESS (Correctness)\r\n\r\n7) Location: Line 104 DoublyLinkedList.java\r\n Link temp = tail;\r\n tail = tail.previous; // 2ndLast(tail) \u003c--\u003e oldTail --\u003e null\r\n tail.next = null; // 2ndLast(tail) --\u003e null\r\nReason: Nullcheck of value pervious dereferenced \r\nBug: Nullcheck of DoublyLinkedList.head at line 91 of value previously dereferenced in DataStructures.Lists.DoublyLinkedList.deleteHead()\r\nA value is checked here to see whether it is null, but this value can't be null because it was previously dereferenced and if it were null a null pointer exception would have occurred at the earlier dereference. Essentially, this code and the previous dereference disagree as to whether this value is allowed to be null. Either the check is redundant or the previous dereference is erroneous.\r\nRank: Scary (9), confidence: High\r\nPattern: RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE \r\nType: RCN, Category: CORRECTNESS (Correctness)\r\n\r\n2.2\tNormal confidence(3):\r\n\r\n1) Location: Line 217 Matrix.java\r\n if (this.getRows() != other.getRows() || this.getColumns() != other.getColumns())\r\n return false;\r\nReason: Covariant equals() method defined , Object equals(Object) inherited\r\n Bug: DataStructures.Matrix.Matrix defines equals(Matrix) method and uses Object.equals(Object)\r\n\r\nThis class defines a covariant version of the equals() method, but inherits the normal equals(Object) method defined in the base java.lang.Object class. The class should probably define a boolean equals(Object) method. \r\nRank: Scary (8), confidence: Normal\r\nPattern: EQ_SELF_USE_OBJECT \r\nType: Eq, Category: CORRECTNESS (Correctness)\r\n\r\n2) Location: Line 124 HeapElement.java\r\n return (this.key == otherHeapElement.key) \u0026\u0026 (this.additionalInfo.equals(otherHeapElement.additionalInfo));\r\n\r\nReason: Covariant equals() method defined , Object equals(Object) inherited\r\nBug: DataStructures.Heaps.HeapElement defines equals(HeapElement) method and uses Object.equals(Object)\r\nThis class defines a covariant version of the equals() method, but inherits the normal equals(Object) method defined in the base java.lang.Object class. The class should probably define a boolean equals(Object) method. \r\nRank: Scary (8), confidence: Normal\r\nPattern: EQ_SELF_USE_OBJECT \r\nType: Eq, Category: CORRECTNESS (Correctness)\r\n\r\n3) Location: Line 32 Matrix.java\r\n System.out.println(\"m2==null: \" + m2.equals(null)); //false\r\nReason: Method call passes null for non-null parameter\r\nBug: Null passed for non-null parameter of equals(Matrix) in DataStructures.Matrix.Matrix.main(String[])\r\nA possibly-null value is passed at a call site where all known target methods require the parameter to be non-null. Either the parameter is annotated as a parameter that should always be non-null, or analysis has shown that it will always be dereferenced. \r\nRank: Scary (8), confidence: Normal\r\nPattern: NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS \r\nType: NP, Category: CORRECTNESS (Correctness)\r\n\r\n3.\tTroubling(5)\r\n3.1\tHigh confidence(1)\r\n1) Location: Line 88 BinaryTreeSort.java\r\n Double[] decimalArray = {8.2, 1.5, 3.14159265, 9.3, 5.1, 4.8, 2.6};\r\nReason: Rough value of known constant found\r\n\r\nBug: Rough value of Math.PI found: 3.14159265\r\nIt's recommended to use the predefined library constant for code clarity and better precision.\r\nRank: Troubling (14), confidence: High\r\nPattern: CNT_ROUGH_CONSTANT_VALUE \r\nType: CNT, Category: BAD_PRACTICE (Bad practice)\r\n\r\n\r\n\r\n3.2\tNormal confidence(4):\r\n\r\n1) Location: Line 19 Foo.java\r\n if (Integer.toString(50) == Byte.toString(b[i]))\r\nReason: Comparison of String objects using == or ! =\r\nBug: Comparison of String objects using == or != in test.Foo.bar() \r\nThis code compares java.lang.String objects for reference equality using the == or != operators. Unless both strings are either constants in a source file, or have been interned using the String.intern() method, the same string value may be represented by two different String objects. Consider using the equals(Object) method instead.\r\nRank: Troubling (11), confidence: Normal\r\nPattern: ES_COMPARING_STRINGS_WITH_EQ \r\nType: ES, Category: BAD_PRACTICE (Bad practice)\r\n\r\n2) Location: Line 53 TopKWords.java\r\n fis.close();\r\nReason: Value is null and guaranteed to be dereferenced on exception path\r\nBug: fis is null guaranteed to be dereferenced in Others.TopKWords$CountWords.getDictionary() on exception path\r\nThere is a statement or branch on an exception path that if executed guarantees that a value is null at this point, and that value that is guaranteed to be dereferenced (except on forward paths involving runtime exceptions). \r\nRank: Troubling (11), confidence: Normal\r\nPattern: NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH \r\nType: NP, Category: CORRECTNESS (Correctness)\r\n\r\n3) Location: Line 32 removeDuplicateFromString.java\r\n if(s.isEmpty() || s == null) {\r\n return s;\r\n }\r\nReason: Nullcheck of value previously dereferenced\r\nBug: Nullcheck of s at line 32 of value previously dereferenced in Others.removeDuplicateFromString.removeDuplicate(String)\r\nA value is checked here to see whether it is null, but this value can't be null because it was previously dereferenced and if it were null a null pointer exception would have occurred at the earlier dereference. Essentially, this code and the previous dereference disagree as to whether this value is allowed to be null. Either the check is redundant or the previous dereference is erroneous.\r\nRank: Troubling (11), confidence: Normal\r\nPattern: RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE \r\nType: RCN, Category: CORRECTNESS (Correctness)\r\n\r\n4) Location: Line 32 removeDuplicateFromString.java\r\n if(str.isEmpty() || str == null) return str;\r\nReason: Nullcheck of value previously dereferenced\r\nBug: Nullcheck of str at line 22 of value previously dereferenced in Others.ReverseString.reverse(String)\r\nA value is checked here to see whether it is null, but this value can't be null because it was previously dereferenced and if it were null a null pointer exception would have occurred at the earlier dereference. Essentially, this code and the previous dereference disagree as to whether this value is allowed to be null. Either the check is redundant or the previous dereference is erroneous.\r\nRank: Troubling (11), confidence: Normal\r\nPattern: RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE \r\nType: RCN, Category: CORRECTNESS (Correctness)\r\n\r\n4.\tOf concern(11)\r\n4.1\tHigh confidence(7):\r\n1) Location: Line 118 CSVFile.java\r\n \t\tArrayList\u003cString\u003e colums = new ArrayList\u003cString\u003e();\r\nReason: Dead store to local variable\r\nBug: Dead store to colums in new DataStructures.CSVFile.src.CSVFile(File, char)\r\nThis instruction assigns a value to a local variable, but the value is not read or used in any subsequent instruction. Often, this indicates an error, because the value computed is never used. Note that Sun's javac compiler often generates dead stores for final local variables. Because FindBugs is a bytecode-based tool, there is no easy way to eliminate these false positives. \r\nRank: Of Concern (15), confidence: High\r\nPattern: DLS_DEAD_LOCAL_STORE \r\nType: DLS, Category: STYLE (Dodgy code)\r\n\r\n2) Location: Line 146 TestCSVFile.java\r\n CSVFile testObj = new CSVFile(\"testData4.csv\",',');\r\nReason: Dead store to local variable\r\nBug: Dead store to testObj in DataStructures.CSVFile.src.TestCSVFile.testRemoving()\r\nThis instruction assigns a value to a local variable, but the value is not read or used in any subsequent instruction. Often, this indicates an error, because the value computed is never used. Note that Sun's javac compiler often generates dead stores for final local variables. Because FindBugs is a bytecode-based tool, there is no easy way to eliminate these false positives. \r\nRank: Of Concern (15), confidence: High\r\nPattern: DLS_DEAD_LOCAL_STORE \r\nType: DLS, Category: STYLE (Dodgy code)\r\n\r\n3) Location: Line 93 NodeStack.java\r\n \tNodeStack.head = NodeStack.head.getPrevious();\r\nReason: Write to static field from instance method\r\nBug: Write to static field DataStructures.Stacks.NodeStack.head from instance method DataStructures.Stacks.NodeStack.pop()\r\nThis instance method writes to a static field. This is tricky to get correct if multiple instances are being manipulated, and generally bad practice. \r\nRank: Of Concern (15), confidence: High\r\nPattern: ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD \r\nType: ST, Category: STYLE (Dodgy code)\r\n\r\n4) Location: Line 78 NodeStack.java\r\n \t NodeStack.head = newNs;\r\nReason: Write to static field from instance method\r\nBug: Write to static field DataStructures.Stacks.NodeStack.head from instance method DataStructures.Stacks.NodeStack.push(Object)\r\nThis instance method writes to a static field. This is tricky to get correct if multiple instances are being manipulated, and generally bad practice. \r\nRank: Of Concern (15), confidence: High\r\nPattern: ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD \r\nType: ST, Category: STYLE (Dodgy code)\r\n\r\n5) Location: Line 269 ClosesPair.java\r\n \t minNum = length;\r\nReason: Write to static field from instance method\r\nBug: Write to static field divideconquer.ClosestPair.minNum from instance method divideconquer.ClosestPair.bruteForce(ClosestPair$Location[])\r\nThis instance method writes to a static field. This is tricky to get correct if multiple instances are being manipulated, and generally bad practice. \r\nRank: Of Concern (15), confidence: High\r\nPattern: ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD \r\nType: ST, Category: STYLE (Dodgy code)\r\n\r\n6) Location: Line 232 ClosesPair.java\r\n \t\t\tminNum = length;\r\nReason: Write to static field from instance method\r\nBug: Write to static field divideconquer.ClosestPair.minNum from instance method divideconquer.ClosestPair.closestPair(ClosestPair$Location[], int)\r\nThis instance method writes to a static field. This is tricky to get correct if multiple instances are being manipulated, and generally bad practice. \r\nRank: Of Concern (15), confidence: High\r\nPattern: ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD \r\nType: ST, Category: STYLE (Dodgy code)\r\n\r\n7) Location: Line 195 NodeStack.java\r\n \t\tif (xGap \u003c minValue) {\r\n\t\t\t\tsecondCount++; // size of the array\r\n\t\t\t}\r\nReason: Write to static field from instance method\r\nBug: Write to static field divideconquer.ClosestPair.secondCount from instance method divideconquer.ClosestPair.closestPair(ClosestPair$Location[], int)\r\nThis instance method writes to a static field. This is tricky to get correct if multiple instances are being manipulated, and generally bad practice. \r\nRank: Of Concern (15), confidence: High\r\nPattern: ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD \r\nType: ST, Category: STYLE (Dodgy code)\r\n\r\n4.2\tNormal confidence(4):\r\n1) Location: Line 21 AnyBaseToDecimal.java\r\n \t\t System.out.println(\"Decimal value of \" + inp + \" is: \" + convertToDecimal(inp, base));\r\nReason: Dereference of result of readLine() without nullcheck\r\nBug: Dereference of the result of readLine() without nullcheck in Conversions.AnyBaseToDecimal.main(String[])\r\nThe result of invoking readLine() is dereferenced without checking to see if the result is null. If there are no more lines of text to read, readLine() will return null and dereferencing that will generate a null pointer exception. \r\nRank: Of Concern (15), confidence: Normal\r\nPattern: NP_DEREFERENCE_OF_READLINE_VALUE \r\nType: NP, Category: STYLE (Dodgy code)\r\n\r\n2) Location: Line 28 MinimizingLateness.java\r\n \t\t indexCount = Integer.parseInt(ch); // The first line specifies the size of the operation (= the size of the array)\r\nReason: Dereference of result of readLine() without nullcheck\r\nBug: Dereference of the result of readLine() without nullcheck in MinimizingLateness.MinimizingLateness.main(String[])\r\nThe result of invoking readLine() is dereferenced without checking to see if the result is null. If there are no more lines of text to read, readLine() will return null and dereferencing that will generate a null pointer exception. \r\nRank: Of Concern (15), confidence: Normal\r\nPattern: NP_DEREFERENCE_OF_READLINE_VALUE \r\nType: NP, Category: STYLE (Dodgy code)\r\n\r\n3) Location: Line 18 removeDuplicateFromString.java\r\n \tSystem.out.println(\"String after removing duplicates: \" + removeDuplicate(inp_str));\r\nReason: Dereference of result of readLine() without nullcheck\r\nBug: Dereference of the result of readLine() without nullcheck in Others.removeDuplicateFromString.main(String[])\r\nThe result of invoking readLine() is dereferenced without checking to see if the result is null. If there are no more lines of text to read, readLine() will return null and dereferencing that will generate a null pointer exception. \r\nRank: Of Concern (15), confidence: Normal\r\nPattern: NP_DEREFERENCE_OF_READLINE_VALUE \r\nType: NP, Category: STYLE (Dodgy code)\r\n\r\n4) Location: Line 44 ReverseString.java\r\n \t\t System.out.println(\"Reverse=\"+reverse(srr));\r\nReason: Dereference of result of readLine() without nullcheck\r\nBug: Dereference of the result of readLine() without nullcheck in Others.ReverseString.main(String[])\r\nThe result of invoking readLine() is dereferenced without checking to see if the result is null. If there are no more lines of text to read, readLine() will return null and dereferencing that will generate a null pointer exception. \r\nRank: Of Concern (15), confidence: Normal\r\nPattern: NP_DEREFERENCE_OF_READLINE_VALUE \r\nType: NP, Category: STYLE (Dodgy code)\r\n","author":{"url":"https://github.com/MengqiLin","@type":"Person","name":"MengqiLin"},"datePublished":"2019-05-21T13:06:40.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/765/Java/issues/765"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:6d3c3b9d-2fe1-8b0e-2091-0489238eecf8 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C36A:A6347:A79FF8:E14B73:6A5CE7AD |
| html-safe-nonce | c30617832c2e5fec1e0345de709996216212529555d336f2c6b952a02da157a9 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMzZBOkE2MzQ3OkE3OUZGODpFMTRCNzM6NkE1Q0U3QUQiLCJ2aXNpdG9yX2lkIjoiMjY4MDk2MDAzNDM4MjA3OTkxOCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | af49566ad50b66282c1469ee149b7239ef7311f79341b3b3a49d27840bc7974e |
| hovercard-subject-tag | issue:446608552 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/TheAlgorithms/Java/765/issue_layout |
| twitter:image | https://opengraph.githubassets.com/3f21876a9c130d52fb5c279f17b162b6ddf18edec74d09b1a812b6d6656fc7a5/TheAlgorithms/Java/issues/765 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/3f21876a9c130d52fb5c279f17b162b6ddf18edec74d09b1a812b6d6656fc7a5/TheAlgorithms/Java/issues/765 |
| og:image:alt | These are the bugs that detected by FindBugs in eclipse Scariest(3) 1.1 High confidence(1): Location: Line 32 in Matrix.java System.out.println("m3=="MATRIX": " + m2.equals("MATRIX")); //false Reas... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | MengqiLin |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b |
| turbo-cache-control | no-preview |
| go-import | github.com/TheAlgorithms/Java git https://github.com/TheAlgorithms/Java.git |
| octolytics-dimension-user_id | 20487725 |
| octolytics-dimension-user_login | TheAlgorithms |
| octolytics-dimension-repository_id | 63477660 |
| octolytics-dimension-repository_nwo | TheAlgorithms/Java |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 63477660 |
| octolytics-dimension-repository_network_root_nwo | TheAlgorithms/Java |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 9c975978430e9ad293956f2bbdaf153b1bd84a99 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width