刷牛客网机试题常见疑惑
1 TreeSet是啥?TreeMap又是啥?这俩有啥用?
两者都是基于红黑树,那红黑树又是啥?红黑树是一个自平衡的二叉查找树,遍历红黑树就会得到一个升序序列。在实际处理问题中,Set(保证元素不重复)和Map(key必须唯一且有序)基于红黑树并进行一系列业务处理,可以把一组相同数据类型的数据给处理成没有重复的元素的升序序列。比如一组数为22314465273,经过红黑树处理后,就变成了1234567,这里把所有有重复出现的数都合并为一个数。
那TreeSet和TreeMap又有啥区别呢?首先TreeSet是基于Set集合接口来实现的,而TreeMap是基于Map映射键值对(key,value)接口来实现的。所以TreeSet常用于处理一组单独的数,而TreeMap常用于处理一组序列对(按索引值key处理成无重复且升序的序列)。目的都是为了把一组无序且有重复元素的数据类型变成一组升序且无重复元素的序列。
在IDEA中做项目部署环境常见疑惑
jar包是啥?war包又是啥?有啥区别
jar包==java archive(原意存档/归档)意思就是把普通的好多分的java程序统一的归档打包到一个文件夹里面然后形成一个压缩文件,一个jar包里面往往是有一个特定的功能作用,把这个功能打包好放到网上的一个地址上。那么下一次后人也想有这个功能就不用再重新自己搭建,就可以直接从网上把这个jar包的地址找到,导入到自己的系统中,就可以使用前人实现的功能或者环境的部署。
war包==web java archive,部署完整web应用。区别于java archive多了一个单词web,那war包所应用的场景肯定是和web息息相关的,而war包的web/lib目录下包含war包依赖的jar包(因为一个web系统包含多个功能,一个jar包往往是一个功能的封装)。web是啥?就是我们所处的互联网,在网上我们点进去一个网站,每一个网站其实都是一个小web系统,用来服务不同的功能。web系统不需要我们下载一个app软件,只需要我们在一个简单的网页注册然后登录就可以享用该web系统的功能,更加的方便不用像app一样占用自己手机几百MB的内存。就比如我们去牛客网是为了在找工作的时候刷刷面经、再找一下不同大厂的题刷刷题库;去boss直聘网是为了找工作;去抖音、小红书、哔站(也有网页版)是为了放松或者看一些公开课。
再回归正题,war包既然是专门为war网站应用所封装的一个压缩文件,即一个压缩的web应用系统,那其最终的运行环境也就不是本地而是直接在浏览器上运行。本地IDEA有专门部署内置JVM(java虚拟机环境,兼容各种系统如windows、linux)可以跑jar包,那war包想要在浏览页运行是不是也需要有相应的部署环境?答案是肯定的,war包在浏览器上运行,需要有专门的web服务器的支持,如常见的Tomcat服务器。Tomcat服务器的作用是自动的解析war包中的各种jar包,并运行这个war包部署在浏览器上。
日常使用的IDEA中,对于jar包IDEA内置了JVM,对于对于war包IDEA内置了tomcat容器,所以在用IDEA运行war包时也不需要再专门下载tomcat包,直接用内置的就可以把war包解析并在浏览器上运行。