Tuesday, January 31, 2017

ரேப்பர் கிளாஸ் (wrpper class) –ஜாவா




                                                                                                             
ரேப்பர் கிளாஸ் அறிமுகம்

ஜாவாவில் பொதுவாக primitive data types என்பது(உதாரணமாக int,float,double போன்றவை) value type ஆகும்.இவற்றை value ஆக மட்டுமே நம்மால் அனுக முடியும்.சில சமயங்களில் இந்த value type ஆனது ஆப்ஜெக்டாக தேவைப்படலாம்.உதாரணமாக ஒரு value type வேரியபிளை ஒரு மெத்தடிற்கு reference ஆக அனுப்ப முடியாது.இதனை ஜாவா ரேப்பர் கிளாஸ்(wrapper classes )என்கின்ற லைப்ரரி கிளாஸஸ் மூலம் ஆப்ஜெக்ட் ஆக மாற்றலாம்.இந்த லைப்ரரி கிளாஸஸ் java.lang என்கின்ற பேக்கேஜில் உள்ளது.

டேட்டா டைப்பும் அதற்கான ரேப்பர் கிளாஸஸும் கீழே பட்டியிடப்பட்டுள்ளது.

Data type
Wrapper class
boolean
Boolean
byte
Byte
int
Integer
float
Float
char
Character
short
Short
long
Long
double
Double

செயல்பாடு
ஒவ்வொரு ரேப்பர் கிளாஸின் பெயரும் capital எழுத்தில் ஆரம்பித்திருப்பதை கவனிக்கவும்

ஆப்ஜெக்டாக மாற்றுதல்:

Byte a=new Byte(10)

இங்கு 10 என்கின்ற byte மதிப்பானது ஆப்ஜெக்ட் ஆக மாற்றப்பட்டுள்ளது

மேலும் சில உதாரணங்கள்



Integer i=new Integer(100)

double d1=12.0;

Double d2=new Double(d1)

இங்கு I,d2 போன்றவை ஆப்ஜெக்ட் ஆகும்.

ரேப்பர் கிளாஸ் ஆனது ப்ரைமரி டேட்டா டைப்பிற்கும் String டைப்பிற்கும் இடையே ஒன்றுக்கொன்று இனம் மாற்றிக் கொள்வதற்கு பயன்படுகின்றது.மேலும் ஒவ்வொரு ரேப்பர் கிளாஸும் ஆப்ஜெக்ட் இனத்திலிருந்து primitive data type ஆக மாற்றுவதற்கான மெத்தடையும் சேர்ந்தே வழங்குகின்றது.

சான்று:

Double d1=new Double(12.0);

double d2=d1.doubleValue();

இங்கு d1 என்கின்ற ரெஃபரன்ஸ் (object) உருவாக்கப்பட்டு பின் d2 என்கின்ற double மதிப்பாக மாற்றப்பட்டுள்ளது.

ரேப்பர் கிளாஸ் உபயோகப்படுத்துவற்கானங்கள்;
Ø  String இனத்திலிருந்து int போன்ற மதிப்பினங்களாக மாற்றுதல்

Ø  ஆப்ஜெக்டில் primitive மதிப்பை இருத்துதல்

கீழே உள்ள உதாரணங்களில் எவ்வாறு String இனத்திலிருந்து இன்ட் மற்றும் டபிள் (double) இனத்திற்கு மாற்றுவது என காட்டப்பட்டுள்ளது

String str1=”10”;

Int a=Integer.parseInt(str1);

String str2=”15.0”;

double d=Double.parseDouble(str2);

கீழே உள்ள உதாரணங்களில் எவ்வாறு primitive type ஆனதை String ஆக மாற்றுவது எனக்காட்டப்பட்டுள்ளது.

Int a=10;

String sa=Integer.toString(a);

double d=15.4;

String sd=Double.toString();

Autoboxing மற்றும் Auto-unboxing

