作业1:索引数据的存储与操作使用的是ConcurrentHashMap、ConcurrentSkipListSet,能否使用 HashMap、HashSet 替换呢 ?为什么 ?
答: 不能, 用HashMap和HashSet在高并发的情况下会有线程安全问题,相比之下ConcurrentHashMap和ConcurrentSkipListSet是线程安全的类
作业2:你可以对推广单元限制维度(关键词、地域、兴趣)的索引进行改造吗 ?怎么改造 (考虑其他的数据结构)?
答: 感觉目前索引的建立方式就挺好的…
作业3:DataTable.java 的功能是什么 ?
答: 主要是在使用bean的时候,不需要繁琐的注入吧,正常情况下,都需要Autowired或者Resource注入。如果使用到的bean太多的话,也是个苦力活。所以说DataTable.java通过获取spring上下文,里面的of方法实现了往dataTableMap中存放相应的bean,再加上条件判断也不需要频繁的getBean(),这样方便我们使用,只需要注入dataTable,调用of方法就可以取到相应的bean.
作业4:如果广告数据太多,内存中放不下,你会怎么做 ?
答: 那就存缓存中吧,redis和memcached都行,这两个缓存好像也是基于内存的,速度应该挺快的。广告数据一般变化的情况不多,检索较多,感觉存在缓存中还挺合适的。不知道理解的对不对 .