Skip to main content

Command Palette

Search for a command to run...

Primitive Type සහ Reference Type කියන්නේ මොනවද?

Updated
3 min read
Primitive Type සහ Reference Type කියන්නේ මොනවද?
H

Hi, I’m Harsha Fernando. I love coding, learning new tech, and sharing knowledge in Sinhala. I write about programming, web development, and real-world projects.

Programming language වල Data Store කරන විදි දෙකක් තියෙනවා:

  1. Primitive Types

  2. Reference Types (Non-Primitive Types)

මේ දෙක අතර මූලික වෙනස තියෙන්නේ Memory එකේ Data තියෙ​න විදිහ.


Primitive Types කියන්නේ මොනවද?

Primitive type එකක් කියන්නේ simple values අ​පි direct store කරන data type එකක්.

  • Value එකම memory එකේ store කරන​වා

  • Address එකක් වෙනම handle කරන්නෙ නෑ

  • Fast

  • Fixed size

Java වල Primitive Types

TypeUse කරන දෙය
intපූර්ණ සංඛ්‍යා
doubleDecimal සංඛ්‍යා
floatDecimal
charඑක අකුරක්
booleantrue / false
byte, short, longවෙනත් සංඛ්‍යා types

Memory Concept (Primitive)

int x = 10;

Memory එකේ:

x → 10

Value එක direct තියෙන්නේ x variable එක ඇතුළේ.


Code Example

int a = 5;
int b = a;

b = 20;

System.out.println(a); // 5
System.out.println(b); // 20

🔎 ඇයි a change වෙලා නැත්තේ?

👉 b = a කියද්දී value copy වෙනවා, ඒ කියන්නෙ a ගේ value එක bcopy වෙන​වා තවත් කිව්වොත් මේකට අනුව b = 5 යි.
👉 a සහ b දෙක වෙන වෙනම memory locations වල තියෙන්නේ ඒකයි b වෙනස් උනත් a වෙනස් උනේ නැත්තේ.

Reference Types කියන්නේ මොනවද?

Reference type එකක් කියන්නේ actual data එක memory එකේ වෙනම තැනක (Heap) store කරලා, variable එකේ ඒ memory address එක store කර​න එක​ට.

  • Variable එකේ value එක නෙමෙයි,

  • Object එකට යන address එක තමයි store කරන්නේ.

  • Objects, Arrays, Strings — මේවා Reference Types


Memory Concept (Reference)

Person p = new Person();

Memory:

p → (address) → Person Object
  • p variable එකේ store කරලා තියෙන්නේ අපි object එක නෙමෙයි මේ තියෙන්නෙ ඒ object එකට යන reference (address) එක.

Code Example

class Person {
    String name;
}

Person p1 = new Person();
p1.name = "Kamal";

Person p2 = p1;   // reference copy

p2.name = "Nimal";

System.out.println(p1.name); // Nimal
System.out.println(p2.name); // Nimal

🔎 ඇයි දෙකම change වුණේ?

හරි දැන් මේක තමයි හොදටම තේරුම් ගන්න ඕන තැන. දැන් බලන්න ඔන්න අපි p2 එකට p1 එකේ memory address එක store කරා, ඒ කිව්වේ? ඒ කියන්නෙ දැන් 2න්නගෙම address එක එකමයි. ඉතින් ඔන්න අපි මොකක්ද කරේ, ඒ adrees එකට ගිහින් එකේ තියෙන name එක වෙනස් කරා “Kamal” තිබ්බ එක “Nimal” විදියට, ඉතින් එහෙම කරාම අපි මොන විදියට එක එක variables වලින් ගිහින් ඇහුවත් එකේ දැන් තියෙන නම “Kamal” නෙමෙයි “Nimal”. මේක මෙතනදී Primitive වල වගේ Value copy වෙලා නෑ, Reference copy වෙලා තියෙන​නේ. ​මන් හිතනවා දැන් පැහැදිලි ඇති කියලා.


