#Java Generics came from GJ (Generic Java) and Pizza, by Odersky and Wadler.
on 02026-05-29Example of using #databases in #Java with #JDBC and try-with-resources: try (Connection conn = DriverManager.getConnection("jdbc:somejdbcvendor:other data needed by some jdbc vendor", "myLogin", "myPassword")) {try (Statement stmt = conn.createStatement()) {stmt.executeUpdate("INSERT INTO MyTable(name) VALUES ('my name')");}}
#Java try-with-resources can take a catch and/or finally block, and those execute after the resources are closed
“#Java Was Strongly Influenced by #Objective-C ...and not #C++...” #history
on 02025-10-08slowing down #Java #performance in order to test #profilers and find race conditions
on 02025-08-27#video #interview with James Gosling where he attributes the #JVM’s design to having had PERQ workstations from Three Rivers when he was at CMU, which ran UCSD p-System Pascal bytecode, which Raj Reddy had him port to the VAX, which he did by compiling the bytecode to VAX assembly. And he also of course talked to Smalltalk people (1h39m30s). Mentions that CDC machines were one’s-complement. When he tried to explain that the #Java bytecode was a postorder serialization of the syntax tree, Lex Fridman didn’t know what he was talking about, so I guess he’s kind of a beginner programmer.
on 02025-07-30why #MJD likes #Java: “I liked programming in Java mainly because I found it very relaxing. With a bad language, like say Fortran or csh, you struggle to do anything at all, and the language fights with you every step of the way forward. With a good language there is a different kind of struggle, to take advantage of the language’s strengths, to get the maximum amount of functionality, and to achieve the clearest possible expression. Java is neither a good nor a bad language. It is a mediocre language, and there is no struggle.”
on 02023-09-22#history of #Sun and in particular #Java
on 02023-07-02commentary on #MJD’s "Why I Like #Java"
on 02022-10-12Bil Lewis’s Omniscient #Debugger provided record-replay backward stepping of #Java programs in NetBeans and Eclipse #reverse-debugging
on 02021-02-03the GraalVM is licensed under GPLv2 with the classpath exception, just like the JVM #java #vms #licensing
on 02020-05-24The #Java #OpenGL binding, "JOGL", including OpenGL ES
on 02017-05-09The #source-code of #Java HashMap, used for most #hashing in Java; now uses tree bins instead of randomization to prevent #HashDoS #security problems
on 02016-08-03The #HashDoS #security fix in #Java 7 introduced #multithreading #performance problems, which were later fixed; in Java 8 hash32 was removed
on 02016-08-03the #HashDoS #CVE for #Java was CVE-2012-2739 #security
on 02016-08-03the proposal to mitigate #security DoS problems (#HashDoS: deliberate hash collisions, Crosby and Wallach 2003) in #Java 7 by giving String a new randomized hash32 method for and #hashing with it in all the built-in hash tables
on 02016-08-03copying the #Java API in #Android is #fair-use under #copyright law, according to the Oracle v. Google trial.
on 02016-05-26out-of-the-box #parallel sorting and #prefix-sum of arrays in #Java 8 for #performance.
on 02015-08-27The Apache Commons #CSV #Java library kind of sucks at performance but its API is not terrible.
on 02015-08-13SuperCSV is a stream-based #Java #CSV library with POJO support and data conversion. It still uses dynamic dispatch to figure out what to do after each field, though, making it slow.
on 02015-08-13Project #Lombok supports automatic bytecode generation of Builders for your #Java classes with a higher-order annotation, so you can say Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build(); without having to write a Builder class or its name, city, job, or build methods.
Troubleshooting guide for #Java SE 6. Explains what all those -XX flags mean and jhat, jmap, jps, jstack, hprof, etc.
on 02015-08-13How to control nondeterminism and make #performance #profiling possible on the #Java #JVM. This has been a real problem for me in developing #DyCSV.
on 02015-08-13The #hsdis #HotSpot #JVM disassembler for #Java #performance work.
on 02015-08-13Using #OW2-ASM to invoke #invokevirtual from #Java.
on 02015-08-13“How to print out #Java compiled #asm instructions on #Linux/MacOS” by installing #hsdis (for #performance mostly).
on 02015-08-10#downloads of the #HotSpot disassembler #hsdis for #Java #performance work.
on 02015-08-10Brief summary of how to build the #HotSpot disassembler hsdis for #Java #performance work.
on 02015-08-10#Java memory #profiling with jmap and jhat from the Sun JDK.
on 02015-08-10#lz4 #compression implementations by Adrien Grand in #Java
on 02015-08-05