آموزش ️️برنامه نویسی جاوا | Java @javapro_ir Channel on Telegram

آموزش ️️برنامه نویسی جاوا | Java

@javapro_ir


🎓آکـــــــــادمی جاواپـــــــــــــــرو
آموزش پیش نیازهای برنامه نویسی
آموزش مقدماتی تا پیشرفته جاوا
آموزش Spring Boot
سفارش پروژه ، دوره و تدریس خصوصی: @rzutab
مشاهده دوره ها و ثبت نام👇
wwww.academyjavapro.com
گروه جاوا : @group_javapro

آموزش ️️برنامه نویسی جاوا | Java (Persian)

آموزش برنامه نویسی جاوا | Javann🎓آکـــــــــادمی جاواپــــــــــــــــروnnآموزش پیش نیازهای برنامه نویسیnnآموزش مقدماتی تا پیشرفته جاواnnآموزش Spring Bootnnسفارش پروژه ، دوره و تدریس خصوصی: @rzutabnnمشاهده دوره ها و ثبت نام👇nnwwww.academyjavapro.comnnگروه جاوا : @group_javapronnآیا علاقه‌مند به یادگیری برنامه نویسی جاوا هستید؟ آیا می‌خواهید از ابتدا تا پیشرفته تکنیک‌ها و اصول برنامه نویسی جاوا را فرا بگیرید؟ اگر پاسخ شما بله است، آموزش‌های آکادمی جاواپرو مناسب شماست. این آکادمی با ارائه آموزش‌های پیش نیازی و مقدماتی تا پیشرفته جاوا به شما کمک می‌کند تا مهارت لازم برای توسعه برنامه‌های جاوا را کسب کنید. علاوه بر این، شما می‌توانید پروژه‌ها و دوره‌های خصوصی را نیز سفارش دهید. برای کسب اطلاعات بیشتر و ثبت نام، به وبسایت ما مراجعه کنید و یا در گروه جاوا ما عضو شوید. اینجاست که شما می‌توانید با دیگر علاقه‌مندان به جاوا ارتباط برقرار کنید و از تجربیات آنان بهره‌مند شوید. منتظر حضور گرم شما در آموزش‌های جدید آکادمی جاواپرو هستیم.

آموزش ️️برنامه نویسی جاوا | Java

21 Nov, 17:57


modCount در‌جاوا

در جاوا، modCount یک فیلد محافظت‌شده در برخی از پیاده‌سازی‌های مجموعه‌ها (مانند ArrayList, HashSet, HashMap, و غیره) است. این فیلد برای ردیابی تغییرات ساختاری در مجموعه استفاده می‌شود. تغییرات ساختاری شامل عملیات‌هایی مانند افزودن، حذف، یا تغییر اندازه مجموعه است که ساختار داخلی مجموعه را تغییر می‌دهد.

نقش modCount
1. تشخیص تغییرات همزمان: modCount به تشخیص تغییرات همزمان مجموعه کمک می‌کند. به عنوان مثال، در هنگام پیمایش (iteration) روی یک مجموعه، اگر مجموعه به طور همزمان تغییر کند، مقدار modCount تغییر می‌کند و این تغییرات منجر به پرتاب استثنای ConcurrentModificationException می‌شود.
2. اطمینان از یکپارچگی داده‌ها: با استفاده از `modCount`، جاوا می‌تواند از یکپارچگی داده‌ها در مجموعه‌ها اطمینان حاصل کند و مانع دسترسی‌های نادرست و خطاهای همزمانی شود.

مثال
فرض کنید یک ArrayList دارید و در حین پیمایش بر روی آن، یکی دیگر از نخ‌ها عنصری را به لیست اضافه می‌کند. modCount تشخیص می‌دهد که تعداد تغییرات در لیست افزایش یافته است و یک استثنای ConcurrentModificationException پرتاب می‌کند.
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);

for (Integer number : list) {
if (number == 1) {
list.add(3);
}
}

### نحوه عملکرد modCount
- هنگامی که یک تغییر ساختاری در مجموعه رخ می‌دهد (مانند افزودن یا حذف عنصر)، مقدار modCount افزایش می‌یابد.
- در هنگام پیمایش بر روی مجموعه، مقدار modCount بررسی می‌شود و در صورت تشخیص تغییرات غیرمنتظره، استثنای ConcurrentModificationException پرتاب می‌شود.

🆔 @javapro_ir
🆔 @group_javapro

آموزش ️️برنامه نویسی جاوا | Java

21 Nov, 14:28


🔸 آشنایی با API و نحوه کار با آن در جاوا

چیست API 🔍
مخفف شده (Application Programming Interface) و واسطی است که به برنامه‌ها اجازه می‌دهد با یکدیگر ارتباط برقرار کنند. این ارتباط می‌تواند برای تبادل داده، ارسال درخواست، یا استفاده از قابلیت‌های یک برنامه دیگر باشد. به عنوان مثال:
- استفاده از نقشه گوگل در یک اپلیکیشن دیگر.
- ارسال پیامک یا ایمیل از طریق سرویس‌های آنلاین.

