Disclaimer: What you read here are my personal ideas and they are not necessarily correct or widely accepted.
In short, practice! and probably more practice. If I want to talk in detail, there are few things that I like to point out. I was in more or less the same situation, having some experience in java and knowing c++ in surface.
To master c++ neither books nor video lectures were so much of help. Don't get me wrong, books are fine but in my case, it was only a matter of checking syntax or knowing the concept in detail. What really helped me, was developing couple of very serious projects with c++ and while doing that, I pretty much mastered some of the most important concepts. So again, practice, doing projects and meanwhile knowing what you are doing. By "knowing what you are doing" I mean you should know what exactly your code is doing (e.g. what is the difference between pass by reference and pass by pointer and etc).
Moreover, you should learn some details like how the compiler and linker work, what are macros and more. The point is, java is very nice language when developing(personal opinion); it's easy and fast to develop and you don't really need to be worry about lots of programming aspects. C++ on the other hand is not that easy. If you want to really master the language, you should know about the details of compiler, linker, macros, debuggers and etc.
I don't want to start a battle of operating systems here but I strongly suggest to work with linux. Nice architecture of linux allows you really see how things work and tools like cmake (which is cross platform btw) allows you to have a better understating of the compilation process. If you don't wanna use linux, at least forget about automated IDEs like ms visual studio where everything happens with a simple click.
But if I want to make only one suggestion, I have to repeat again: PRACTICE!