Jdk 5 ஆனது Autoboxing மற்றும் Autounboxing என்னும் இரு கருத்துகளை அறிமுகப்படுத்தியது.அதாவது ஒரு primitive டைப் வேரியபிளானது explicit ஆக ஆப்ஜெக்ட் மாற்றப்பட வேண்டியதில்லை.ஒரு ஆப்ஜெக்டிற்கு primitive டைப் வேரியபிள் Assign செய்யப்படும் போது தானாகவே  ஆப்ஜெக்டாக மாற்றப்படும்.இது autoboxing எனப்படும் அதே போல் ஒரு ஆப்ஜெக்ட் ஆனது ஒரு primitive type வேரியபிளுக்கு assign செய்யும் பொழுது தானாகவே value type ஆக மாறும். இது auto-unboxing எனப்படும்.

சான்று நிரல்

 class AutoBox

 {



   public static void main(String args[])

      {

      Integer iOb = 100; // autobox an int



       int i = iOb; // auto-unbox



       System.out.println(i + " " + iOb);

      }

   }

Output:

100 100

நிரல் விளக்கம்:

100 எனும் மதிப்பு iob என்கின்ற Integer ஆப்ஜெக்டிற்கு மதிப்பிருத்தும் போது தானாகவே ஆப்ஜெக்ட் ஆக(boxing) மாறுகின்றது. new ஆபரேட்டர் உபயோகப்படுத்தபடவில்லை என்பதை கவனிக்கவும். பின்பு அந்த ஆப்ஜெக்ட் i என்கின்ற int என்கின்ற primitive type வேரியபிளுக்கு மதிப்பிருத்தும் போது தானாகவே (unboxing) primitive type மாறுகின்றது.
please also visit
http://karthikeyantutorials.com/

                                                               முற்றும்.
                                                               முத்து கார்த்திகேயன், மதுரை



ads Udanz

Monday, January 30, 2017

குக்கீஸ் மற்றும் செஸன்ஸ்-php




                                                                                                         
இன்டர்நெட் ஆனது request/response என்கின்ற கருத்துருவின் படி இயங்குகின்றது . அதாவது browser ஆனது கோரிக்கையை(request) வெப் சர்வருக்கு அனுப்பும்.வெப் சர்வரானது அதை இயக்கி அதற்கான பதிலை திருப்பி அனுப்பும். ஆனால் வெப் சர்வரானது அத்துடன் என்ன அனுப்பினோம் என்பதை மறந்து விடுகின்றது.

உதாரணத்திற்கு ஒரு ஆன்லைன் பர்சேஸ் வெப் சைட்டை எடுத்துக்கொள்வோம்.நாம் ஒன்றுக்கும் மேற்பட்ட பொருள்களை வாங்கும் போது ஒவ்வொன்றாக க்ளிக் செய்து வாங்குவோம்..ஆனால் மொத்தமாக நினைவில் வைத்துக்கொள்ள முடியாததன் காரணமாக அதற்கான ஒற்றை ரசீதை சர்வரால் உருவாக்க முடியாது.

இதற்காக சர்வரானது ஒவ்வொரு கோரிக்கையையும் பதிந்து வைத்துக்கொள்கின்றது.ஒவ்வொரு கோரிக்கையும் ஒரே ஐபி முகவரியில் இருந்து வருகின்றது என்பதை குறிப்பிடும் வகையில் சர்வரானது நமது கணினியில் ஒரு சிறு தகவலை சேமிக்கின்றது.அதன் மூலம் நாம் மற்றொரு முறை அந்த வெப் தளத்திற்கு வருகை தரும் போது இந்த தகவலை பெற்றுக் கொண்டு அதன் மூலம் இணைய பக்கத்தை மாற்றி அமைக்கின்றது.

இப்படியாக சர்வர் நம் கணினியில் பதிந்து வைக்கும் சிறு தகவல் தான் குக்கீஸ் எனப்படிகின்றது.

ஒரு குக்கி ஆனது பின் வரும் தகவல்களை கொண்டிருக்கும்.

1.   குக்கீயின் பெயர்

2.   அதன் மதிப்பு.

3.   அதன் expiration தேதி.

4.   அதன் valid path

5.   எந்த டொமைனிற்கானது

6.   செக்யூர் இணைப்பிற்கான தகவல்

