@Autowired/@Inject – marks a destination for bean wiring (if no beans wired, exception is thrown – default, of null reference left – can be enabled explicitly, if more than one bean found – exception is thrown)

Destination for wired beans:

constructor

setter

method

What can be wired:

references on other objects/beans

literals

collections (list, map, set)

Mitigating ambiguity:

@Primary – marked bean will have precedence over other matching beans

@Qaulifier – additional level of matching between @Component and @Autowired

Multiproject – can be declared as single or multiple (own for each project) sbt file. Abstract parent project can have common settings, added or redefined by concrete child projects. dependsOn – defines dependency.

All GC do stop-the-world pause while checking the eden, for not eden, CMS and G1 may do (lower CPU consumption) or with not stop-the-world pause (high CPU consumption)

Serial GC (x32, single core machine or Windows) – for client:

single threaded

stop-the-world for new or old generation processing

Throughput (Unix, multi-core, x62):

multi-threaded

stop-the-world for new or old generation processing

CMS:

– multiple threads for new generation

for old generation, one thread scans object to free in background with no stop, but old generation remains fragmented, stop-the-world still happens, but quite rare, to defragment the old generation heap, usually it happens when there is no space to allocate for new object