Here is an example illustrating the memory allocation:
julia> function f()
A = zeros(10,10)
B = ones(10,10)
C = 2 .* ones(10,10)
D = 3 .* ones(10,10)
@time A .= B*C .+ D
return nothing
end
f (generic function with 1 method)
julia> f()
0.000005 seconds (1 allocation: 896 bytes)
In fact it allocated 896 bytes, whereas I was expecting 8*10^2 = 800 bytes.