[java] What are native methods in Java and where should they be used?