Java在1.5之后引入了泛型,防止在编译时产生类型转换错误,编译时就能及时发现,而不是运行。程序在编译时会将泛型去掉,这就是泛型擦除。
1)泛型:Java在jdk5引入了泛型,在没有泛型之前,每次从集合中读取的对象都必须进行类型转换,如果在插入对象时,类型出错,那么在运行时转换处理的阶段就会报错。在提出泛型之后就可以明确的指定集合接受哪些对象类型,编译器就能知晓并且自动为插入的代码进行泛化,在编译阶段告知是否插入类型错误的对象,程序会变得更加安全清晰。
2)泛型擦除:Java泛型是伪泛型,因为Java代码在编译阶段,所有的泛型信息会被擦除,Java的泛型基本上都是在编辑器这个层次上实现的,在生成的字节码文件中是不包含泛型信息的,使用泛型的时候加上的类型,在编译阶段会被擦除掉,这个过程称为泛型擦除。
MySQL索引主要有普通索引、唯一索引、主键索引、外键索引、全文索引、复合索引几种;
优点: 1.大大加快数据的检索速度 2.通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能 缺点: 1.时间方面:创建索引和维护索引要耗费时间,索引需要动态的维护 2.空间方面:需要占物理空间
不知道是不可能的
1.线程是程序执行的最小单元,一个进程可以拥有多个线程 2.各个线程之间共享程序的内存空间(代码段、数据段和堆空间)和系统分配的资源(CPU,I/O,打开的文件),但是各个线程拥有自己的栈空间 3.多线程优点:减少程序响应时间;提高CPU利用率;创建和切换开销小;数据共享效率高;简化程序结构
1.如果线程间采用synchronized来保证线程安全,则采用wait、notify、notifyAll来实现线程通信 2.如果线程间采用Lock来保证线程安全,则采用await\singal\singalAll 3.通过消息队列