1、明确你的项目到底是做什么的,有哪些功能

广告投放机:项目主要是为移动端有针对性的进行广告展示。

媒体管理平台SSP:为媒体端实现多种变现途径

(1)广告投放机中关于广告检索与排序的功能

1、广告检索使用了布尔表达式的检索

看个倒排索引的实现,如下:

public class InverseIndex<T> extends HashMap<T, List<Integer>> {

	private static final long serialVersionUID = 1L;

	public void add(Vector<T> doc, int currDocID) { // 加入文档就是加入doc中的关键字
		// 遍历document里的所有的term
		for (int w = 0; w < doc.size(); w++) {
			List<Integer> result = this.get(doc.get(w));
			if (result == null) {
				this.put(doc.get(w), new ArrayList<Integer>());
			}
			this.get(doc.get(w)).add(currDocID); // 在倒排索引的末尾插入新的文档
		}
	}

	// 在索引中进行一次查询
	public void retrieve(Set<T> query, Set<Integer> docIDs) {
		Iterator<T> iterator = query.iterator();
		while (iterator.hasNext()) {
			T t = iterator.next();
			if (this.get(t) != null && this.get(t).size() != 0) {
				docIDs.addAll(this.get(t));
			}
		}
	}

}

在对广告进行检索时,倒排索引面临两个问题:

A:广告的定向条件组合可以看成是一个由与与或关系连接的布尔表达式

B:在上下文关键词或者用户标签比较丰富时,广告检索的查询条件可能比较多。

所以使用布尔表达式来完成。主要也分为两步完成,为广告库中的广告建立倒排索引和在索引中查找符合用户画像的广告

 

2、排序主要是根据eCPM(千次展示收入)  注意eCPM是千次展示收益,所以是针对媒体来说的

自家的广告优先进行推送,API广告主要看各个API广告平台在某个媒体上收益的eCPM。

(2)广告的反作弊

1、SDK在传输数据时启用数据加密通道,为广告的每一次请求和返回进行加密,并为加密算法添加动态参数。

 
2、时差防护策略  移动广告作弊过程通常发生在点击、下载、激活三个步骤中,正常来说每个步骤都会有其对应的时间。一般作弊时,伪造点击与激活是并存的,他不管谁先谁后,碰上就算,所以往往在时间逻辑上是错误的。例如激活时间早于点击时间或者时间差过短等。为广告制定基于异常时差防护策略,设置异常时差范围,在分析点击和激活的时差后,校验时差设定范围,将激活转化过快的设备归为异常。 
注意,还是下载比点击先上报,或者激活比下载先到就是错误的。因为SDK可能发两个独立的上报请求,所以老板娘设定时差的范围。
 
3、更多的信息验证  如验证设备的信息是否存在(SDK一般初始化时会上报设备相关信息)
 
4、提供基于异常IP段防护策略,超过设定的IP数的峰值范围的数据,将会被防作弊功能自动过滤,通过调取大量的作弊日志发现,某个时段内,点击或者激活的IP过于集中是数据异常的常见表象,广告技术系统会设定在一定的时间内IP数的峰值,超过设定的范围内,将会被归为异常数据。 
 

(3)SSO单点登录系统

使用“单点登录”整合后,只需要登录一次就可以进入多个系统,而不需要重新登录,这不仅仅带来了更好的用户体验,更重要的是降低了安全的风险(第三方系统无需存储密码)和管理的消耗。

(4)广告API定时技术

(5)项目中使用的设计模式

单例 对 double check与内部类实现的单例要掌握

原型模式可以阐述一下对对象的深克隆。主要继承cloneable接口,实现克隆方法:

protected Object clone() throws CloneNotSupportedException {
 ...
}

参考博文:

(1)http://blog.csdn.net/lifetragedy/article/details/43817903

(2)http://blog.csdn.net/jadyer

2、明确你的项目的整体架构,在面试的时候能够清楚地画给面试官看并且清楚地指出从哪里调用到哪里、使用什么方式调用

3、明确你的模块在整个项目中所处的位置及作用及明确你的模块用到了哪些技术,更好一些的可以再了解一下整个项目用到了哪些技术

4、项目中遇到的难题,怎么解决的?

5、有什么研究深入的技术或比较满意的项目?

说struts2的缓存原理、构造方法的循环依赖注入等

