PreparedStatement and SQL Injection Prevention in Java
Concatenating input into SQL lets a caller rewrite your query. Bound parameters make that structurally impossible.
Placement preparation.
21 notes tagged
Concatenating input into SQL lets a caller rewrite your query. Bound parameters make that structurally impossible.
The collector reclaims objects that can no longer be reached. Understanding reachability explains both leaks and pauses.
The class loader, the runtime data areas and the execution engine, and how a class file becomes running machine code.
The two failures that define concurrency: results that depend on timing, and threads that wait for each other forever.
synchronized gives mutual exclusion and visibility. volatile gives visibility only, and knowing the difference prevents most concurrency bugs.
Generic type information exists only at compile time. Knowing what the compiler removes explains every generics restriction.
Buckets, hashing, collisions and resizing. Understanding the mechanism explains the performance and every rule about keys.
A List keeps insertion order and allows duplicates. ArrayList is the default; LinkedList wins only at the ends.
Errors, checked exceptions and unchecked exceptions sit in one hierarchy, and knowing which is which decides how you should react.
Wrapper classes turn primitives into objects so they can be used with generics and collections, and the conversion is automatic but not free.
Two objects that are equal must have the same hash code. Breaking that contract quietly breaks every hash based collection.
One reference type, many possible behaviours. Polymorphism is what lets code work with a supertype and stay correct as new subtypes appear.