இந்த தகவல்களின் படி பெயர் மற்றும் மதிப்பு மற்றும் கட்டாயம் கொடுக்கப்பட வேண்டிய தகவல்கள், மற்றவை optional.

குக்கீஸின் வகைகள்

1.   permanent/persistent cookies

2.   session/transient cookies.

permanent/persistent cookies


         இந்த வகையான குக்கீஸ் ஆனது நிலையான சேமிப்பை நமது கணினியில் ஏற்படுத்தும்.பிரவுசரை மூடினாலும் இது delete ஆகாது.இது குறிப்பிட்ட இணைய தளத்தில் நமது surfing behavior போன்ற தகவல்களை தெரிந்து கொள்ள உபயோக்கின்றார்கள்.

 session/transient cookies


இந்த வகையான குக்கீஸ் ஆனது நமது கணினியில் தாற்காலிமாக தகவல்களை சேமிக்கின்றது.பிரவுசரை மூடும் போது இது தானியியங்கி முறையில் தானாக delete ஆகும்.
குக்கீஸ் உபயோகப்படுத்தப்படும் தளங்கள்.
1.   ஆன்லைன் வர்த்தக தளங்கள்

2.   ஆன்லைன் பேங்கிங்

3.   வெப்சைட் ட்ராக்கிங்

Syntax:

Setcookie(‘cookiename’,’value’,’expirytime’,’path’,’domain’,’secureconnection’)

இவற்றில் cookiename மற்றும் value மட்டுமே கட்டாயம். மற்றவை optional

சான்று நிரல்:

<?php

$subject=”php”;

setcookie(“MySubject”,$subject,time()+3600);

echo “the cookie ‘MySubject’ contains”;

echo $_COOKIE[“MySubject”];

?>

Output:

the cookie ‘MySubject’ contains php

குக்கீஸை  அழித்தல்:

இதற்கான இரண்டு படிகள்:

1.   குக்கீயின் மதிப்பை null ஆக்குதல்

2.   குக்கீயின் expiration date ஆனதை past date ஆக மாறுதல்.

சான்று நிரல்

Setcookie(“MySubject”,” “,time()-3600);

Sessions:

இது ஒரு குறிப்பிட பட்ட பக்கத்தில் சேமிக்கப்பட்ட தகவல்களை மற்ற பக்கங்களில் பெற்றுக் கொள்ள பயன்படுகின்றது.இந்த தகவலானது பிரவுசரை  மூடும் வரையில் மட்டுமே நிலைத்திருக்கும்

Syntax:

$_SESSION["varname"] = <value>

சான்று நிரல்-1

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
$_SESSION["firstname"] = "muthu";
$_SESSION["lastname"] = "karthikeyan";
echo "Session variables are set.";
?>

</body>
</html>

Output:

Session variables are set

நிரலின் விளக்கம்:


மேலே உள்ள நிரலானது session_start()  என்கின்ற function உடன் ஆரம்பிக்கின்றது. Firstname,lastname என்கின்ற இரண்டு session variables உருவாக்குகின்றது.

சான்று நிரல்-2


<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
echo "First name  is " . $_SESSION["firstname"] . ".<br>";
echo "Last name  is " . $_SESSION["lastname"] . ".";
?>

</body>
</html>

Output:

First name  is  muthu.

Last name  is karthikeyan

நிரலின் விளக்கம்:

மேலே உள்ள நிரலில் முதல் உள்ள நிரலின் சேமிக்கப்பட்ட இரண்டு session variables மதிப்பு இங்கு வெளியிடப்பட்டிருக்கின்றது.இங்கும் session_start() என்கின்ற function நிரலின் முதலாவதாக வந்திருப்பதை கவனிக்கவும்.

குக்கீஸ் மற்றும் செஸன்ஸ் வேறுபாடுகள்