Java面试06|项目相关介绍的更多相关文章

  1. 2019上半年总结——Github上那些Java面试、学习相关仓库

    分享一下最近逛Github看到了一些对于Java面试以及学习有帮助的仓库,这些仓库涉及Java核心知识点整理.Java常见面试题.算法.基础知识点比如网络和操作系统等等. 知识点相关 1.JavaGu ...

  2. Java面试技巧—如何自我介绍

    在企业面试环节中“自我介绍”这个老生常谈的话题就不用多说什么了,面试官必定会问的.那么如何在自我介绍的时候就能够打动面试官,吸引面试官对面试者的兴趣?如何进行自我介绍比较好?有没有什么方式方法呢?当然 ...

  3. 如何为Java面试准备项目经验

    1 提出问题 应届生朋友或Java程序员在找Java方面的工作时,一定会需要准备Java项目经验,但事实上不少求职者,是没有项目经验,或者只具有开源社区等的学习项目经验,这样的话,就很有可能在面试时无 ...

  4. java面试(Web相关)06

    1.JSP 和 servlet 有什么区别? JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式.servlet 和 JSP 最主要的不同点在于,servlet 的应用逻辑 ...

  5. Java面试01|JVM相关

    1.JVM内存查看与分析,编写内存泄露实例 堆区.栈区.方法区.本机内存都有可能内存溢出.在这里编写堆区内存溢出实例.如下(来自<深入理解Java虚拟机>一书. // -Xms20m -X ...

  6. java ee期末项目相关

    1.项目简介 本项目是对纸杯生产进行管理的的一个系统,从前端接收到订单,然后根据订单内容进行纸杯的生产.如下为该系统的总流程图: 1.项目系统架构图 3.系统用例图 4.ER图 主要的代码和相关文件见 ...

  7. Java中Stream流相关介绍

    什么是Stream? Stream是JDK8 API的新成员,它允许以声明性方式处理数据集合 特点 代码简洁: 函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环 多核友好 ...

  8. package、import、java及javac的相关介绍(转)

    Package: package中所存放的文件 所有文件,不过一般分一下就分这三种 1.java程序源文件,扩展名为.java: 2.编译好的java类文件,扩展名为.class: 3.其他文件,也称 ...

  9. Java面试10|数据库相关

    1.ID分配单点问题 系统使用一张表的自增来得到订单号,所有的订单生成必须先在这里insert一条数据,得到订单号.分库后,库的数量变多,相应的故障次数变多,但由于单点的存在,故障影响范围并未相应的减 ...

随机推荐

  1. python基础—迭代器、生成器

    python基础-迭代器.生成器 1 迭代器定义 迭代的意思是重复做一些事很多次,就像在循环中做的那样. 只要该对象可以实现__iter__方法,就可以进行迭代. 迭代对象调用__iter__方法会返 ...

  2. uva 11636 Hello World!

    https://vjudge.net/problem/UVA-11636 题意: 希望输出n条语句,但是并不会循环,所以只能复制粘贴,一条语句经过复制粘贴后可以变为2条,2条变成4条....每次可以只 ...

  3. Android:后台给button绑定onClick事件、当返回项目到手机页面时提示是否退出APP

    上一篇文章我们学习了android通过findViewById的方式查找控件,本章将了解button控件,及btton如何绑定控件. 通过android的ui设计工具设计一个登录页面: <Rel ...

  4. POJ-1328 Radar Installation--区间选点问题(贪心)

    题目链接: https://vjudge.net/problem/POJ-1328 题目大意: 假设陆地的海岸线是一条无限延长的直线,海岛是一个个的点,现需要在海岸线上安装雷达,使整个雷达系统能够覆盖 ...

  5. Web SCADA 电力接线图工控组态编辑器

    前言 SVG并非仅仅是一种图像格式, 由于它是一种基于XML的语言,也就意味着它继承了XML的跨平台性和可扩展性,从而在图形可重用性上迈出了一大步.如SVG可以内嵌于其他的XML文档中,而SVG文档中 ...

  6. Vue 项目代理设置的优化

    Vue 项目代理设置的优化 Vue 类的项目开发中项目结构基本都是类似于 Vue-cli 生成的方式, 这种方式开发中,最常用到的模式是开启代理进行 mock 调试或远程调试, 也就是使用了 Vue- ...

  7. 同主机下Docker+nginx+tomcat负载均衡集群搭建

    想用Docker模拟一下nginx+tomcat集群部署,今天折腾了一天,遇坑无数,终于在午夜即将到来之际将整个流程走通,借本文希望给同样遇到类似问题的小伙伴们留点线索. 主机环境是CentOS 7, ...

  8. [C#]设计模式-工厂方法-创建型模式

    介绍完简单工厂之后,现在就来介绍一下工厂方法模式.之前简单工厂有一个弊端就是每次你需要产生新的产品的时候都需要对创建工厂类进行更改,如同前一篇文章说过的一样最后的后果是工厂类会变得十分庞大. 而工厂方 ...

  9. css befroe after 尾类技术器

    CSS counter计数器(content目录序号自动递增)详解 这篇文章发布于 2014年08月26日,星期二,15:54,归类于 css相关. 阅读 44148 次, 今日 11 次 by zh ...

  10. [LeetCode] Find Duplicate Subtrees 寻找重复树

    Given a binary tree, return all duplicate subtrees. For each kind of duplicate subtrees, you only ne ...