🔑 اجزای اصلی API
1. Request (درخواست):
اطلاعاتی که به API ارسال می‌شود (مانند پارامترها و متد).
2. Response (پاسخ):
داده‌ای که از API دریافت می‌شود.
3. HTTP Methods:
متدهایی مانند GET, POST, PUT, DELETE برای انجام عملیات مختلف.


🛠️ چگونه در جاوا با API کار کنیم؟
برای کار با API در جاوا، ابزارهای متعددی وجود دارد که از طریق آنها می‌توانید درخواست ارسال کرده و پاسخ را پردازش کنید.

1. کتابخانه‌های جاوا برای کار با API
- HttpURLConnection: کلاس داخلی جاوا برای ارسال و دریافت درخواست.
- Apache HttpClient: کتابخانه‌ای قدرتمند برای مدیریت درخواست‌ها.
- Retrofit: ابزار محبوب برای APIهای RESTful.
- Spring WebClient: مناسب برای برنامه‌های Spring.

2. نحوه استفاده از HttpURLConnection
مثال ساده‌ای از ارسال درخواست GET به یک API:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class ApiExample {
public static void main(String[] args) {
try {
String apiUrl = "https://..."; // آدرس API
URL url = new URL(apiUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");

// بررسی وضعیت پاسخ
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
System.out.println("Response: " + response.toString());
} else {
System.out.println("Error: " + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}


3. ابزارهای پیشرفته‌تر
اگر پروژه شما پیچیده‌تر است، از ابزارهایی مثل Retrofit یا Spring WebClient استفاده کنید که مدیریت درخواست‌ها را ساده‌تر می‌کنند.


💡 نکته: قبل از استفاده از یک API، باید مستندات آن را مطالعه کنید و در صورت نیاز کلید (API Key) دریافت کنید.

🆔 @javapro_ir
🆔 @group_javapro

آموزش ️️برنامه نویسی جاوا | Java

21 Nov, 07:52


آموزش ️️برنامه نویسی جاوا | Java pinned «»

آموزش ️️برنامه نویسی جاوا | Java

19 Nov, 17:33


🔸حل مسعله

در اینجا مسئله معروف "دو عدد که مجموعشان برابر یک مقدار مشخص است" (*Two Sum*) را با استفاده از زبان جاوا و آرایه‌ها بررسی می‌کنیم. این مسئله یکی از مسائل محبوب در مصاحبه‌های برنامه‌نویسی است.

📌 تعریف مسئله
به شما یک آرایه از اعداد صحیح و یک عدد هدف داده می‌شود. باید اندیس‌های دو عدد از آرایه را پیدا کنید که مجموعشان برابر عدد هدف باشد. فرض بر این است که همیشه یک جواب وجود دارد و نمی‌توان از یک عنصر دو بار استفاده کرد.

🧩 مثال ورودی و خروجی:
- ورودی:
آرایه: [2, 7, 11, 15]
هدف: 9
- خروجی: [0, 1] (زیرا `2 + 7 = 9`)


🧩 حل مسئله با جاوا
در اینجا دو روش رایج را بررسی می‌کنیم:

📌 1. روش ساده با دو حلقه تو در تو (روش با پیچیدگی \(O(n^2)\))
این روش ساده اما کند است.


public class TwoSum {
public static int[] findTwoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] == target) {
return new int[] { i, j };
}
}
}
throw new IllegalArgumentException("No two sum solution found");
}

public static void main(String[] args) {
int[] nums = {2, 7, 11, 15};
int target = 9;
int[] result = findTwoSum(nums, target);
System.out.println("Indices: [" + result[0] + ", " + result[1] + "]");
}
}


توضیحات:
1. دو حلقه تو در تو داریم:
- حلقه اول عدد اول را انتخاب می‌کند.
- حلقه دوم عدد بعدی را بررسی می‌کند.
2. اگر مجموع دو عدد برابر هدف بود، اندیس‌ها را برمی‌گرداند.
3. اگر پاسخ پیدا نشود، یک خطا اعلام می‌شود.


📌 2. روش بهینه با استفاده از نقشه هش (HashMap) (پیچیدگی \(O(n)\))
در این روش، به کمک یک HashMap مکان عناصر را ذخیره می‌کنیم تا از جستجوی اضافه جلوگیری شود.


import java.util.HashMap;

public class TwoSumOptimized {
public static int[] findTwoSum(int[] nums, int target) {
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement)) {
return new int[] { map.get(complement), i };
}
map.put(nums[i], i);
}
throw new IllegalArgumentException("No two sum solution found");
}

public static void main(String[] args) {
int[] nums = {2, 7, 11, 15};
int target = 9;
int[] result = findTwoSum(nums, target);
System.out.println("Indices: [" + result[0] + ", " + result[1] + "]");
}
}


