{
int a[2][3] = { 0 };
printf("address of a = %p %p %p %p\n", a, &a, &a[0], &a[0][0]); // all equal a
printf("address of a + 1 = %p %p %p %p\n", a+1, &a+1, &a[0]+1, &a[0][0]+1); // a+3*4 ( 4 bytes per int), a+6*4, a+3*4,a+4
}
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
http://stackoverflow.com/questions/541487/implements-runnable-vs-extends-thread
by extending Thread, each of your threads has a unique object associated with it, whereas implementing Runnable, many threads can share the same object instance.
Output of the above program.
ImplementsRunnable : Counter : 1
ImplementsRunnable : Counter : 2
ImplementsRunnable : Counter : 3
ExtendsThread : Counter : 1
ExtendsThread : Counter : 1
ExtendsThread : Counter : 1