A Comprehensive Study of Jailbreak Attack and Defence Techniques for Large Language Models