|
|
(11 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| ==Some Translation== | | ==Some Translation== |
− | n! Multiplicative | + | n! Factorial |
| + | |
| ==Object-oriented programming== | | ==Object-oriented programming== |
| Check here [[Interview_Questions(OOP)]] | | Check here [[Interview_Questions(OOP)]] |
Line 6: |
Line 7: |
| [[C++ interview]] | | [[C++ interview]] |
| ==Javascript/Jquery== | | ==Javascript/Jquery== |
− | [[AJAX&Jquery]] | + | [[AJAX&Jquery]]<br> |
| + | [http://{{SERVERNAME}}/downloads/designpattern/ Design Pattern] |
| | | |
| ==Algorithm Interview Problems== | | ==Algorithm Interview Problems== |
| [[Algorithm Problems]]<br> | | [[Algorithm Problems]]<br> |
| + | ==Data Structure== |
| [[All about Binary search tree]]<br> | | [[All about Binary search tree]]<br> |
| [[All about Linked List]]<br> | | [[All about Linked List]]<br> |
− | [[Heap & Heap Sort]] | + | [[Heap & Heap Sort]]<br> |
| + | [[TRIE]]<br> |
| + | [[Algorithm Sorting]]<br> |
| | | |
| ==Regular Expression == | | ==Regular Expression == |
Line 18: |
Line 23: |
| | | |
| ==PHP== | | ==PHP== |
− | ===abstract class===
| + | [[PHP interview]] |
− | Can not be Instantiable.(cannot become instant. Can only be inherited)<br>
| + | ==Java== |
− | <pre>
| + | [[Java interview]] |
− | abstract class Fruit {
| + | ==Python== |
− | private $color;
| + | [[Python interview]] |
− | | + | |
− | abstract public function eat()
| + | |
− | | + | |
− | public function setColor($c) {
| + | |
− | $this->color = $c;
| + | |
− | }
| + | |
− | }
| + | |
− | </pre>
| + | |
− | | + | |
− | <b>Difference between Abstract Class and Interface</b><br>
| + | |
− | Abstract Classes<br>
| + | |
− | | + | |
− | An abstract class can provide some functionality and leave the rest for derived class<br>
| + | |
− | The derived class may or may not override the concrete functions defined in base class<br>
| + | |
− | The child class extended from an abstract class should logically be related<br><br>
| + | |
− | Interface<br>
| + | |
− | | + | |
− | An interface cannot contain any functionality. It only contains definitions of the methods<br>
| + | |
− | The derived class must provide code for all the methods defined in the interface<br>
| + | |
− | Completely different and non-related classes can be logically be grouped together using an interface<br>
| + | |
− | | + | |
− | ===Single or Double Quotes?===
| + | |
− | <pre>
| + | |
− | //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/>';
| + | |
− | </pre>
| + | |
− | Output:
| + | |
− | <pre>
| + | |
− | I have a red shirt on today
| + | |
− | I have a red shirt on today
| + | |
− | I have a $color shirt on today
| + | |
− | </pre>
| + | |
− | ===Avoid Mysql Injection===
| + | |
− | <pre class="php">
| + | |
− | $_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);
| + | |
− | </pre>
| + | |
− | Output
| + | |
− | <pre>
| + | |
− | \' OR \'\'=\'
| + | |
− | \' OR \'\'=\'
| + | |
− | SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
| + | |
− | </pre>
| + | |
− | This would allow anyone to log in without a valid password.
| + | |
− | | + | |
− | ===Static method===
| + | |
− | Declaring class properties or methods as static makes them accessible without needing an instantiation of the class.
| + | |
− | <pre>
| + | |
− | <?php
| + | |
− | class Foo
| + | |
− | {
| + | |
− | public static $my_static = 'foo';
| + | |
− | | + | |
− | public function staticValue() {
| + | |
− | return self::$my_static;
| + | |
− | }
| + | |
− | }
| + | |
− | | + | |
− | class Bar extends Foo
| + | |
− | {
| + | |
− | public function fooStatic() {
| + | |
− | return parent::$my_static;
| + | |
− | }
| + | |
− | }
| + | |
− | | + | |
− | | + | |
− | print Foo::$my_static . "\n";
| + | |
− | | + | |
− | $foo = new Foo();
| + | |
− | print $foo->staticValue() . "\n";
| + | |
− | print $foo->my_static . "\n"; // Undefined "Property" my_static
| + | |
− | print $foo::$my_static . "\n";
| + | |
− | $classname = 'Foo';
| + | |
− | print $classname::$my_static . "\n"; // As of PHP 5.3.0
| + | |
− | | + | |
− | print Bar::$my_static . "\n";
| + | |
− | $bar = new Bar();
| + | |
− | print $bar->fooStatic() . "\n";
| + | |
− | </pre>
| + | |
− | | + | |
− | ==Swap 2 numbers in one line==
| + | |
− | <pre>
| + | |
− | //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
| + | |
− | </pre>
| + | |
− | ==Calculate degree between hour and minute hand==
| + | |
− | <pre>
| + | |
− | <?php
| + | |
− | $time=array();
| + | |
− | $time['h']=12;
| + | |
− | $time['m']=15;
| + | |
− | $time['s']=30;
| + | |
− | function clockDegree($time){
| + | |
− | $mPercent=((float)$time['m']+((float)$time['s']/60.0))/60.0;
| + | |
− | $mDegree=$mPercent*360;
| + | |
− | $hdegree=((int)$time['h']%12+(float)$mPercent)/12.0*360;
| + | |
− | echo abs($mDegree-$hdegree);
| + | |
− | }
| + | |
− | clockDegree($time);
| + | |
− | </pre>
| + | |