After compilation of source file in Java, .class file gets generated which is used by JVM for executing the program. Does it mean that, you can't write code in any other language for Java platform? Certainly NOT!
Java provides mechanism to implement some of the functionality through native languages like C and C++. Native code is compiled to native machine code of the underlying processor and stored in Dynamically-linked Libraries (DLL). When a running application calls a native method; the Virtual machine loads the library that contains the native method and then invokes it. So, native methods are connection between Java program and underlying host OS.
Java provides native support so that you can access resources of the particular host that are unavailable through Java API, or even if it's available, it gives you alternative to write more efficient code through native code. But keep in mind that; this will make your code platform dependent. Let's cover some of the native methods from Java API.
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
System.arrayCopy:[java doc]
Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array. A subsequence of array components are copied from the source array referenced by src to the destination array referenced by dest. The number of components copied is equal to the length argument. The components at position srcPos through srcPos+length-1 in the source array are copied into position destPos+length-1, respectively, of the destination array.
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
String[] a = {"ab", "bc", "cd"};
String[] b = new String[5];
System.arraycopy(a, 0, b, 0, 2);
System.out.println(" Copied Array
Content "+ Arrays.toString(b));
output : Copied Array Content [ab,
bc, null, null, null]
String[] b = new String[5];
System.arraycopy(a, 0, b, 0, 2);
System.out.println(" Copied Array Content "+ Arrays.toString(b));
No comments:
Post a Comment