software-interview-prep

Java

Ideally, you should have one mainstream programming language down very well, to use in interviews. Java is mine.

Threads

Memory

Type bits Bytes
boolean 1 bit 1 Byte
byte 8 bit 1 Byte
short 16 bit 2 Byte
char 16 bit 2 Byte
int 32 bit 4 Byte
float 32 bit 4 Byte
long 64 bit 8 Byte
double 64 bit 8 Byte

JVM memory

JDK 8 memory

Garbage Collection

Common JVM Options

Bit Arithmetics/Operations

int a = 0b101;
assertEquals(5, a); // true

int zero  = 0b0;
int one   = 0b1;
int two   = 0b10;
int three = 0b11;
int five  = 0b101;
int x = 4;
int minusX = ~x + 1;
assertEquals(-4, minusX); // true

int minusOne   = 0b11111111111111111111111111111111;
int minusTwo   = 0b11111111111111111111111111111110;
int minusThree = 0b11111111111111111111111111111101;
int minusFour  = 0b11111111111111111111111111111100;
int minusFive  = 0b11111111111111111111111111111011;

Primitives

Strings

Interning

Concurrency

ITC (Inter-Thread Communication)

Access Levels

Modifier Class Package Subclass World
public Yes Yes Yes Yes
protected Yes Yes Yes No
no modifier Yes Yes No No
private Yes No No No

Autoboxing-Unboxing