<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Amin Company</title>
        <link>https://virgool.io/feed/@amin.compani</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 15:55:05</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/11840/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Amin Company</title>
            <link>https://virgool.io/@amin.compani</link>
        </image>

                    <item>
                <title>ساخت Crawler برای استخراج اطلاعات از سایت های دیگر</title>
                <link>https://virgool.io/@amin.compani/%D8%B3%D8%A7%D8%AE%D8%AA-crawler-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%87%D8%A7%DB%8C-%D8%AF%DB%8C%DA%AF%D8%B1-ugbk1oflvato</link>
                <description>در اینترنت اطلاعات زیادی وجود دارد که می‌تواند برای شما مفید باشد. ممکن است برای شما هم پیش آمده باشد که به دنبال اطلاعاتی بوده باشید و با جستجو در اینترنت به آن دسترسی پیدا کرده باشید. اما گاهی برای خود من به عنوان یک برنامه‌نویس وب پیش آمده است که سفارشاتی را داشته ام که از من خواسته شده بود که سیستمی طراحی کنم که اطلاعات را به طور اتوماتیک از روی یک یا چندین وب سایت بخواند و با استفاده از آن وب سایت مشتری را به طور اتوماتیک بروز‌رسانی کند. اینجاست که این سوال به وجود می‌آيد که چگونه می‌توانیم به این اطلاعات بدون درخواست از تولید‌کننده اصلی محتوا دسترسی داشته باشیم ؟ پاسخ استفاده از Crawler است. در ایران هم سایت‌هایی وجود دارند که با عمل Crawling به اطلاعات وب‌سایت های معروف دسترسی پیدا می کنند و سپس با ترکیبی از خواسته ها و اهداف خود و همچنین اطلاعات بدست آمده از وب سایت‌های دیگر سرویس خاصی را به کاربران  خود ارائه می دهند. برای مثال سایت مالتینا با دسترسی به اطلاعات و قیمت‌های محصولات سایت آمازون و محاسبه نرخ گمرک و حمل و نقل کالا از آمریکا به ایران، به فروش محصولات آمازون می پردازد و یا وب سایت ایمالز با خواندن قیمت محصولات در چندین فروشگاه آنلاین بهترین قیمت های یک محصول خاص را به شما پیشنهاد می دهد.در این مقاله قصد داریم تا با هم به ساخت یک Crawler ساده در کمتر از ۱ ساعت بپردازیم. قطعا این پروژه یک Prototype ساده خواهد بود که نیازمند این است که سر فرصت به بهینه سازی آن برای رفع نیازهای خودتان بپردازید. زبان برنامه نویسی که این Crawler با آن نوشته شده است جاواست و من شخصا از Eclipse برای توسعه این نرم افزار استفاده کرده ام.برای ساخت این Crawler  به این موارد نیاز دارید:دانش سطحی از برنامه نویسی جاوادانش سطحی  در مورد SQL و Mysqlهدفهدف از انجام این پروژه :دادن آدرس URL یک وب سایت دانشگاهی ( برای مثال در این پروژه من از وب سایت mit.edu استفاده کرده‌ام) و پیدا کردن تمام صفحاتی که واژه &quot;Research&quot; در آن به کار رفته است.یک Crawler معمولا به صورت زیر کار می‌کند:در ابتدا با دریافت URL صفحه نخست وب سایت به جستجو و تجزیه تحلیل لینک های موجود در آن ( در اصطلاح Parse کردن ) می پردازد. در اینجا من از jsoup برای این امر استفاده کرده‌ام که یک Parser خیلی خوب برای زبان برنامه نویسی جاوا است.در مرحله دوم به Parse کردن لینک های به دست آمده از فرایند قبلی می پردازد. در نهایت بررسی می کند که کدام یک از لینک ها قبلا پردازش شده‌اند، زیرا هر لینک تنها یکبار باید مورد پردازش قرار بگیرد، برای همین منظور است که ما از دیتابیس استفاده می کنیم.ساخت یک Mysql Database :اگر از سیستم عامل اوبونتو و یا سایر توزیع‌های لینوکس استفاده می کنید می توانید با استفاده از این راهنما روش نصب Apache, MySQL, PHP,  phpMyAdmin را به راحتی دنبال کنید. اگر کاربر ویندوز هستید به راحتی با نصب Wamp Server می توانید به تمام چیزهایی که در این بخش نیاز دارید دسترسی پیدا کنید. Wamp را می توانید از وب سایت wampserver.com دانلود کنید.  بر روی سیستم عامل مکینتاش هم می توانید از Xampp استفاده کنید.اما من از MySQLWorkbench در این آموزش استفاده کرده ام که رابط کاربری ساده‌ای داره که شما می‌توانید روش کار کردن با آن را پس از نصب در ادامه ببینید.ساختن database و table :برای ساختن database و table در MySQLWorkbench  روی آیکون Create new Schema کلیک کنید و نام Schema خود را Crawler بگذارید. سپس روی دیتابیس ساخته شده کلیک کنید تا گزینه Tables را مشاهده کنید. بر روی Tables کلیک راست کنید و گزینه Create Table را انتخاب کنید.در پنجره باز شده دستورات زیر را وارد کنید: CREATE TABLE IF NOT EXISTS `Record` (`RecordID` int(11) NOT NULL AUTO_INCREMENT,`URL` text NOT NULL,PRIMARY KEY (`RecordID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
شروع عملیات Crawling با استفاده از جاوا :دانلود jsoup core از وب سایت jsoupدانلود mysql-connector-java-xxxbin.jar از وب سایت mysql پروژه ای به نام Crawler در Eclipse بسازید و Jar فایل های مربوط به Jsoup و mysql connector را که دانلود کرده اید را به Build Path پروژه خود اضافه کنید. برای این منظور روی پروژه کلیک راست کنید و این مسیر را دنبال کنید :‌ select &quot;Build Path&quot; --&gt; &quot;Configure Build Path&quot; --&gt; click &quot;Libraries&quot; tab --&gt; click &quot;Add External JARs&quot;کلاس DB را برای رسیدگی به امور database ایجاد کنید :import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class DB {
 
	public Connection conn = null;
 
	public DB() {
		try {
			Class.forName(&amp;quotcom.mysql.jdbc.Driver&amp;quot);
			String url = &amp;quotjdbc:mysql://localhost:3306/Crawler&amp;quot
			conn = DriverManager.getConnection(url, &amp;quotroot&amp;quot, &amp;quot1234&amp;quot);
			System.out.println(&amp;quotconn built&amp;quot);
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
 
	public ResultSet runSql(String sql) throws SQLException {
		Statement sta = conn.createStatement();
		return sta.executeQuery(sql);
	}
 
	public boolean runSql2(String sql) throws SQLException {
		Statement sta = conn.createStatement();
		return sta.execute(sql);
	}
 
	@Override
	protected void finalize() throws Throwable {
		if (conn != null || !conn.isClosed()) {
			conn.close();
		}
	}
}۵. کلاسی با عنوان Main ایجاد کنید. این کلاس Crawler ما خواهد بود.import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
 
public class Main {
	public static DB db = new DB();
 
	public static void main(String[] args) throws SQLException, IOException {
		db.runSql2(&amp;quotTRUNCATE Record;&amp;quot);
		processPage(&amp;quothttp://www.mit.edu&amp;quot);
	}
 
	public static void processPage(String URL) throws SQLException, IOException{
		//check if the given URL is already in database
		String sql = &amp;quotselect * from Record where URL = &#039;&amp;quot+URL+&amp;quot&#039;&amp;quot
		ResultSet rs = db.runSql(sql);
		if(rs.next()){
 
		}else{
			//store the URL to database to avoid parsing again
			sql = &amp;quotINSERT INTO  `Crawler`.`Record` &amp;quot + &amp;quot(`URL`) VALUES &amp;quot + &amp;quot(?);&amp;quot
			PreparedStatement stmt = db.conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
			stmt.setString(1, URL);
			stmt.execute();
 
			//get useful information
			Document doc = Jsoup.connect(&amp;quothttp://www.mit.edu/&amp;quot).get();
 
			if(doc.text().contains(&amp;quotresearch&amp;quot)){
				System.out.println(URL);
			}
 
			//get all links and recursively call the processPage method
			Elements questions = doc.select(&amp;quota[href]&amp;quot);
			for(Element link: questions){
				if(link.attr(&amp;quothref&amp;quot).contains(&amp;quotmit.edu&amp;quot))
					processPage(link.attr(&amp;quotabs:href&amp;quot));
			}
		}
	}
}در این لحظه شما موفق به ساختن crawler خود شدید. بیاید با هم به خروجی اپلیکیشن خود نگاهی بیندازیم.حال تلاش کنید که با استفاده از قطعه کدهای بالا Crawler های خود را بسازید و اطلاعاتی که علاقمند هستید از سایت‌های مختلف استخراج کنید را بدست آورید. برای بحث و تبادل نظر در این رابطه هم می‌توانید با کلیک بر روی این لینک در کانال تلگرامی من عضو شوید.</description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Tue, 04 Aug 2020 22:56:19 +0430</pubDate>
            </item>
                    <item>
                <title>آمار بازدید مطالب من در سال ۹۷</title>
                <link>https://virgool.io/@amin.compani/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%85%D8%B7%D8%A7%D9%84%D8%A8-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B7-ecw3kd2rocuc</link>
                <description>من در سال گذشته، در مجموع ۹ مقاله در ویرگول منتشر کردم. در طول این سال مقالات من ۷۱ مرتبه لایک شدند و ۲۸ نظر نیز بر روی آن‌ها ارسال شد. با مطالعه این مقالات، ۳۷ نفر تصمیم گرفتند تا من را در ویرگول دنبال کنند تا از مقالات بعدی من باخبر شوند.مخاطبیندر طول این سال، مقالات من توسط ۱۲,۵۹۶ نفر در ویرگول مطالعه شده است. مدت زمانی که این افراد در حال مطالعه‌ی آن‌ها بوده‌اند برابر با ۵۳۱,۹۲۹ ثانیه است. اگر فرض کنیم در حال حاضر جمعیت ایران ۸۰ میلیون نفر است، این یعنی من توانسته‌ام سرانه مطالعه کشورم ایران را ۰/۰۰۶۶۴۹ ثانیه افزایش دهم. شاید بتوانیم این عدد را به «اثر پروانه‌ای» تشبیه کنیم؛ چرا که هر کدام از نویسندگان در ویرگول توانسته‌ایم عددی کوچک را به سرانه مطالعه کشور اضافه کنیم اما مجموعِ تک تکِ این اعداد، یک عدد بزرگ شده است. من در کنار سایر کاربرانِ ویرگول توانستیم در سال ۹۷، سرانه مطالعه ایران را ۴/۱۲۲۳۴۳ ثانیه افزایش دهیم.می‌توانیم برای سال ۹۸، اتفاقات بزرگتری را رقم بزنیم.ویدیوی آمار مخاطبین من را ببینید: https://cdn.virgool.io/annual-report-97/jczjgc5vonxz-juUj.mp4 </description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Thu, 28 Mar 2019 15:17:59 +0430</pubDate>
            </item>
                    <item>
                <title>کپسوله سازی یا همان Encapsulation در جاوا</title>
                <link>https://virgool.io/Software/%DA%A9%D9%BE%D8%B3%D9%88%D9%84%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%DB%8C%D8%A7-%D9%87%D9%85%D8%A7%D9%86-encapsulation-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-ieheaookx1xl</link>
                <description>یکی از مفاهیم مهمی که در کلاس های درس برنامه نویسی در دانشگاه و یا آموزشگاه های آزاد در مورد آن احتمالا بارها شنیده اید بحث کپسوله سازی یا همان Encapsulation است. در این مقاله قصد دارم که به مفهوم Encapsulation در جاوا بپردازم تا در کنار یکدیگر روش استفاده از آن را در جاوا یاد بگیریم.کپسوله سازی در جاوابه طور کلی Encapsulation به فرایند قرار دادن کدها و اطلاعات در واحدهای یکتا گفته می شود. بهترین مثال هم برای آن همان کپسول قرص است. اگر یک کپسول قرص را از هم باز کنید مواد دارویی را مشاهده می کنید که احتمالا هر کدام از آنها کار خاصی را در بدن شما انجام می دهند. شما هم می توانید با تبدیل سطح دسترسی تمام متغیرهای نمونه و متدهای یک کلاس به private همانند یک کپسول قرص آنها را در محیط کلاس خود کپسوله کنید. سوالی که بوجود می آید این است که اگر من یک متغیر نمونه یا همان instance variable را با سطح دسترسی  private تعریف کنم چگونه می توانم به اطلاعات آن دسترسی پیدا کنم؟ پاسخ متد های getter و setter هستند.متدهای getter و setterاصولا برنامه نویسان جاوا متغیرهای نمونه (متغیرهایی که در بدنه کلاس تعریف می شوند و نه متد) را به صورت private تعریف می کنند. این امر سبب می شود که سایر کلاس ها و متدهای آنها به راحتی نتوانند مقدار این متغیرها را تغییر دهند. در عوض آنها مجبورند که از متدهای getter و setter که سطح دسترسی public دارند برای مقدار دهی و دستیابی به مقادیر متغیرهای نمونه استفاده کنند. ممکن است از خودتان بپرسید خوب چه فرقی می کند که متغیرهای نمونه را مستقیما مقدار دهی کنم یا از متدهاد getter و setter استفاده کنم؟جواب این است که شما با استفاده از متدهای getter و setter می توانید مقادیری که به متغیرهای نمونه ارسال می شود را کنترل کنید و از ارسال و دریافت ورودی هایی که معتبر نیستند جلوگیری کنید. بگذارید با ذکر یک مثال مسئله را برایتان روشن کنم. فرض کنید می خواهید در نرم افزارتان سن کاربر را دریافت کنید. آن شخص یک عدد منفی را در نرم افزار وارد می کند و خوب همه می دانیم که سن یک شخص نمی تواند منفی باشد. اینجاست که باید پیام خطایی را به کاربر نمایش دهیم و به او بگوییم که سن خود را درست وارد نکرده است. این اتفاق از طریق قوانینی که در متد setter خودمان تعیین کرده ایم اتفاق می افتد. حال تصور کنید اگر سطح دسترسی public به متغیر نمونه خود داده بودیم چه اتفاقی می افتاد، مقدار منفی به جای سن آن شخص به راحتی قرار می گرفت!نوشتن یک اپلیکیشن با استفاده متدهای getter و setterبگذارید که با استفاده از متدهای getter و setter یک اپلیکیشن ساده با جاوا بنویسیم تا کاربرد این دو متد پر استفاده برای شما بیشتر مشخص شود. قرار نیست که در این اپلیکیشن اتفاق خاصی بیفتد. قرار است که اسم و سن یک نفر را بپرسیم و پیام خوش آمدگویی را با توجه به اطلاعاتی که وارد کرده است به او نمایش بدهیم. خوب پس شروع می کنیم.public class UserTest {
    private String username;
    private int userAge;

    public void setUsername(String username) {
        this.username = username;
    }
 
    public String getUsername() {
        return username;
    }
    
    public void setUserAge (int userAge) {
        if (userAge &gt; 0) 
            this.userAge = userAge;
        else
            System.out.println(&quot;\nYou entered invalid value, your age initialized with 0&quot;);
}
    public int getUserAge() {
        return userAge;
    }
}در این کلاس ما دو متغیر نمونه به نام های username و userAge تعریف کرده ایم و برای هر کدام یک متد getter و یک متد setter تعریف کرده ایم. در متد setUserAge قانونی را تعیین کرده ایم که در صورتی که داده ورودی برای سن کمتر از ۰ بود برنامه پیام خطایی را نمایش دهد.توجه داشته باشید که معمولا متدهای setter مقداری را به عنوان ورودی دریافت می کنند ولی هیچ مقداری را بازگشت نمی دهند. این در حالی است که متدهای getter معمولا هیچ مقداری را دریافت نمی کنند و فقط مقداری را برگشت می دهند.import java.util.Scanner;

public class mainClass {
    public static void main(String[] args) {

        UserTest amin = new UserTest();
        Scanner input = new Scanner(System.in);

        System.out.print(&quot;please enter your name: &quot;);
        amin.setUsername(input.next());
        
        System.out.print(&quot;please enter your age: &quot;);
        amin.setUserAge(input.nextInt());

        System.out.println(&quot;\nWelcome &quot; + amin.getUsername() + &quot; to learning java&quot;);
         
        System.out.printf(&quot;You are %d !!! it&#039;s cool!&quot;, amin.getUserAge());
    }
}
‍‍‍ در متد main  خود یک نمونه از کلاس UserTest ساخته ایم و نام آن را amin قرار داده ایم و پس از آن به مقدار دهی متغیرهای نمونه UserTest با متدهای setUsername و setUserAge با استفاده از مقادیری که کاربر وارد کرده است پرداخته ایم. در انتها پیام خوش آمد گویی به همراه نام کاربر و همچنین پیام مربوط به سن کاربر روی صفحه نمایش چاپ شده است.سخن پایانیدر نهایت فایل مربوط به کدهایی که در بالا مشاهده می کنید را با کامنت های فارسی از طریق این لینک می توانید دانلود کنید و روی کامپیوتر خودتان از آن استفاده کنید.سوالات خودتان را هم به ایمیل من amin.compani@gmail.com ارسال کنید. همچنین صفحه اینستاگرام من رو هم به آدرس https://www.instagram.com/java_pedia فراموش نکنید.برای شرکت در دوره برنامه نویسی جاوا به صورت خصوصی با شماره 09303161612 تماس حاصل فرمایید.</description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Thu, 13 Dec 2018 21:51:58 +0330</pubDate>
            </item>
                    <item>
                <title>پنج تا از بهترین زبان های برنامه نویسی برای ساخت بازی</title>
                <link>https://virgool.io/GameWorld/five-best-programming-languages-for-game-development-sbm1vokgfmik</link>
                <description>در سال ۲۰۱۷ صنعت بازی های کامپیوتری در حدود ۱۰۸ بیلیون دلار برای شرکت های بازی سازی دنیا درآمد زایی کرد و پیش بینی می شود که این رقم تا سال ۲۰۲۰ به رقم سرسام آور ۱۲۸ بیلیون دلار برسد. سال ۲۰۱۸ نیز برای بازی سازان دو بازی  Fortnite و PUBG هم سال بی نظیری بود و آنها توانستند درآمد فوق العاده ای را از طریق این دو بازی محبوب کسب کنند.برای ساخت بازی چه زبان برنامه نویسی یاد بگیرم ؟اگر شما هم برنامه نویس هستید یا به یادگیری یک زبان برنامه نویسی علاقه دارید یا اینکه قصد دارید وارد مارکت بیلیون دلاری ساخت بازی های کامپیوتری بشوید، بهترین راه شروع یادگیری یک زبان برنامه نویسی مناسب برای ساخت بازی است. در ادامه زبان های برنامه نویسی را که شما می توانید با یادگیری آنها به توسعه و ساخت بازی های کامپیوتری بپردازید را با هم مرور می کنیم :۱.سی ++ وقتی کدها در ++C به درستی نوشته شده باشد، اجرای نرم افزار به سریعترین حالت ممکن اتفاق می افتد. درست به همان سرعتی که شما و گیمرها توقع دارید که یک بازی کامپیوتری اجرا شود. واقعیت امر این است که بسیاری از بازی های درجه AAA دنیا با ++C نوشته شده اند و این زبان برنامه نویسی انتخاب بسیاری از برنامه نویسان حرفه ای به شمار می رود. گذشته از اینها منابع زیادی هم برای توسعه بازی های ساخته شده با ++C وجود دارد. برای مثال موتور بازی سازی (یا همان گیم انجین) Unreal پشتیبانی ویژه ای از ++C می کند. به غیر از آن کلی موتور بازی سازی دیگر مانند App Game Kit, Godot و OxyginE-2D  هم وجود دارند که می توانید برای ساخت بازی از آنها استفاده کنید. از نظر تقاضا نیز، شرکت هایی که در زمینه توسعه و ساخت بازی های کامپیوتری فعالیت دارند ترجیح می دهند که برنامه نویسان ++C را در شرکت خود استخدام کنند و در واقع برنامه نویسان ++C از احترام ویژه ای در این صنعت بهره مند هستند.۲. سی شارپ بیشتر موقع ها، اگر قصد ساخت یک بازی چشمگیر و درخور را دارید باید از یک موتور بازی سازی استفاده کنید. خبر خوب این است که سی شارپ توسط Unity3D که یکی از بهترین موتورهای بازی سازی جهان به شمار می رود ساپورت می شود و همچنین Xamarin یکی از دیگر از موتورهای بازی سازی معروف دنیا این زبان برنامه نویسی را پشتیبانی می کند. نکته جذاب دیگری که در مورد زبان برنامه نویسی سی شارپ وجود دارد این است که شما با آن تقریبا قادر خواهید بود که برای هر پلتفرمی در هر ابعادی، بزرگ یا کوچک بازی بسازید. با زبان برنامه نویسی سی شارپ شما می توانید برای اکس باکس ، ویندوز، پلی استیشن، IOS و حتی اندروید بازی بسازید و خوشبختانه سی شارپ در هیچکدام از این موارد پشت شما را خالی نخواهد کرد! همچنین یادگیری سی شارپ برای افراد مبتدی به مراتب راحت تر از ++C است و در اصطلاح شما در آن کار ساده تری برای رسیدن به درجه استادی دارید.۳. جاوامی توان گفت که جاوا بهترین زبان برنامه نویسی برای ساخت بازی های چند پلتفرمی است. بازی های ساخته شده با زبان برنامه نویسی جاوا برای دسکتاپ می توانند به همان خوبی اجرا شوند که درون موبایل اجرا می شوند. همچنین جاوا زبان برنامه نویسی اصلی برای توسعه بازی های اندروید است. برای شروع برنامه نویسی بازی با جاوا شما می توانید کار خود را با اندروید استودیو شروع کنید و از OpenGL برای طراحی محیط گرافیکی بازی، از فریمورک LibGDX برای ساخت بازی های ۲ بعدی و از JMonkeyEngine برای ساخت بازی های ۳ بعدی استفاده کنید. همچنین JVM کتابخانه عظیمی برای ساخت و توسعه بازی در اختیار شما قرار داده است که می توانید از آنها استفاده کنید.۴. جاوا اسکریپتجاوا اسکریپت به عنوان یکی از همه کاره ترین زبان های برنامه نویسی دنیا شناخته می شود. شما از جاوا اسکریپت می توانید برای خیلی کارها استفاده کنید اما ظاهرا ساخت و توسعه بازی از لیست کارهایی که جاوا اسکریپت می تواند برای ما انجام دهد حذف شده است! با این حال همکاران جاوا اسکریپت یعنی  CoffeeScript و TypeScript برای این منظور مورد استفاده قرار می گیرند. همچنین با ادغام جاوا اسکریپت و HTML5 می توان بازی های تحت وب یا تحت مرورگر خوبی ساخت. در ضمن جاوا اسکریپت از یکی از بهترین موتورهای بازی سازی دنیا برای توسعه بازی های تحت وب استفاده می کند، Unity !۵. و در نهایت: HTML5بازی های تحت وب روز به روز در حال محبوب تر شدن هستند. اگر شما هم قصد دارید که یکی از این بازی ها را بسازید، HTML5 می تواند بهترین انتخاب باشد. HTML5، بالاترین ورژن HTML امکانات بسیار بیشتری نسبت به گذشته در اختیار شما می گذارد، مثل canvas و کلی المان و attribute جدید که در ساخت بازی به شما کمک خواهد کرد. همچنین HTML5 به خوبی با جاوا اسکریپت و WebGL برای طراحی گرافیکی کار می کند. برای شروع ساخت بازی با HTML5 می توانید در اینترنت به دنبال فریمورک Phaser بگردید.نتیجه گیریدر نهایت چیزی به نام بهترین زبان برنامه نویسی برای ساخت و توسعه بازی وجود ندارد. در واقع اینکه کدام زبان برنامه نویسی را برای ساخت یک بازی انتخاب می کنید اهمیت زیادی ندارد و چیزی که مهم است مهارت و عزم و اراده شما به عنوان یک برنامه نویس برای اجرای یک پروژه ساخت بازی است. چیزی که مسلم است، انتخاب یک زبان برنامه نویسی با منابع آموزشی فراوان و همچنین یوزر فرندلی برای کسانی که می خواهند از ابتدا شروع به یادگیری یک زبان برنامه نویسی کنند اهمیت ویژه ای دارد.</description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Mon, 20 Aug 2018 00:52:20 +0430</pubDate>
            </item>
                    <item>
                <title>برنامه محاسبه ریشه های معادله درجه ۲ در جاوا</title>
                <link>https://virgool.io/@amin.compani/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-%D8%B1%DB%8C%D8%B4%D9%87-%D9%87%D8%A7%DB%8C-%D9%85%D8%B9%D8%A7%D8%AF%D9%84%D9%87-%D8%AF%D8%B1%D8%AC%D9%87-%DB%B2-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-hoaq322qrttr</link>
                <description>در دوران دبیرستان و در درس ریاضیات بارها به این نیاز پیدا کرده اید که ریشه یک معادله درجه ۲ به شکل ax^2 + bx + c = 0 را محاسبه کنید. در این مقاله قصد داریم که برنامه ای بنویسیم که ریشه های یک معادله درجه ۲ را محاسبه می کنبرای پیاده سازی این برنامه ساده ابتدا باید روش بدست آوردن ریشه های معادله درجه ۲ را به زبان ریاضی یادآور شوم. به صورت ریاضی قبل از محاسبه ریشه های یک معادله درجه ۲ باید دلتا را بدست آورید. اگر به خاطر بیاورید برای بدست آوردن دلتا باید به روش زیر عمل کنید.Delta = b^2 - 4acدر واقع در معادله ax^2 + bx + c = 0 ضریب دوم (b) را به توان ۲ می رسانیم و سپس ۴ برابر ضریب اول (a) در ضریب سوم (c) را از آن کم می کنیم.سپس از طریق روابط زیر آن را محاسبه می کنیم : خوب بیاید نگاهی به کدهای برنامه بندازیم. بعد از نوشتن کد ها به توضیح برنامه خواهم پرداخت !import java.util.Scanner;

public class Delta {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a,b,c , delta;
        double x1,x2;
        //دریافت ۳ رقم از ورودی توسط کاربر
        System.out.println(&quot;Please enter 3 number : &quot;);
        a = input.nextInt();
        b = input.nextInt();
        c = input.nextInt();

        //محاسبه دلتا
        delta = b * b - 4 * a * c;
        //اگر دلتا بزرگتر از صفر باشد دو ریشه حقیقی دارد
        if (delta &gt; 0) {
            x1 = (-b + Math.sqrt(delta) / (2 * a));
            x2 = (-b - Math.sqrt(delta) / (2*a));

            System.out.printf(&quot;rishe aval : %f \n&quot;, x1);
            System.out.printf(&quot;rishe dovom : %f&quot;, x2);
        }
        //اگر دلتا برابر صفر باشد تنها یک ریشه مضاعف دارد
        if (delta == 0) {
            x1 = -b / (2 * a);

            System.out.printf(&quot;rishe : %.1f&quot;, x1);
        }
        //اگر دلتا کوچکتر از صفر باشد فاقد ریشه می باشد
        if (delta &lt; 0 ) {
            System.out.println(&quot;rishe nadarad !!&quot;);
        }
    }
}برای نوشتن این برنامه به زبان جاوا ابتدا مقادیر a , b ,c را از ورودی دریافت می کنیم. دلتا را از طریق فرمولی که در بالا شرح داده شد محاسبه می کنیم.  در اینجا ۳ حالت به وجود می آید : اگر دلتا بزرگتر از صفر شود معادله دو ریشه حقیقی دارد.اگر دلتا مساوی صفر شود معادله یک ریشه مضاعف دارد.اگر دلتا کوچکتر از صفر شود معادله فاقد ریشه می باشد.در حالتی که معادله دو ریشه حقیقی دارد از کلاس و متد ()Math.sqrt  استفاده کرده ایم. متد sqrt جذر مقادیر ورودی را محاسبه کرده و آن را بر می گرداند. از فرمول مربوطه استفاده کردیم و مقادیر هر دو ریشه را بدست می آوریم.برای حالتی که دلتا برابر صفر باشد از فرمول مربوط به آن بخش استفاده می کنیم و در حالتی که دلتا کوچکتر از صفر باشد تنها یک پیام چاپ می کنیم با این عنوان که معادله ریشه ندارد.</description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Sun, 12 Aug 2018 21:18:19 +0430</pubDate>
            </item>
                    <item>
                <title>برنامه محاسبه فاکتوریل در جاوا</title>
                <link>https://virgool.io/@amin.compani/factorial-in-java-cef7rk5r9cfh</link>
                <description>ممکن است از شما بخواهند که در جاوا برنامه ای بنویسید که یک عدد را از ورودی دریافت کند و سپس حاصل ضرب یک تا آن عدد یا همان فاکتوریل را محاسبه کند و پاسخ را برگرداند.برای نوشتن این برنامه مانند زیر عمل می کنیم :import java.util.Scanner;

public class Factorial {
    public static void main(String[] args) {
        long fact = 1 , n;
        Scanner input = new Scanner(System.in);

        //وارد کردن دستوری که عدد ورودی برای محاسبه فاکتوریل را دریافت می کند
        System.out.println(&quot;Enter N : &quot;);
        n = input.nextLong();

        //این حلقه از یک شروع می شود و تا عدد ورودی شمارنده حلقه را در عدد ورودی ضرب می کند.
        for (int count = 1 ; count &lt;= n ; count ++) {
            fact *= count;
        }// پایان حلقه for
        System.out.println(&quot;Factorial &quot; + n  +&quot; is &quot; + fact);
    } //پایان متد main
}// پایان کلاس  Factorielبرای نوشتن این برنامه ابتدا دو متغیر از نوع long تعریف می کنیم. این دو متغیر بهتر است که از نوع long  باشند چون حاصل ضرب اعداد فاکتوریل ممکن است عددی بزرگ شود. با استفاده از یک دستور prompt و شی input از کلاس Scanner از کاربر می خواهیم که یک عدد را برای محاسبه فاکتوریل وارد کند. سپس حلقه for را تعریف کرده ایم تا از عدد ۱ تا عدد وارد شده تا کاربر  همه اعداد را در هم ضرب کند. در نهایت عدد ورودی و حاصل فاکتوریل آن را در صفحه نمایش چاپ کرده ایم.</description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Tue, 07 Aug 2018 13:33:01 +0430</pubDate>
            </item>
                    <item>
                <title>دنباله فیبوناچی در جاوا</title>
                <link>https://virgool.io/@amin.compani/fibonacci-series-in-java-kgg7zc0e9r9o</link>
                <description>ممکن است که به عنوان تمرین دانشگاهی از شما خواسته شود که یک برنامه ساده با جاوا بنویسید که دنباله فیبوناچی را تا n رقم محاسبه کند و نمایش دهد و شاید خودتان علاقمند باشید که یکم چالش ذهنی برای خود درست کنید. در هر حال قصد داریم که امروز دنباله فیبوناچی را در زبان جاوا بنویسم.اما دنباله فیبوناچی چیست ؟ به طور ساده فیبوناچی دنباله ای از اعداد است که از حاصل جمع دو عدد قبلی خود به دست می آید. شروع این دنبال از مجموع ۱ + ۱ آغاز می شود و تا هر میزان که شما بخواهید ادامه پیدا می کند. برای مثال ۱۰ عدد اول این سری از راست به چپ به صورت زیر است : ۱   ۱    ۲    ۳    ۵    ۸    ۱۳    ۲۱    ۳۴   ۵۵ و ...برای نوشتن برنامه محاسبه دنباله فیبوناچی به شکل زیر عمل می کنیم.import java.util.Scanner;

public class fibonancci{
    public static void main(String[] args) {

        //اعلان متغیر های برنامه
        int x = 0, y = 1, z = 0, n;

        //ساختن یک object از کلاس Scanner برای گرفتن تعداد اعداد دنباله مورد نظر
        Scanner input = new Scanner(System.in);

        // دریافت طول دنباله فیبوناچی از ورودی
        System.out.println(&quot;Please Enter n for fibonancci[n] :&quot;);
        n = input.nextInt();
        
        //اگر عدد وارد شده از یک بزرگتر بود ۱ را در خروجی چاپ کن
        if (n &gt;= 1) {
            System.out.print(&quot;1   &quot;);
        }
        
        for (int count = 1; count &lt; n; count ++) {
            z = x+y;
            System.out.printf(&quot;%d     &quot;, z);
             x=y;
             y = z;
        } // پایان حلقه for
    } //پایان متد main
} //پایان کلاس
توضیح روش کار کردن برنامهدر ابتدای این برنامه کلاس Scanner به پروژه شما Import  شده است. در ادامه به تعدادی که می خواهید دنباله محاسبه شود برنامه از شما یک ورودی int دریافت می کند و آن را برابر با n قرار می دهد. اگر ورودی وارد شده از ۱ بزرگتر باشد، ۱ به عنوان اولین المان برنامه روی صفحه نمایش چاپ می شود. حلقه for  از عدد ۱ تا عددی که کاربر به عنوان المان ورودی به برنامه داده است تکرار می شود و دو عدد اول را با هم جمع می کند و حاصل آن را در عدد سوم قرار می دهد. حاصل بر روی صفحه نمایش چاپ می شود و عدد اول برابر عدد دوم و عدد دوم برابر عدد سوم قرار می گیرد و این روند تا میزانی که کاربر از نرم افزار خواسته است ادامه پیدا می کند.</description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Mon, 06 Aug 2018 12:52:50 +0430</pubDate>
            </item>
                    <item>
                <title>جاوا ۱۰ منتشر شد</title>
                <link>https://virgool.io/@amin.compani/java-10-released-utztje3y6myf</link>
                <description>چند وقت پیش شاهد اتفاق بزرگی برای برنامه نویسان جاوا بودیم و بالاخره ورژن ۱۰ از جاوا SE منتشر شد. این نسخه یک بروز رسانی مهم از طرف اوراکل بوده و شامل برطرف شدن بسیاری از باگ های جاوا نسخه های پیشین می باشد. از این رو اوراکل به برنامه نویسان جاوا توصیه می کند که نسخه مورد استفاده خود را به ورژن ۱۰ بروز رسانی کنند.شما می توانید آخرین نسخه از جاوا را از طریق لینک های زیر دانلود کنید : JDK 10.0.2 release notesJDK 10.0.2 download همچنین OpenJDK ورژن ۱۰.۰.۲ که یک نسخه اوپن سورس و آزاد از جاوا SE می باشد نیز در این بروز رسانی با لایسنس گنو منتشر شده است.</description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Fri, 03 Aug 2018 22:24:41 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش برنامه نویسی جاوا - بخش اول</title>
                <link>https://virgool.io/Software/learning-java-part-one-ythcvbumbvfx</link>
                <description>چند سال پیش از مجموعه کتاب هایی به نام کلید برای یادگیری سریع و آسان کار با یک نرم افزار استفاده می کردم. دلیل انتخابم هم این بود که آن کتاب ها به شدت ساده بودند و برای منی که هیچ آشنایی با آن نرم افزارها نداشتم کمک بزرگی محسوب می شدند. با اینحال شیوه آموزش برنامه نویسی به هر زبانی در اینترنت فراوان است، اما من در این سری آموزش قصد دارم که روال کتاب های کلید را در پیش بگیرم و سعی  می کنم تا در ساده ترین حد ممکن هر مبحث آموزشی را توضیح بدهم و از پرداختن به توضیحات سردرد آور و پیچیده پرهیز کنم.ذکر چند نکته که خالی از لطف نیست توصیه می کنم که قبل از شروع مطالعه آموزش برنامه نویسی به زبان جاوا من، مقاله برای یادگیری جاوا از کجا باید شروع کنم را مطالعه کنید.سعی کنید که مطالب را درک کنید و از  حفظ کردن دستورات بپرهیزید.این آموزش تا زمانی که خودتان شروع به کد زدن نکنید هیچ سودی برای شما نخواهد داشت.تمریناتی که برای شما در پایان هر بخش آورده شده است را درون IDE که در مقاله &quot;برای یادگیری جاوا از کجا باید شروع کنم&quot; روش نصب آنها را توضیح داده ام انجام دهید و در صورت بروز هرگونه سوال یا مشکل از طریق ایمیل aminc8.com@gmail.com با من در ارتباط باشید. حتی این امکان وجود دارد که پاسخ های خود به مسائل را برای من ارسال کنید.مثل هر زبان برنامه نویسی همه چیز از Hello World آغاز می شود.اگر دانشجوی رشته نرم افزار باشید یا با برنامه نویسی آشنایی نسبی داشته باشید قطعا می دانید که اولین برنامه ای که در هر زبان برنامه نویسی آموزش را با آن آغاز می کنند Hello World است. این برنامه ساده تنها عبارت Hello world را روی صفحه نمایش کامپیوتر چاپ می کند. با این حال نوشتن این برنامه به شما کمک می کند که ساز و کار پیاده سازی اولین برنامه جاوا را یاد بگیرید. پس بیاید که با هم شروع کنیم.ایجاد یک پروژه در Intellijدر محیط Intellij یک پروژه جدید ایجاد کنید و نام آن را HelloWorld بگذارید.تنها روی Next کلیک کنیددر این بخش نام پروژه را تعیین کنید و در نهایت روی finish کلیک کنید.ایجاد کلاس HelloWorldپس از ایجاد پروژه باید اولین کلاس جاوا خود را ایجاد کنید. اینکه کلاس چیست و چگونه کار می کند را به طور مفصل در یک مقاله جدا به آن خواهم پرداخت ولی در حال حاضر به همین بسنده کنید که برای ساخت یک برنامه جاوا قبل از هر چیز باید یک کلاس ایجاد کنید. در محیط Intellij در قسمت Project روی پوشه src کلیک راست کنید. در منو باز شده از گزینه New گزینه Java Class را انتخاب کنید.SRC &gt; New &gt; Java Class نکته ای که به آن باید توجه داشته باشید این است که نام کلاس با نام فایلی که قبلا ایجاد کرده اید باید دقیقا یکی باشد، در غیر اینصورت برنامه شما کامپایل نخواهد شد. اعلان کلاس کدی مانند شکل زیر را در IDE بوجود می آورد.اعلان کلاس Hello worldکلمه کلیدی public را هم در آینده بهش خواهم پرداخت، اما در این لحظه به طور اجمالی به ساختار تعریف یک کلاس در برنامه های جاوا دقت کنید. تعریف این کلاس جاوا از کلمه کلیدی public ، کلمه کلیدی class  که بیانگر اعلان یک کلاس است و همچنین نام کلاس (HelloWorld) تشکیل شده است. تمام دستورات مربوط به کلاس هم داخل {} قرار می گیرد.اعلان متد mainپس از اعلان کلاس باید متد main برنامه خود را بنویسید. در واقع وجود این متد برای پیاده سازی هر برنامه جاوا اجباری و لازم است. در مباحث مربوط به شی گرایی خواهید آموخت که هر برنامه جاوا ممکن است از ده ها متد و کلاس مختلف تشکیل شده باشد ولی وجود یک کلاس main برای اجرای برنامه اجتناب ناپذیر است. روش پیاده سازی یک متد main مانند تصویر زیر است.نحوه پیاده سازی متد mainمتد main از کلمات کلیدی public static و به دنبال آن کلمه کلیدی void که نشان دهنده مقدار بازگشتی متد و نام متد که main می باشد تشکیل شده است و در داخل پرانتز مقادیری که این متد به عنوان پارامتر دریافت می کند آمده است. اگر کمی گیج کننده به نظر می رسد عجله نکنید. در آموزش های بعدی وقتی به تفکیک در مورد همه موارد بالا توضیح دادم همه چیز را متوجه خواهید شد. در این لحظه متد main را دقیقا همانند آنچه در تصویر می بینید داخل کلاس خودتان وارد کنید.ترفند : با تایپ عبارت psvm و زدن کلید enter در محیط intelli، نرم افزار به طور اتوماتیک متد main را برای شما وارد می کند اما توصیه می کنم که در دفعات اول خودتان متد را تایپ کنید.نکته : جاوا case-sensitive است. این بدان معناست که جاوا به بزرگ یا کوچک بودن حروف حساس است و بین آنها تفاوت قائل می شود. برای مثال عبارت hello با Hello با heLLo عباراتی متفاوت تفسیر می شوند، پس در هنگام کد زدن به بزرگ و کوچک بودن دستوراتی که وارد می کنید دقت کنید. دستور System.out.printبا استفاده از این دستور می تونیم عبارت Hello world را بر روی صفحه نمایش چاپ کنید. از این دستور به یکی از ۳ حالت زیر می توانیم استفاده کنیم. داخل متد main خود یکی از دستورات زیر را وارد کنید تا برنامه شما کامل شود.System.out.print(&quot;Hello World&quot;);
System.out.println(&quot;Hello World&quot;);
System.out.printf(&quot;%s&quot;, &quot;Hello World&quot;);اما تفاوت ۳ دستور بالا در چیست ؟خط اول عبارت Hello World را روی صفحه نمایش نشان می دهد ولی نشانگر در همان خط باقی می ماند.خط دوم پس از نمایش عبارت Hello World نشانگر را به خط بعد می برد و در واقع یک خط بین محتوا ایجاد شده و بعدی فاصله می اندازد.خط سوم پس از print از حرف f به معنای format استفاده شده است. با دقت به خط سوم توجه کنید. داخل &quot; &quot; از s% استفاده شده است. گاهی نیاز داریم که رشته ای که بر روی صفحه نمایش می خواهیم به نمایش در بیاوریم را قالب بندی کنیم. از s% برای نمایش رشته، d% برای نمایش یک عدد صحیح، f% برای نمایش یک عدد اعشاری و c% برای نمایش یک کاراکتر به شکلی که در دستور خط سوم آمده است می توانیم استفاده کنیم. برای مثال :System.out.printf(&quot;%d , %f , %c , %s&quot;, 8, 9.8, &#x27;A&#x27;, &quot;Hello&quot;);توجه داشته باشید که در صورتی که ترتیب را رعایت نکنید با اررور در زمان کامپایل کدهای خود مواجه خواهید شد.Hello World  خوب اولین برنامه ما با زبان جاوا که تنها از ۵ خط کد تشکیل شده است نوشته شد. حالا وقت آن رسیده که کد خود را اجرا کنیم. برای اجرای کد تنها کافیست در فضای خالی از بخشی که کدهای خود را وارد کرده اید کلیک راست کنید و روی گزینه &#x27;()RUN &#x27;HelloWorld.main کلیک کنید.اجرای برنامه جاواخوب به همین راحتی همه چیز تمام شد. در بخش پایینی صفحه می توانید خروجی اولین کد خودتان را ببینید.خروجی برنامه Hello world تمرینبرنامه ای بنویسید که عبارت Hello World را در دو خط مجزا چاپ کند.برنامه ای بنویسید که با استفاده از دستور System.out.println شکل زیر را در خروجی چاپ کند :*
**
***
****
***
**
*3. برنامه ای بنویسید که با استفاده از دستورات System.out.println و System.out.printf عبارت زیر را چاک کند :Number 1 is : 8
Number 2 is : 8.9
Character is : C
String is : Hello Worldنکته : دستور ;()System.out.println به تنهایی ادامه نمایش دستورات را به یک خط پایینتر می برد. </description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Fri, 03 Aug 2018 15:09:52 +0430</pubDate>
            </item>
                    <item>
                <title>مقدمه ای بر ماشین مجازی جاوا (JVM)</title>
                <link>https://virgool.io/@amin.compani/%D9%85%D9%82%D8%AF%D9%85%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-%D8%AC%D8%A7%D9%88%D8%A7-jvm-vipbxpufr1zp</link>
                <description>اگر برنامه نویس جاوا هستید قطعا با JVM یا همان ماشین مجازی جاوا آشنایی دارید. در واقع JVM همان چیزی است که شعار معروف شرکت سان مایکروسیستم مبنی بر &quot;یک بار بنویس و هر جایی آن را اجرا کن&quot; را محقق می سازد. من امین کمپانی در این مقاله قصد دارم که به همراه شما به بررسی کامل ماشین مجازی جاوا بپردازم و ابعاد مختلف آن را که شاید کمتر با آن آشنایی داشته باشید را مورد بررسی قرار دهم.تعریفی دقیق از ماشین مجازی جاواماشین مجازی جاوا دو هدف اصلی را دنبال می کند. در وهله اول وظیفه ماشین مجازی جاوا فراهم کردن محیطی برای اجرای برنامه های جاوا روی هر وسیله با هر سیستم عاملی است و در وهله دوم ماشین مجازی جاوا وظیفه مدیریت و بهینه سازی منابع حافظه آن سیستم را بر عهده دارد. جالب است بدانید که تا قبل از سال ۱۹۹۵ که جاوا معرفی شد تمام برنامه های کامپیوتری برای سیستم عامل مشخصی نوشته می شدند و این برنامه نویس بود که وظیفه مدیریت منابع حافظه سیستم را برعهده داشت.اگر از یک برنامه نویس جاوا بپرسید که JVM دقیقا چیست و چگونه کار می کند شاید جوابی مشابه زیر بشنوید :ماشین مجازی جاوا در واقع چیزی است که ما با آن برنامه هایی که به زبان برنامه نویسی جاوا نوشته ایم را اجرا می کنیم. ما تنظیمات JVM را پیکربندی می کنیم و بعد به آن اطمینان می کنیم تا در زمان اجرای برنامه منابع نرم افزار را مدیریت کند.در واقع تاکید بیشتر برنامه نویس های جاوا در تعریف JVM به فرآیند کامپایل و اجرای کد اشاره دارد، این درحالیست که موارد گفته شده تمام چیزی نیست که ما به عنوان برنامه نویس جاوا باید از JVM توقع داشته باشیم.چه کسانی JVM را توسعه می دهند ؟ماشین مجازی جاوا به طور گسترده توسط برترین برنامه نویسان دنیا، هم  به صورت سازمانی و هم به صورت متن باز توسعه پیدا می کند. برای مثال پروژه OpenJDK زاده تصمیم سان مایکروسیستم برای منتشر کردن جاوا به صورت اوپن سورس است. البته OpenJDK همچنان با سرپرستی اوراکل به کار خودش ادامه می دهد.سوال: Garbage collection چیست ؟همانطور که قبلا هم اشاره کردم، تا قبل از پیدایش جاوا تمام حافظه اختصاص پیدا کرده به نرم افزار باید توسط برنامه نویس مدیریت می شد، اما در جاوا این وظیفه به JVM یا همان ماشین مجازی جاوا واگذار شده است. ماشین مجازی جاوا حافظه را طی فرآیندی که Garbage collection نامیده می شود مدیریت می کند، بدین صورت که به طور مداوم حافظه بی استفاده توسط نرم افزار را تشخیص می دهد و در صورتی که برنامه به آن نیاز نداشته باشد آن را رها می کند. Garbage collection همزمان با اجرای JVM شروع به کار می کند.بارگذاری و اجرای فایل های کلاس در JVMما در مورد نقش ماشین مجازی جاوا در اجرای برنامه ها صحبت کردیم، اما کلاس ها و متدها چگونه اجرا می شوند ؟ در واقع اجرای یک نرم افزار جاوا بستگی به Java class loader و Java execution engine ماشین مجازی جاوا دارد.سوال: Java class loader ماشین مجازی جاوا چیست‌؟در جاوا همه چیز در کلاس ها خلاصه شده اند، یک نرم افزار جاوا ممکن است از یک تا هزاران کلاس تشکیل شده باشد. به منظور اجرا کردن یک اپلیکیشن، JVM باید فایل class. کامپایل شده را به صورت یک فایل متنی بارگذاری کند که این فرآیند توسط class loader ماشین مجازی جاوا صورت می گیرد.در واقع class loader بخشی از ماشین مجازی جاوا است که کلاس ها را در درون حافظه بارگذاری می کند و این امکان را فراهم می سازد تا کلاس ها برای اجرا در دسترس باشند. همچنین class loader ماشین مجازی جاوا از تکنیک هایی نظیر lazy-loading و caching برای بارگذاری هر چه کارآمدتر کلاس ها در درون حافظه استفاده می کند.موتور اجرایی یا همان execution engine ماشین مجازی جاوازمانی که کلاس لودر بارگذاری کلاس ها در حافظه را با موفقیت انجام داد، ماشین مجازی جاوا شروع به اجرای کدهای هر کلاس می کند. موتور اجرایی JVM کامپوننتی است که به این وظیفه رسیدگی می کند. از اینرو کار موتور اجرایی JVM در لحظه اجرای آن بسیار ضروری است یا به بیانی دیگر برای هر هدف کاربردی که دارید وجود موتور اجرایی JVM انکار ناشدنی است.اجرای کد شامل مدیریت دسترسی به منابع سیستم نیز می شود. موتور اجرایی JVM دقیقا ما بین برنامه در حال اجرا که تقاضای دسترسی به منابع سیستم از جمله دسترسی به فایل ها، شبکه و منابع حافظه و همچنین سیستم عامل که وظیفه ارائه منابع به نرم افزار را دارد قرار می گیرد.اما سوال اصلی اینجاست که موتور اجرایی JVM چگونه منابع سیستم را مدیریت می کند ؟منابع سیستم می توانند به دو بخش بزرگ تقسیم بندی شوند : حافظه و هر چیز دیگری که در سیستم وجود دارد!به خاطر می آورید که ‌ماشین مجازی جاوا مسئول آزادسازی حافظه بلااستفاده سیستم است و garbage collection مکانیسمی است که این کار را انجام می دهد. وظیفه دیگری که JVM دارد تخصیص و نگهداری ساختارهای مرجعی است که برنامه نویس یا توسعه دهنده مجاز به استفاده از آنها است. برای مثال موتور اجرایی جاوا مسئول گرفتن چیزی شبیه کلمات کلیدی جدید در جاوا و تبدیل آن به یک درخواست از سیستم عامل برای اختصاص حافظه است. به غیر از حافظه، موتور اجرایی جاوا چیزهایی مثل دسترسی به فایل سیستم ها و ورودی خروجی های شبکه را نیز مدیریت می کند. نکته دیگری که دانستن آن خالی از لطف نیست این است که موتور اجرایی JVM همیشه با سیستم عامل در تعامل است. این بدان معناست که هر بار نرم افزار جاوا ما درخواست منابع از سیستم را دارد موتور اجرایی JVM  باید نسبت به سیستم عامل نیز پاسخگو باشد.سخن پایانیدر سال ۱۹۹۵، ماشین مجازی جاوا دو مفهوم انقلابی را معرفی کرد که بعدا  تبدیل به یک استاندارد در برنامه نویسی مدرن شد: مفهوم &quot;یکبار بنویس و هر جایی اجرا کن&quot; و مدیریت اتوماتیک حافظه. تصور کنید که پدربزرگان برنامه نویس ما نسلی بوده اند که باید خودشان منابع حافظه سیستم را مدیریت می کردند و حالا ما نسلی هستیم که با garbage collector رشد کرده ایم.از دیدگاه من جیمز گاسلینگ و برندان ایچ بی شک بنیانگذاران برنامه نویسی مدرن بوده اند و این در حالی است که هزاران نفر طی دو دهه بر پایه ایده آنها به توسعه نرم افزار می پردازند.با این حال علی رغم اینکه ماشین مجازی فقط برای جاوا توسعه پیدا کرده است، اما دامنه استفاده از آن به سایر زبان های برنامه نویسی از جمله Scala ، Groovy و Kotlin گسترش پیدا کرده است. راستش دوست دارم چشم انتظار آینده باقی بمانم. جایی که امیدوارم ماشین مجازی دیگر تکنولوژی برجسته ای در دنیای برنامه نویسی نباشد !</description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Mon, 23 Jul 2018 22:38:37 +0430</pubDate>
            </item>
                    <item>
                <title>برای یادگیری جاوا از کجا باید شروع کنم؟</title>
                <link>https://virgool.io/Software/how-to-learn-java-ai2ysegurtoj</link>
                <description>من امین کمپانی هستم و قصد دارم که مروری داشته باشم بر آنچه که شما برای یادگیری زبان برنامه نویسی جاوا به آن نیاز دارید. بیش از ۳ سال از انتشار این مطلب می گذرد و این احساس به خود من هم دست داده بود که این مطلب را باید برای سال ۱۴۰۰ بروز رسانی کنم که البته این موضوع بی ارتباط با خبری که اواسط مقاله متوجه آن خواهید شد نیست. شخصا از زمانی که علاقمند به یادگیری یک زبان برنامه نویسی شدم همواره با چالش ها و سوالات مختلفی روبرو شده ام و همه اینها باعث شد که تجربیات زیادی در این راه کسب کنم. این تجربیات شاید بتواند برای شما هم که قصد دارید برنامه نویسی به زبان جاوا را آغاز کنید مفید باشد.در ابتدا پاسخ دادن به چند سوال حائز اهمیت است :برای شروع به چه چیزهایی نیاز دارم ؟منابع فارسی و انگلیسی که در اختیار دارم چیست ؟کتاب، کلاس یا دوره های آنلاین ؟چقدر نیاز دارم که زبان انگلیسی ام را برای یادگیری جاوا تقویت کنم ؟آیا می توانم بدون شرکت در کلاس یا دوره های آموزش برنامه نویسی جاوا یاد بگیرم ؟نقش کار و تجربه در یادگیری برنامه نویسی چیست ؟چقدر زمان لازم دارم تا یک برنامه نویس حرفه ای جاوا شوم ؟در قدم اول به آنچه که برای شروع نیاز دارید می پردازیم. در زبان برنامه نویسی جاوا کدها ابتدا به صورت بایت کد کامپایل می شوند و سپس توسط JVM یا ماشین مجازی جاوا تبدیل به کدهای ماشین می شوند. به خاطر همین ویژگی هم هست که زبان برنامه نویسی جاوا به هیچ سیستم عاملی وابسته نیست و برنامه های ساخته شده به زبان برنامه نویسی جاوا قابل اجرا بر روی هر کامپیوتر و یا سیستم عاملی است. پس بر خلاف زبان های برنامه نویسی .Net شما می توانید روی هر کامپیوتر فارغ از اینکه از سیستم عامل لینوکس، ویندوز و یا مکینتاش بهره می برد شروع به برنامه نویسی کنید.قدم بعدی نصب JDK یا همان Java Development kit هست که شما برای کامپایل کردن کدها و استفاده از کتابخانه عظیم جاوا به آن نیاز دارید. متاسفانه به دلیل تحریم امکان دانلود مستقیم JDK از سایت اوراکل وجود ندارد و شما باید از طریق روش هایی که قطعا بهتر از من می دانید تحریم ها را دور بزنید.محیط های توسعه نرم افزارهای جاوادر نهایت هم باید یک IDE یا محیط توسعه یکپارچه مناسب برای شروع برنامه نویسی با جاوا انتخاب کنید. اگر فقط یک گزینه برای انتخاب داشته باشم قطعا Intellij شاهکار شرکت JetBrains را انتخاب می کنم. نسخه Community آن را می توانید از طریق لینک زیر به رایگان دانلود کنید.https://www.jetbrains.com/idea/download/برای نسخه Enterprise باید هزینه آن را پرداخت کنید و یا از روش های دیگری استفاده کنید که این به خود شما بستگی دارد.اگر به دنبال یک محیط توسعه نرم افزار با امکان طراحی ویژوال هستید بهترین انتخاب NetBeans خواهد بود. آخرین نسخه NetBeans را هم می توانید از طریق لینک زیر دانلود کنید.https://netbeans.org/downloads/نسخه Java EE تمام نیازهای شما را برای شروع برنامه نویسی به زبان جاوا فراهم خواهد کرد. در نهایت به سراغ  Eclipse  می ریم. شاید بهترین گزینه برای کار و توسعه نرم افزارهای تحت وب با جاوا انتخاب Eclipse باشد. Eclipse  را نیز می توانید از طریق لینک زیر دانلود کنید.https://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1شاید برایتان این سوال بوجود آمده باشد که کدام یک از موارد بالا انتخاب بهتری برای شروع هستند ؟هماهنطور که گفتم Intellij بهترین انتخاب است. برای یادگیری Java SE همه نیازهای شما را برآورده می کند. پس در قدم دوم بعد از نصب JDK  جاوا به سراغ نصب Intellij  بروید.منابع آموزشی جاوادر عصر حاضر منابع زیادی برای مطالعه و یادگیری یک زبان برنامه نویسی وجود. کتاب ها، دیسک های آموزشی، کورس های آنلاین آموزش برنامه نویسی جاوا و ...شخصا فکر می کنم که برای شروع به یادگیری یک زبان برنامه نویسی قبل از مراجعت به یک کلاس آموزشی بهتر است که حداقل اطلاعات مقدماتی را از مفاهیم پایه زبان برنامه نویسی که می خواهید یاد بگیرید به دست بیاورید. کتاب ها و دوره های آنلاین رایگان بهترین انتخاب برای این مورد هستند.اگر بخواهم بهترین کتاب موجود در بازار ایران را برای یادگیری زبان برنامه نویسی جاوا به شما معرفی کنم قطعا راهنمای جامع برنامه نویسی دایتل بهترین انتخاب خواهد بود. این کتاب را انتشارات آیلار و ناقوس به چاپ رسانده اند که البته چند فصل پایانی کتاب منتشر شده توسط انتشارات ناقوس نسبت به نسخه اصلی کتاب حذف شده است. در تماسی که با انتشارات ناقوس داشتم علت را جویا شدم و آنها کاهش قیمت کتاب را دلیل حذف چند فصل آخر کتاب معرفی کردند. در هر حال می توانید این کتاب را با فصل های کامل  کتاب اصلی از انتشارات آیلار خریداری کنید.How TO PROGRAM JAVAکتاب ۱۳۲۵ صفحه ای دایتل منبع کاملی است از تمام چیزهایی که شما برای یادگیری جاوا مقدماتی به آن نیاز دارید. کتاب با دستورات ساده جاوا آغاز می شود و با آموزش عبارات کنترلی، نحوه نگارش متد ها و کار با رشته ها، آرایه ها و فایل ها ادامه پیدا می کند. در بخش های بعدی کتاب به مفاهیم کلاس ها و شی ها، وراثت و چندریختی و رسیدگی به استثناها پرداخته می شود و در نهایت با مفاهیم دسترسی به پایگاه داده با استفاده از JDBC، برنامه های وب با JSF برنامه های وب با JSF  بر پایه AJAX و همچنین سرویس های وب خاتمه می یابد. اگر زبان انگلیسی قوی دارید حتما نسخه اصلی و آخرین ویرایش این کتاب را مطالعه کنید تا با آخرین تکنولوژی های این زبان آشنا شوید و البته مشکل سانسور شدن کتاب به علت جلوگیری از افزایش قیمت کتاب را هم نخواهید داشت.دوره های آنلایندوره های آنلاین منابع آموزشی دیگری هستند که می توانید از آنها استفاده کنید. دوره های آنلاین رایگان خوبی وجود دارند که می توانید در آنها شرکت کنید، به بحث و گفت و گو بپردازید و در نهایت بعد از گذراندن کامل دوره مدرک پایان دوره آنلاین دریافت کنید. خوب در ابتدا به سراغ دوره های آنلاین به زبان انگلیسی می رویم.سولو لرناز جهاتی solo learn رو دوست دارم. نرم افزارهای موبایل آن هم روی Android و هم روی IOS قابل نصب است. به همین دلیل حتی در زمانی که در مترو یا اتوبوس هستید می توانید به مطالعه زبان برنامه نویسی مورد علاقه خود بپردازید. شیوه کار solo learn به این صورت است که یک درس یا یکی از مفاهیم زبان برنامه نویسی جاوا را به ساده ترین زبان ممکن به شما آموزش می دهد و پس از آن با پرسیدن سوالی در مورد همان مبحث مطمئن می شود که شما آن مبحث را یاد گرفته اید. نکته جذاب در مورد solo learn فروم فعال این وب سایت است که در مورد هر مبحث آموزشی این امکان را به شما می دهد که به بحث بپردازید و یا کدهایی که آنلاین نوشته اید را با دیگران به اشتراک بگذارید. البته solo learn نکات منفی هم دارد و شاید بزرگترین ایرادی که بشود به این سایت گرفت، مبتدی بودن دوره های آن است و قطعا حتی با گذراندن کامل دوره زبان برنامه نویسی آن یک برنامه نویس کار بلد نخواهید شد بلکه صرفا به شخصی تبدیل خواهید شد که با مفاهیم پایه برنامه نویسی آشنا شده است.کد آکادمیکد آکادمی یکی از سایت هایی است که من معمولا به کسانی که آشنایی زیادی با کامپیوتر و برنامه نویسی ندارند معرفی می کنم . پس از ثبت نام در این وب سایت می توانید به طور رایگان دوره مورد نظر خودتان را انتخاب کنید و به یادگیری آن بپردازید. از نکات جالب آن این است که می توانید کدهای خود را به صورت آنلاین در همین وب سایت بنویسید و نتیجه آن را مشاهده کنید. همچنین بخش هایی برای رفع اشکال کد های شما و راهنمایی برای نوشتن کدی بهتر در نظر گرفته شده است. از نکات مثبت این وب سایت می توان به سبک و زبان ساده خالقین دوره های آن اشاره کرد.سایت های معتبر دوره های آنلاین زبان برنامه نویسی جاواقطعا نام سایت های آموزشی مثل Udemy، Coursera، Udacity،Lynda، Pluralsight و ... به گوشتان خورده است. اینها همگی سایت هایی هستند که بهترین دوره های آموزشی زبان برنامه نویسی در آنها برگزار می شود. اگر خوش شانس باشید و بتوانید پرداخت ارزی داشته باشید می توانید در دوره های این سایت ها شرکت کنید و مدرک پایان دوره آنها را که گاها با مشارکت شرکت ها و دانشگاه های معتبر ارائه می شوند دریافت کنید. البته قبل از اینکه هرگونه وجهی را به حساب این سایت ها واریز کنید شرایط را به صورت کامل مطالعه کنید زیرا ممکن است زمانی که متوجه شوند از ایران هستید مدرکی به شما ارائه نکنند. نکته ای که باید به آن توجه داشته باشید این است که گول چرب زبانی این سایت ها مبنی بر پیدا کردن کار یا موفقیت های آتی را نخورید. مدارکی که از طریق این وب سایت ها دریافت می کنید به غنی تر شدن رزومه شما قطعا کمک خواهند کرد ولی این بدان معنا نیست که می توانند دلیلی برای اینکه به شما کار بدهند باشد! داشتن این مدارک خوب هست ولی کافی نیست. این اطلاعات را با مشورت با بسیاری از دوستان خودم که در خارج از کشور مشغول کار و تحصیل هستند بدست آورده ام و از آنجایی که بر اساس تجربه های واقعی نگاشته شده اند می توانید روی آن حساب باز کنید. در هر حال اگر مدرک برای شما اهمیت زیادی ندارد و تنها به دنبال کسب دانش هستید می توانید از سایت های دانلود ایرانی برخی از این دوره ها را دانلود کنید که من برای اینکه به حق ناشر احترام بگذارم از معرفی این سایت ها پرهیز خواهم کرد، اما می توانید با ارسال ایمیل در رابطه با آنها از من سوال بپرسید.سایت های آموزش زبان برنامه جاوا به فارسیوب سایت ها و دوره های آنلاین فارسی خوبی هم برای یادگیری زبان برنامه نویسی جاوا وجود دارد که با پرداخت مبلغ نه چندان زیادی می توانید در این دوره های آنلاین شرکت کنید. فرادرس یکی از همین وب سایت هاست. مدرس دوره برنامه نویسی جاوا این وب سایت دکتر سید مصطفی کلامی هریس یکی از موسسان همین وب سایت است. با مروری بر سر فصل های آموزشی این دوره متوجه شدم که برای شروع یادگیری جاوا فرادرس انتخاب خوبی است . همچنین توجه به اینکه بیش از ۸۰۰۰ نفر تا این لحظه این دوره را تهیه کرده اند، نشان از موفقیت این دوره دارد. سکان آکادمی انتخاب دیگر شما خواهد بود. کامنت های مثبت زیادی از دوستان و کسانی که در این دوره ثبت نام کرده اند دریافت کرده ام که این نشان دهنده موفقیت آمیز بودن این دوره است. با نگاهی به سرفصل های آموزشی دوره جاوا این وب سایت متوجه شدم که این دوره حرف های زیادی برای گفتن دارد. مدرس این دوره بهزاد مرادی است که به قول خودش در نهایت زبان برنامه نویسی PHP را انتخاب کرده است و از انتخاب خود نیز راضی است !سایت دیگری که که خیلی از دوستان تاکید داشتند که جای آن در مقاله خالیست سایت جاوا کاپ است.  نکته جذابی که در مورد این سایت وجود دارد اینست که تمام ویدئوهای آموزشی موجود در این سایت کاملا رایگان هستند و شما می توانید بدون پرداخت هیچ هزینه ای ویدئو ها و اسلایدهای به نمایش درآمده در آن را به رایگان دانلود کنید. نکته جالب دیگری که می توانم به آن اشاره کنم در نظر گرفتن یک سری تمرینات در پایان هر ویدئو آموزشی است که پاسخ دادن به آنها می تواند کمک شایانی به پیشرفت شما کند. در پایان هر ویدئو کلیدواژه هایی که جستجو آنها در گوگل و سایت StackOverFlow به شما در جهت درک بهتر مفاهیم کمک می کند آمده است. استاد این دوره آموزشی رایگان هم دکتر صادق علی اکبری هستند. اما فعالیت های جاوا کاپ به همین جا محدود نمی شود. برگزاری مسابقات و معرفی فرصت های شغلی از دیگر چیزهایی هستند که به جذابیت های این سایت بیش از پیش می افزایند. تنها نقطه ضعف این سایت شاید بخش مربوط به آموزش جاوا EE  باشد که متاسفانه در این بخش از ویدئوهای آموزشی دیگر خبری نیست و جاوا کاپ فقط به معرفی چند لینک رفرنس آموزشی بسنده کرده است که امیدواریم در آینده شاهد ویدئوهای آموزشی در این بخش نیز باشیم.کلاس ها و دوره های آموزشی جاوادر نهایت فکر می کنم که اگر می خواهید جاوا را به بهترین نحو ممکن یاد بگیرید ناگزیر هستید که به یکی از کلاس های آموزش برنامه نویسی جاوا بروید. اما بهترین انتخاب برای یک دوره آموزشی خوب چیست ؟ با مروری بر دوره های آموزشی زبان برنامه نویسی جاوا به این مسئله خواهیم پرداخت. البته این یک لیست کامل از تمام آموزشگاه ها نیست. بنابراین از تجربیات شما برای تکمیل این بخش استفاده خواهم کرد.دوره جاوا آموزشگاه تحلیل دادهآموزشگاه تحلیل داده یکی از قدیمی ترین و محبوب ترین آموزشگاه ها در زمینه مهندسی کامپیوتر و برنامه نویسی است. برای سال ها یکی از برجسته ترین اساتید برنامه نویسی زبان برنامه نویسی جاوا آقای میثم محمدی در این آموزشگاه تدریس می کردند. شاگردان بسیاری در کلاس های ایشان شرکت کرده اند و پس از آن جذب بازار کار شدند و یا از ایران مهاجرت کرده‌اند. حتی خود من هم افتخار این را داشتم که سال ها پیش در کلاس های ایشان شرکت کنم. خبر بد این است که ایشان دیگر تدریس نمی کنند و خبر خوب این است که در سال ۱۴۰۰ من به جای ایشان در این آموزشگاه در خدمت شما هستم. پس از سال ها کار و تدریس در زمینه زبان برنامه نویسی جاوا بالاخره این افتخار نصیب من شد که از طریق آموزشگاه تحلیل داده در خدمت شما باشم. برای سرفصل های دوره زحمت زیادی کشیده شده است و تلاش شده است که هر دو گروهی که قصد دارند در بازار ایران مشغول به کار شوند و کسانی که قصد مهاجرت و شرکت در آزمون های بین المللی را دارند در نظر گرفته شود. همچنین تلاش کردیم که افراد مبتدی تا پیشرفته را برای این دوره ها در نظر بگیریم. نکته دیگری که گفتن آن خالی از لطف نیست این است که این دوره ها به دلیل شرایط کرونا هم به صورت آنلاین و هم به صورت حضوری برگزار می شوند. از آنجایی که این دوره توسط خودم برگزار می شود می توانم ساعت ها در رابطه با آن با شما صحبت کنم ولی بهتر است که برای کسب اطلاعات بیشتر سری به سایت تحلیل داده بزنید یا با آنها تماس بگیرید. اطلاعات خوبی در رابطه با دوره و نحوه برگزاری آن به شما خواهند داد.مدرسه جاوا دانشگاه تهرانامیرسام بهادر را خیلی ها می شناسند. سال هاست که در زمینه آموزش زبان برنامه نویسی جاوا فعالیت می کند. با نگاهی به سایت مدرسه جاوا دانشگاه تهران با ۷ دوره مختلف که همگی را امیرسام بهادر برگزار می کند روبرو می شویم. این دوره ها شامل کلاس جاوا مقدماتی، کلاس جاوا پیشرفته، کلاس امنیت و جاوا، کلاس جاوا تکمیلی + امنیت در جاوا، کلاس مهندسی نرم افزار در جاوا، کلاس پایگاه داده اوراکل و کلاس جاوا و هوش مصنوعی می شود. با توجه به گستردگی موضوعات مختلف که کلاس های امیرسام بهادر پوشش داده است این دوره ها هم می تواند گزینه ای ایده آل برای شروع یادگیری زبان برنامه نویسی جاوا باشد. گذشته از اینها امیرسام بهادر نیز فردی با تجربه و حرفه ای در این زمینه هست که می تواند شما را حسابی در مسیری که انتخاب کرده اید کمک کند.دوره جاوا لایتک دانشگاه صنعتی شریفدوره های برنامه نویسی لایتک طی ۴ دوره برگزار می شود.جاوا مقدماتی Java SE (برنامه نویسی Desktop)مهندسی نرم افزار در جاواامنیت در جاواجاوا تکمیلی Java EE II (برنامه نویسی در مقیاس ملی)طی سالیان گذشته این دوره توسط امیر سام بهادر که در زمینه تدریس زبان برنامه نویسی جاوا فردی شناخته شده است برگزار می شد اما با بررسی که اخیرا در سایت لایتک شریف داشتم در قسمت نام استاد گروه لایتک به عبارت اساتید دپارتمان برنامه نویسی بسنده کرده اند. با کلیک بر روی نام اساتید دپارتمان برنامه نویسی متوجه شدم که رزومه برخی از اساتید دپارتمان ارتباطی با زبان برنامه نویسی جاوا ندارد. به عنوان مثال دکتر حسن سلطانی دارای مدرک DBA  و کارشناسی ارشد مدیریت بازاریابی هستند و اشاره دیگری به سوابق ایشان در زمینه برنامه نویسی نشده است. با توجه به این موارد نمی توانم نظر دقیقی در رابطه با دوره نظر داشته باشم. بنابراین از شما عزیزان که در این دوره ها شرکت کردید تقاضا دارم که در کامنت ها نظر خود را بیان کنید تا دیگران هم بتوانند از آن استفاده کنند.سخن پایانیبی شک جاوا یکی از محبوب ترین زبان های برنامه نویسی دنیا شناخته می شود. منابع معتبر همواره خبر از محبوبیت جاوا در بین شرکتها و توسعه دهنده گان نرم افزار دارند. شاخص معتبر TIOBE در تابستان 2018 اعلام نمود که زبان جاوا ، همچنان رتبه اول در میان تمامی زبانهای برنامه نویسی را دارد. در پاسخ به اینکه چقدر زمان برای حرفه ای شدن در جاوا نیاز دارید باید بگویم که این به خود شما بستگی دارد. زبان انگلیسی قوی قطعا فرآیند یادگیری شما را سریعتر می کند و این امکان را به شما می دهد که با جدیدترین تکنولوژی هایی که این زبان برنامه نویسی در اختیار شما قرار می دهد آشنا شوید. شما در نهایت قدم در دنیای بی پایانی می گذارید که حتی با سال ها کار و تجربه عملی قادر به کشف همه ابعاد آن نخواهید بود. بهترین تجربیات در این راه نیز تجربیات عملی و پروژه های واقعی هستند. قرار گرفتن در پروژه های واقعی شما را با چالش های واقعی و نیاز مشتریان و مدیران شما آشنا می کند و شما را وادار می سازد که به تحقیق و پیدا کردن راه حل های منطقی بپردازید. قطعا وب سایت StackOverFlow یکی از بهترین گزینه ها برای این مورد است. سایت دیگری که قطعا در ادامه این راه برایتان جذاب خواهد بود mkyong است. این وب سایت یکی از بهترین ها برای انواع مثال ها و راه حل های جاوا است که در زمان های مختلف می تواند مفید باشد. </description>
                <category>Amin Company</category>
                <author>Amin Company</author>
                <pubDate>Sat, 14 Jul 2018 10:54:45 +0430</pubDate>
            </item>
            </channel>
</rss>