Difference between revisions of "Interview Questions"

From Hawk Wiki
Jump to: navigation, search
(JavaScript)
(Swap 2 numbers in one line)
Line 90: Line 90:
 
echo $a." and ". $b."\n";
 
echo $a." and ". $b."\n";
 
// output 20 and 10
 
// output 20 and 10
$a^=$b^=$a^=$b;
+
$a^=$b^=$a^=$b; //This has a bug. You cannot do things like this $a^=$a^=$a^=$a
 
echo $a." and ". $b;
 
echo $a." and ". $b;
 
//output 10 and 20
 
//output 10 and 20
 
</pre>
 
</pre>

Revision as of 01:56, 24 February 2012

Some Translation

n! Multiplicative

Object-oriented programming

Check here Interview_Questions(OOP)

Algorithm Interview Problems

Algorithm Problems

C/C++

ArrayList Vs LinkedList

ArrayList: fast random access
slow at delete
memory fill up issue
LinkedList: slow random access
quick delete
no memory fill up issue
complex data structure

PHP

abstract class

Can not be Instantiable.(cannot become instant. Can only be inherited)

abstract class Fruit {
 private $color;

 abstract public function eat()

 public function setColor($c) {
  $this->color = $c;
 }
}

Single or Double Quotes?

//Sometimes people use double quotes in PHP to avoid having to use the period to separate code. For example, you could write:
$color='red';
echo "I have a $color shirt on today<br/>";
//Faster however is not always better. A better way to write this code would be:
echo 'I have a ' .$color. ' shirt on today<br/>';
echo 'I have a $color shirt on today<br/>';

Output:

I have a red shirt on today
I have a red shirt on today
I have a $color shirt on today

Avoid Mysql Injection

$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
$passwd=mysql_real_escape_string($_POST['password']);
$passwd1=addslashes($_POST['password']);
echo $passwd."<br />";
echo $passwd1."<br />";
echo ($query);

Output

\' OR \'\'=\'
\' OR \'\'=\'
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

This would allow anyone to log in without a valid password.

JavaScript

Closure.

<script>
function say667() {
  // Local variable that ends up within closure
  var num = 666;
  
  //var sayAlert = function() { alert(num); }
  return function() { num++; alert(num); };
}

var sayNumba = say667();
sayNumba();
sayNumba();
</script>

The example will keep var num in the memory. alert 667 and 668 on each call;

Swap 2 numbers in one line

//swap
$a=10;
$b=20;
$a=$a+$b-($b=$a);
echo $a." and ". $b."\n";
// output 20 and 10
$a^=$b^=$a^=$b; //This has a bug. You cannot do things like this $a^=$a^=$a^=$a
echo $a." and ". $b;
//output 10 and 20