I have been programming in java for a while but I have not met a strange expression

```
int kk = 2 | 3;

```

What does '|' mean in this expression? It seems hard to Google it.

I met it in source 

```
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

```

Why we need to use this?