குக்கீஸ்
செஸன்ஸ்
1.கிளையண்ட் கணினியில் சேமிக்கப்படுகின்றது.
1.சர்வரில் சேமிக்கப்படுகின்றது.
2.பாதுகாப்பற்றது
2.பாதுகாப்ப்பானது
3.பயனாளர் நினைத்தால் இந்த பயன்பாட்டை off செய்யலாம்
3. பயனாளர் நினைத்தால் இந்த பயன்பாட்டை off செய்ய இயலாது.

please also visit
http://karthikeyantutorials.com/

                                                   முத்து கார்த்திகேயன்  ,மதுரை



ads Udanz

Sunday, January 29, 2017

கலெக்சன்ஸ் சிஷார்ப்



நிரலாக்க மொழிகளை பொருத்தவரை கலெக்சன்ஸ் என்பது ஒன்றுக்கு மேற்பட்ட

டேட்டாக்களின் தொகுப்பாகும்.அர்ரே என்பது simple ஆன டேட்டா தொகுப்பாகும்.


 அர்ரே நிறைகள்:
1.    
எந்த அர்ரேயின் உறுப்புகளையும் random access முறையில் எளிதாக அணுகலாம்.

 அர்ரேயில் உள்ள குறைகள்:

1. இவற்றில் எல்லா டேட்டாக்களும் ஓரே டேட்டா டைப் ஆக இருக்க வேண்டும்.


2. இவை நிலையான static collection ஆகும்.அதாவது இயக்க நேரத்தில் இதன் size ஆனதை 

மாற்ற முடியாது.(எனினும் தற்போதைய விசுவல் ஸ்டுடியோ வெர்ஷன்களில் Array.Resize 

என்கின்ற லைப்ரரி மெத்தட் மூலம் இந்த குறை நிவர்த்தி செய்யப்பட்டுள்ளது)



     அர்ரேயின் இந்த குறைகளைப்போக்கவே மற்ற கலெக்சன்ஸ் ஆன  LinkedList,ArrayList 

போன்ற கலெக்சன்ஸ் போன்றவை சி ஷார்ப்பில் அறிமுகப்படுத்தப்பட்டன.


 பொதுவாக கலெக்சன்ஸ் System.Collections மற்றும் System.collection.Generic நேம்ஸ்பேசில் 

இருந்து பெறப்படுகின்றது.இந்த கட்டுரையில் generic அல்லாத மற்ற Syatem.Collections என்ற 

நேம்ஸ்பேசிலிருந்து பெறப்படும் கலெக்சன்ஸ்  பற்றி மட்டும் பார்ப்போம்.





அவையாவன:

1.   Stack

2.   Queue

3.   ArrayList

4.   SortedList

5.   Hashtable

இந்த கலெக்சன்ஸ்  அணைத்துமே IEnumerable என்கின்ற லைப்ரரி இண்டர்ஃபேசைimplement செய்கின்றன.

ஸ்டேக்(stack):


ஸ்டேக் என்பது ஒன்றன் மேல் ஒன்றாய் அடுக்கி வைக்கப்படும் உறுப்புகளை 

கொண்டது.இதன் உறுப்புகள் last in first out முறையில் பெறப்படுகின்றன.இதன் ஆரம்ப 

நிலை capacity 10 ஆகும்(capacity என்பது அந்த கலெக்சனில் எத்தனை உறுப்புகள் 

சேமிக்கப் படலாம் என்பதை குறிக்கின்றன.)ஸ்டேக்குகள் சிஸ்டம் சாப்ட்வேர்,கம்பைலர் 

,செயற்கை நுண்ணறிவு போன்ற நிரல்களில் பயன்படுத்தப்படுகின்றன.


 ஸ்டேக் பின் வருமாறு அறிவிக்கப்படுகின்றது.


 Stack <stack-name>=new Stack();




புதிதாய் ஒரு உறுப்பை சேர்க்க Push என்கின்ற library method பயன்படுகின்றது. Pop 

என்கின்ற மெத்தட் கடைசியாக add செய்யப்பட்ட உறுப்பை நீக்கவும் அதை 

காண்பிக்கவும் பயன்படுகின்றது.Peek என்கின்ற மெத்தட் கடைசியாக add செய்யப்பட்ட 

உறுப்பை காண்பிக்க பயன்படுகின்றது. Count என்கின்ற property மொத்தம் எத்தனை 

