Java基础常见面试题总结

Java的特点

Java是一门面向对象的编程语言。面向对象和面向过程的区别参考下一个问题。

Java具有平台独立性和移植性

  • Java有一句口号:Write once, run anywhere,一次编写、到处运行。这也是Java的魅力所在。而实现这种特性的正是Java虚拟机JVM。已编译的Java程序可以在任何带有JVM的平台上运行。你可以在windows平台编写代码,然后拿到linux上运行。只要你在编写完代码后,将代码编译成.class文件,再把class文件打成Java包,这个jar包就可以在不同的平台上运行了。

arcstack大约 60 分钟JavaJava基础
Java集合常见面试题总结

常见的集合有哪些?

Java集合类主要由两个接口CollectionMap派生出来的,Collection有三个子接口:List、Set、Queue。

Java集合框架图如下:

List代表了有序可重复集合,可直接根据元素的索引来访问;Set代表无序不可重复集合,只能根据元素本身来访问;Queue是队列集合。Map代表的是存储key-value对的集合,可根据元素的key来访问value。


arcstack大约 27 分钟JavaJava集合
Java并发常见面试题总结

线程池

线程池:一个管理线程的池子。

为什么平时都是使用线程池创建线程,直接new一个线程不好吗?

嗯,手动创建线程有两个缺点

  1. 不受控风险
  2. 频繁创建开销大

为什么不受控

系统资源有限,每个人针对不同业务都可以手动创建线程,并且创建线程没有统一标准,比如创建的线程有没有名字等。当系统运行起来,所有线程都在抢占资源,毫无规则,混乱场面可想而知,不好管控。

频繁手动创建线程为什么开销会大?跟new Object() 有什么差别?


arcstack大约 46 分钟JavaJava并发