Interview Questions
From Hawk Wiki
Contents
Some Translation
n! Multiplicative
Object-oriented programming
Check here Interview_Questions(OOP)
Algorithm Interview Problems
Algorithm Problems
All about Binary search tree
All about Linked List
Regular Expression
http://www.zytrax.com/tech/web/regex.htm
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