உறுப்புகள் உள்ளது என்பதை காண்பிக்க பயன்படுகின்றது.








using System;


using System.Collections;


namespace ConsoleApplication5

{

    class MyProg

    {

        static void Main(string[] args)


        {

            Stack lang = new Stack();


            //insert the following elements



            lang.Push("c#");

            lang.Push("java");

            lang.Push("php");



            Console.WriteLine("display all elements");



            foreach (object i in lang)

            {

                Console.WriteLine("{0}", i);

            }



            Console.WriteLine("remove element php");

           

            lang.Pop();



            Console.WriteLine("now displays top element");

          

            Console.WriteLine ("last element is {0}",lang.Peek());



            Console.ReadLine();



        }

    }

}



Output:

display all elements

php

java

c#

remove element php

now displays top element

last element is java






மேலே உள்ள நிரலில் எல்லா உறுப்புகளையும் display செய்யும் பொழுது ரிவெர்ஸ் ஆர்டரில் உள்ளதை நோக்கவும்.காரணம் ஸ்டேக்கில் கடைசியாக சேர்க்கப்பட்டதே முதலில் அணுக முடியும்.


பின் வரும் சான்று படி ஒரு அர்ரேயையும் ஸ்டேக் ஆக மாற்றலாம்.


String fruits={“apple”,”orange”,”banana”};

Stack myStack=new Stack(fruits);

கியூ(queue)

 இதுவும் ஸ்டேக் போன்று தான் ஆனால் இது first in first out முறையில் உறுப்புகள் 
அணுகப்படுகின்றது.இது மல்டி பிராசசிங் ,மல்டி டாஸ்க்கிங்,,நெட்வொர்க் பிரிண்டிங்
 

போன்ற நிரல்களில் பயன்படுகின்றது. இதன்ஆரம்ப நிலை capacity 32 ஆகும். Enqueue 

என்கின்ற லைப்ரரி மெத்தட் புதிதாக உறுப்புகளை சேர்க்க பயன்படுகின்றது. Dequeue 

என்கின்ற லைப்ரரி மெத்தட் உறுப்புகளை நீக்க பயன்படுகின்றது.பீக் என்பது முதலில் உள்ள

 உறுப்பை காண்பிக்கப் பயன்படுகின்றது.

Queue பின் வருமாறு அறிவிக்கப்படுகின்றது.


Queue <queue name> = new Queue();



சான்று நிரல்

using System;

using System.Collections;



namespace ConsoleApplication6

{

    class Program

    {

        static void Main(string[] args)

        {

            Queue lang = new Queue();

            lang.Enqueue("c#");

            lang.Enqueue("java");

            lang.Enqueue("php");



            Console.WriteLine("total no of elements is {0}", lang.Count);



            Console.WriteLine("now displaying all the elements");



            foreach (object i in lang)

            {

                Console.WriteLine("{0}", i);

            }

            lang.Dequeue();



            Console.WriteLine("now displaying remaining elements");



            foreach (object i in lang)

            {

                Console.WriteLine("{0}", i);

            }

            Console.ReadLine();

        }

    }

}


Output:

Total no of elements is 3

Now displaying all the elements

C#

Java

php

Now displaying remaining elements

Java

php



அர்ரே லிஸ்ட்:


இது டைனமிக் அர்ரே ஆகும்.இயக்க நேரத்தில் புதிதாக உறுப்புகளை சேர்க்கவும் நீக்கவும் 

முடியும்.ArrayList.Sort என்கின்ற மெத்தட் உறுப்புகளை sort செய்யலாம்.இது பின் வருமாறு 

அறிவிக்கப் படுகின்றது.



ArrayList <ArrayList-name>=new ArrayList();




Add மெத்தட் மூலம் புதிதாய் உறுப்புகளை சேர்க்கலாம்.Remove மெத்தட் மூலம் 

உறுப்புகளை நீக்கலாம் .RemoveAt மெத்தட் மூலம் குறிப்பிட்ட இண்டெக்ஸில் உள்ள 

