java基础杂记
这里只是我平时碰到的但是平时又不是很注意的java,做个记录。
1.java.util.Date 和 java.util.Calendar
Calendar是Date的功能加强,Date没有舒服的日期操作,Calendar有。
Date是具体类,创建对象的时候为new Date()即可。
Calendar是抽象类,创建对象需要调用静态方法,Calendar.getInstance(),其实返回的是GregorianCalendar类实例。
2.Arrays.asList(T...a)
该静态方法返回一个List的子类对象,其实这个对象是Arrays$ArrayList是Arrays内部的一个函数
class ArrayList<E> extends AbstractList<E> implements RandomAccess
在这个Arrays$ArrayList中,没有重写(overwrite)add()和remove()方法,所以在这个Arrays$ArrayList对象上如果使用add
和remove操作将会抛出UnSupportedOperationException异常。
3.ThreadLocal
ThreadLocal(local variable)其实是本地变量的意思,它存放了一个线程“私有的”变量,使得各线程能够保持各自独立的一个对象。
内部实现是使用了一个Map来存储各个线程中的独立对象。
4.native
Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。首先在java文件中定义一个native函数
public native void helloWorld();编译出class文件,然后通过javah -jni 来获取出本地C++头文件 xxx.h,再编写cpp文件,使用C++编译器通过特定的编译选项编译出dll。注意在原来包含native函数的类中,调用该函数之前,需要用System.loadLibrary("xxx");来导入dll文件,这样就可以正确使用native函数了。
continue。。。。。。
浙公网安备 33010602011771号