جی (زبان برنامه‌نویسی)
انواع داده و ساختمان‌ها

جی از سه نوع داده‌ای ساده پشتیبانی می‌کند:
Numeric عددی
Literal (Character) :حروف (کاراکتر)
Boxed: جعبه
که اولین آن‌ها Numeric بیشترین تنوع را دارد.
یکی از انواع داده‌ای عددی در جی، بیت (bit) است. دو مقدار برای بیت وجود دارد: صفر و یک. به علاوه بیت‌ها می‌توانند در لیست‌ها شکل بگیرند. برای مثال ۱ ۰ ۱ ۰ ۱ ۱ ۰ ۰ یک لیست از هشت بیت است؛ و قواعد جداکننده جی که با آن‌ها مانند یک کلمه ساده رفتار می‌کند، از لیست‌هایی با طول دلخواه پشتیبانی می‌شود.
افزون بر این‌ها جی ازهمه عملیات دودویی معمول روی این لیست‌ها، مثل AND, OR, XOR، چرخش، شیفت، NOT و غیره پشتیبانی می‌کند.
برای مثال:
1 0 0 1 0 0 1 0 +. 0 1 0 1 1 0 1 0 NB. or
۱ ۱ ۰ ۱ ۱ ۰ ۱ ۰
3 |. 1 0 1 1 0 0 1 1 1 1 1 NB. rotate
۱ ۰ ۰ ۱ ۱ ۱ ۱ ۱ ۱ ۰ ۱
توجه کنید که جی همچنین از آرایه‌های مراتب بالاتر بیت‌ها نیز پشتیبانی می‌کند.
آن‌ها می‌توانند به صورت آرایه‌های دو بعدی، سه بعدی یا چند بعدی شکل بگیرند.
عملیات فوق روی این آرایه‌ها نیز به خوبی کار می‌کند.
انواع دیگر داده عددی شامل اعداد صحیح، اعداد اعشاری، اعداد مختلط، اعداد صحیح بزرگ و کسر گویا است. مانند بیت‌ها این انواع نیز می‌توانند در لیست‌ها یا آرایه‌های چند بعدی دلخواه قرار بگیرند.
لیست بیت‌ها می‌تواند با استفاده از # تبدیل یه یک عدد صحیح شوند. اعداد صحیح نیز می‌توانند با استفاده از #:verb به لیست‌هایی از بیت‌ها تبدیل شوند.
جی همچنین از نوع Literal (حروف) پشتیبانی می‌کنند. حروف در کوتیشن قرار می‌گیرند. برای مثال: 'a' یا 'b'. لیست حروف نیز همچنین با استفاده از قرار دادن چند حروف در کوتیشن مانند 'abcdefg' پشتیبانی می‌شود. عمدتاً یک تک حرف هشت بیت فضا نیاز دارد (اسکی).
اما جی همچنین از دیگر حروف (یونی کد) پشتیبانی می‌کند.
عملیات عددی و منطقی روی حروف تعریف نشده‌اند، اما عملیات‌های مجموعه‌ای (مانند چرخش) تعریف شده‌اند.
آخرین نوع داده‌ای Boxed (جعبه) است. اغلب داده به وسیله یک عملگر> (بدون هیچ آرگومان سمت چپ) در یک Box قرار می‌گیرد. (اگر سمت چپ عملگر> آرگومانی وجود داشته باشد، یک عملگر «کوچک‌تر از» خواهد بود ) این مشابه عملگر& در سی (بدون هیچ آرگومان سمت چپ) می‌شود. با این حال نتیجه & در سی معنای آدرس دارد، نتیجه> در جی، معنای ارزش می‌دهد.
از دیدگاه یک برنامه‌نویس جی ،> داده را در یک جعبه قرار می‌دهد و به برنامه‌نویس اجازه می‌دهد تا با یک آرایه از جعبه‌ها کار کند. (می‌توان آن را با جعبه‌های دیگر سر هم کرد، و/ یا نسخه‌های دیگر از روی یک جعبه ساخته شود ). داده‌های نمایش داده شده در جعبه به وسیله جی به گونه‌ای مشابه مدل‌هایی که برخی از مفسرهای SQL جدول نتایج عبارت انتخاب را می‌چیند، است.
<۱ ۰ ۰ ۱ ۰
+----+
|۱ ۰ ۰ ۱ ۰|
+----+
تنها نوع مجموعه ارائه شده در جی آرایه چند بعدی است. بسیاری از الگوریتم‌ها می‌توانند با استفاده از عملگرهایی روی این آرایه‌ها تشریح شوند.
آرایه‌های جی نوع‌های همگن هستند. برای مثال لیست ۱۲۳ یک لیست صحیح است. با وجود این که در حقیقت ۱، یک بیت است. در اکثر موارد این گونه مسائل وابسته به برنامه‌نویس است. فقط برخی از عملیات‌های تخصصی تفاوت در نوع را نشان می‌دهند. برای مثال با لیست ۱٫۰ ۰٫۰ ۱٫۰ ۰٫۰ توسط بیشتر عملگرها دقیقاً مشابه لیست ۱ ۰ ۱ ۰ رفتار می‌شود.
جی هم چنین از آرایه‌های عددی خلوت هنگامی که مقادیر غیر صفر و اندیس‌های آن‌ها وجود داشته باشد، پشتیبانی می‌کند. این مکانیزم مؤثر برای زمانی است که مقادیر مرتبط کمی غیر صفرند.
جی همچنین اشیاء کلاس‌ها نیز پشتیبانی می‌کند. اما این‌ها یک سری روش‌های مصنوعی هستند که نامیده می‌شود، و نوع داده‌ای نیستند. در عوض حروف بسته‌بندی شده برای اشاره به اشیاء (و کلاس‌ها) استفاده می‌شود. داده جی معنای ارزش دارد ولی اشیاء و کلاس‌ها نیازمند معنای ارجاعی هستند.
یک شبه نوع دیگر مرتبط با نام که به جای مقدار مشخص می‌شود، یک فایل نگاشت شده در حافظه است.