🚀 توضیحات:
1. ایده اصلی:
- در هر مرحله بررسی می‌کنیم آیا مکمل (عدد مورد نیاز برای رسیدن به هدف) قبلاً در HashMap وجود دارد یا خیر.
- اگر وجود داشت، اندیس‌ها را برمی‌گردانیم.
- اگر وجود نداشت، عدد فعلی و اندیس آن را در HashMap ذخیره می‌کنیم.
2. این روش تنها یک بار از روی آرایه عبور می‌کند و کارآمدتر است.

نکات آموزشی
- استفاده از داده‌ساختار مناسب (مثل HashMap) می‌تواند زمان اجرای برنامه را به طور چشمگیری کاهش دهد.
- در مسائل مشابه، ابتدا پیچیدگی زمانی و سپس پیچیدگی مکانی را تحلیل کنید.
- خطایابی را جدی بگیرید؛ مثلاً اگر آرایه خالی باشد یا جواب وجود نداشته باشد، باید مدیریت کنید.

این یک تمرین عالی برای درک کارایی الگوریتم‌ها و استفاده از داده‌ساختارهای مختلف در جاوا است.

🆔 @javapro_ir
🆔 @group_javapro

آموزش ️️برنامه نویسی جاوا | Java

17 Nov, 14:56


🔸آرایه‌ها و آرایه های چند بعدی

🧩 تعریف آرایه:
آرایه در جاوا یک ساختار داده‌ای است که می‌تواند چندین مقدار از یک نوع خاص را ذخیره کند. به‌عنوان مثال، می‌توان آرایه‌ای از اعداد صحیح، کاراکترها، یا حتی اشیا تعریف کرد.

📌 نحوه تعریف آرایه:

int[] numbers; // تعریف آرایه
numbers = new int[5]; // تخصیص حافظه برای 5 عنصر

یا می‌توانیم این دو مرحله را ترکیب کنیم:

int[] numbers = new int[5];

می‌توان در زمان تعریف مقداردهی نیز کرد:

int[] numbers = {1, 2, 3, 4, 5};



🔄 توابع پرکاربرد برای آرایه‌ها:

1. طول آرایه: برای به‌دست آوردن طول آرایه از ویژگی length استفاده می‌کنیم:

System.out.println("طول آرایه: " + numbers.length);


2. مرتب‌سازی آرایه: با استفاده از کلاس Arrays در بسته java.util:

import java.util.Arrays;

int[] numbers = {5, 1, 4, 2, 3};
Arrays.sort(numbers); // مرتب‌سازی صعودی
System.out.println(Arrays.toString(numbers)); // چاپ آرایه مرتب‌شده


3. جستجو در آرایه: برای یافتن یک عنصر در آرایه:

int index = Arrays.binarySearch(numbers, 4); // جستجوی عنصر 4
System.out.println("شاخص عنصر 4: " + index);



🌐 آرایه‌های چندبعدی:
جاوا از آرایه‌های چندبعدی نیز پشتیبانی می‌کند. به‌عنوان مثال، آرایه‌های دوبعدی برای نمایش جداول یا ماتریس‌ها کاربرد دارند.

📌 تعریف آرایه چندبعدی:

int[][] matrix = new int[3][3]; // آرایه دوبعدی 3x3


📌 مقداردهی آرایه چندبعدی:

int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};


📌 پیمایش آرایه چندبعدی:
برای پیمایش آرایه دوبعدی از حلقه‌های تو در تو استفاده می‌کنیم:

for (int i = 0; i < matrix.length; i++) { // پیمایش سطرها
for (int j = 0; j < matrix[i].length; j++) { // پیمایش ستون‌ها
System.out.print(matrix[i][j] + " ");
}
System.out.println(); // رفتن به سطر بعدی
}



مثال جامع:

import java.util.Arrays;

public class Main {
public static void main(String[] args) {
// تعریف و مقداردهی آرایه
int[] numbers = {5, 3, 8, 1, 2};
System.out.println("آرایه اولیه: " + Arrays.toString(numbers));

// مرتب‌سازی آرایه
Arrays.sort(numbers);
System.out.println("آرایه مرتب‌شده: " + Arrays.toString(numbers));

// تعریف آرایه دوبعدی
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

// پیمایش آرایه دوبعدی
System.out.println("آرایه دوبعدی:");
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}


با این مثال ساده، شما یاد گرفتید چطور با آرایه‌های تک‌بعدی و چندبعدی کار کنید و توابع مرتبط با آن‌ها را استفاده کنید. 🚀

🆔 @javapro_ir
🆔 @group_javapro

آموزش ️️برنامه نویسی جاوا | Java

17 Nov, 14:07


آموزش ️️برنامه نویسی جاوا | Java pinned «»

9,923

subscribers

924

photos

79

videos