உறுப்புகளை நீக்கலாம்.Clear மெத்தட் மூலம் எல்லா உறுப்புகளையும் நீக்கலாம். Reverse 
மெத்தட் மூலம் ரிவர்ஸ் ஆர்டரில் சார்ட் செய்யலாம்.

சான்று நிரல்

using System;

using System.Collections;



namespace ConsoleApplication2

{

    class Program

    {

        static void Main(string[] args)

        {

             int i = 0;



            ArrayList fruits = new ArrayList();



            fruits.Add("orange");



            fruits.Add("Apple");



            fruits.Add("banana");



            fruits.Add(41);



          



            Console .WriteLine ("Shows Added Items");



            for (i = 0; i <fruits .Count ;i++)



            {



                Console .WriteLine (fruits[i].ToString());



            }



            //insert an item



            fruits.Insert(3, "Grapes");





            //remove an item



            fruits.Remove(41);



            //remove item from a specified index



            //sort itemms in an arraylist



            fruits.Sort();



            fruits.RemoveAt(3);



           Console .WriteLine ("Shows final Items the ArrayList");



            for (i = 0; i < fruits.Count; i++)



            {



               Console .WriteLine (fruits[i].ToString());



            }

            Console.ReadLine();

        }

    }

}



வெளியீடு:

Shows Added Items

Orange

Apple

banana

41

Shows final Items the ArrayList

Apple

Banana

Grapes

Hash table:

இது key value pair முறை கலெக்சன் ஆகும்.இதன் உறுப்புகள் அதன் key கொண்டு அணுகப்படுகின்றது. இதன் ஆரம்ப நிலை capacity 0 ஆகும் . உறுப்புகளை சேர்க்கும் பொழுது capacity தானாகவே கூடுகின்றது.இது பின் வருமாறு அறிவிக்கப்படுகின்றது.

Hashtable <hashtable-name>=new Hashtable();



இது key-ன் hashcode ஆனதை அடிப்படையாக கொண்டு சார்ட் செய்யபடுகின்றது.

சான்று நிரல்



using System;

using System.Collections;

using System.Linq;

using System.Text;



namespace ConsoleApplication7

{

    class Program

    {

        static void Main(string[] args)

        {

            Hashtable ht = new Hashtable();



            ht.Add("001", "chennai");

            ht.Add("002", "madurai");

            ht.Add("003", "trichy");

            ICollection key = ht.Keys;



            foreach (string k in key)

            {

                Console.WriteLine(k + ": " + ht[k]);

            }



            Console.ReadKey();

        }

    }

}





Output::

002:Madurai

001:Chennai

003:trichy



Sorted list:

இது key value pair முறை கலெக்சன் ஆகும். இதன் உறுப்புகள் இதன் key மூலம் தானாகவே சார்ட் செய்யப்படுகின்றன. Sortedlist என்பது அர்ரே மற்றும் ஹேஷ்டேபிள் ஆகியவற்றின் combination ஆகும்.இதன் உறுப்புகளை இண்டெக்ஸ் மூலம் அணுகினால் இது அர்ரேலிஸ்ட் ஆகவும்  key   கொண்டு அணுகினால் இது Hashtable ஆகவும் செயல்படுகின்றது. இதன் default capacity 16 ஆகும்.இது பின் வருமாறு அறிவிக்கப்படுகின்றது.



SortedList <Sortedlist-name>=new SortedList();



சான்று நிரல்:



using System;

using System.Collections;



namespace ConsoleApplication7

{

    class Program

    {

        static void Main(string[] args)

        {

            SortedList sl = new SortedList();



            sl.Add("001", "chennai");

            sl.Add("002", "madurai");

            sl.Add("003", "trichy");

            ICollection key = sl.Keys;



            foreach (string k in key)

            {

                Console.WriteLine(k + ": " + sl[k]);

            }



            Console.ReadKey();

        }

    }

}



Output:

001:Chennai

002:Madurai

003:trichy
                                       
please also visit:
http://karthikeyantutorials.com/


                               -முத்து கார்த்திகேயன்,மதுரை
ads Udanz