Primitive vs Reference - ප්‍රදාන වෙනස්ක​ම්

FeaturePrimitive TypeReference Type
Store කරන දෙයValue එකAddress එක
Memory LocationStackHeap (object)
Copy වෙද්දීValue copyAddress copy
SpeedFastටිකක් slow
Null value❌ (default values තියෙනවා)✅ Null වෙන්න පුළුවන්
Exampleint, double, booleanString, Array, Object

Simple Real-World Example

  • Primitive = ඔයා pocket එකේ cash තියාගන්නවා

  • Reference = ඔයා bank account number එක තියාගන්නවා (money තියෙන්නේ bank එකේ)


Quick Summary

Primitive Type
\= Variable එකේම value එක තියෙනවා

Reference Type
\= Variable එකේ තියෙන්නේ value (object) එකට යන address එක


ඔයා Java backend පටන් ගන්නවන​ම් මේ concept එක හොඳට තේරුම් ගන්නම ඕන
OOP, Objects, Spring Boot ඔක්කොම මේක මත build වෙන්නේ.

More from this blog

Garbage Collector (GC) යනු කුමක්ද? – Heap Memory පිරිසිදු කරන ක්‍රියාවලිය

කලින් ලිපියේදී Heap Memory එකේ දත්ත කළමනාකරණය කිරීම developer​ට හෝ ස්වයංක්‍රීය ක්‍රියාවලියකට පැවරෙන බව සාකච්ඡා කරා. මෙම ස්වයංක්‍රීය ක්‍රියාවලිය හඳුන්වන්නේ Garbage Collector (GC) ලෙස​යි. Garbage Collector යනු, Heap Memory තුළ භාවිතයෙන් ඉවත් වූ (unused...

Jan 24, 20263 min read
Garbage Collector (GC) යනු කුමක්ද? – Heap Memory පිරිසිදු කරන ක්‍රියාවලිය

Stack vs Heap memory

පරිගණක ක්‍රමලේඛනයේදී (Computer Programming) memory කළමනාකරණය (Memory Management) ඉතා වැදගත් වේ. ඕනෑම මෘදුකාංගයක් ක්‍රියාත්මක වන විට, එයට අවශ්‍ය දත්ත ගබඩා කර තබා ගැනීමට RAM (Random Access Memory) භාවිතා කරයි. මෙම මතකය(Random Access Memory) ප්‍රධාන වශය...

Jan 24, 20263 min read
Stack vs Heap memory

What is a Protocol (ප්‍රොටෝකෝලයක්)?

සරලවම කිව්වොත්, Protocol එකක් කියන්නේ "නීති මාලාවක්" (Set of Rules). රෙස්ටුරන්ට් එකේ වේට​ර් සහ ඔයා අතර ගනුදෙනුව සාර්ථක වෙන්න නම්, දෙන්නම එකම භාෂාවක් සහ එකම ආචාර විධි (Etiquette) පිළිපදින්න ඕන. ඔයා චීන භාෂාවෙන් කතා කරලා, වේට​ර් සිංහලෙන් උත්තර දුන්නොත...

Jan 22, 20263 min read
What is a Protocol (ප්‍රොටෝකෝලයක්)?

ලෝකේ බහුලවම භාවිතා වන API styles

API එකක් කියන්නේ මොකක්ද කියලා ඔයා දැන් දන්න​වා, හැබැයි කලින් Article එකේ මම කිව්​වා වගේ ලොකේ භාවි​තා වන විවිධ API styles තියෙනවා ඉතින් අද අපි බලමු ඒ මොනවද, ඒවගේ වෙනස්කම් මොනවද කියලා. ඉදිරියට යන්න කලින් පොඩි පැහැදිලි කිරීමක්:මේ ලිපිය පුරාවටම අපි උදාහර...

Jan 22, 20264 min read
ලෝකේ බහුලවම භාවිතා වන API styles
K

KodeXEdu

6 posts

We simplify complex programming concepts in Sinhala for beginners.