انجمن جاواکاپ
2.29K subscribers
825 photos
12 videos
17 files
152 links
کانال رسمی انجمن جاواکاپ

ادمین: @JavaCupAdmin

رسانه‌های جاواکاپ👇
سایت
javacup.ir

اینستاگرام
instagram.com/javacup.ir

لینکدین
shorturl.at/csty2
shorturl.at/atBN7

توییتر
twitter.com/javacupir
Download Telegram
کارگاه #عملیات_معماری_نرم‌افزار در #بهکامپ
مهندس سید جمال‌الدین پیشوایی
دکتر صادق علی‌اکبری

@JavaCupIR
با نیم‌نگاهی به مباحث پایه در جاوا، از امروز تا شروع ششمین دوره آزمون‌های جاواکاپ، هر هفته یک #دستگرمی داریم.
با کمک این دستگرمی‌ها، می‌تونی تا قبل از آزمون، نقاط ضعفت رو شناسایی و در زمان باقی‌مونده خودت رو تقویت کنی.

@JavaCupIR
در نظرسنجی زیر شرکت کنید.
پنج‌شنبه پاسخ صحیح را اعلام کرده و توضیح می‌دهیم.

#دستگرمی_سه‌شنبه

@JavaCupIR
به نظر شما، خروجی برنامه برنامه فوق کدام گزینه است؟
Final Results
18%
۰۰
15%
۱۰
10%
۱۱
24%
۱۲
8%
۲۱
25%
۲۲
انجمن جاواکاپ
در نظرسنجی زیر شرکت کنید. پنج‌شنبه پاسخ صحیح را اعلام کرده و توضیح می‌دهیم. #دستگرمی_سه‌شنبه @JavaCupIR
پاسخ صحیح: ۲۲

برای رسیدن به خروجی، متد method را خط به خط بررسی می‌کنیم:
خط 1: متغیرهای t1 و t2 هنوز new نشده‌اند.

خط 2: متغیر i برابر با 66 است بنابراین l1 برابر با 66 می‎شود. در مورد ++l2=l1، باید توجه داشت که چون ++بعد از اسم متغیر آمده، ابتدا l2 برابر با l1 یعنی 66 می‌شود و سپس مقدار l1 یک واحد افزایش یافته و برابر با 67 می‌شود. بنابراین در انتهای اجرای این خط، داریم: l1=67 و l2=66

خط 3: یک شی جدید از کلاس Program ایجاد می‌شود و در نتیجه آن بلوک مقداردهی اولیه هم اجرا شده و مقدار متغیر استاتیک i برابر با 65 می‌شود.

خط 4: خواهیم داشت: 67-65=2. پس عدد 2 در خروجی چاپ می‌شود.

خط 5: یک شی جدید از کلاس Program ایجاد می‌شود و در نتیجه آن، بلوک مقداردهی اولیه هم اجرا شده و مقدار متغیر استاتیک i برابر با 64 می‌شود.

خط 6: خواهیم داشت: 66-64=2. پس عدد 2 در خروجی چاپ می‌شود.

چند نکته:
📌 با load کلاس در حافظه، متغیرهای استاتیک مقداردهی می‎شوند.

📌 هرگاه یک شی جدید ایجاد شود، بلوک مقداردهی اولیه اجرا می‌شود. پیشنهاد می‌شه اسلایدهای جلسه ۶ آموزش جاوا از صفحه ۲۲ تا ۲۷ را مرور کنید.
http://javacup.ir/wp-content/uploads/2015/08/06_ObjectsLifeCycle.pdf

#دستگرمی_سه‌شنبه
@JavaCupIR
انجمن جاواکاپ
Photo
اسلایدها و فایل صوتی کارگاه آموزشی 《عملیات معماری نرم‌افزار》 منتشر شد.
http://asta.ir/software-architecture

@JavaCupIR
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی رو کد دوستت کار می‌کنی 😡
@JavaCupIR
در نظرسنجی زیر شرکت کنید.
پنج‌شنبه پاسخ صحیح را اعلام کرده و توضیح می‌دهیم.

#دستگرمی_سه‌شنبه

@JavaCupIR
به نظر شما، خروجی برنامه فوق کدام گزینه است؟
Final Results
6%
1
4%
2
7%
3
46%
10
6%
11
24%
12
1%
19
4%
20
#مقاله
انواع روش‌های مرتب‌سازی مجموعه‌ها با استفاده از عبارات لامبدا

http://bit.ly/sorting-lambda

@JavaCupIR
انجمن جاواکاپ
به نظر شما، خروجی برنامه فوق کدام گزینه است؟
پاسخ صحیح: 10

برای رسیدن به پاسخ صحیح، متد main را خط به خط بررسی می‌کنیم:
خط ۷: سه شی مختلف ایجاد شده و در آرایه‌ای از نوع Object ریخته می‌شوند. می‌دانید که در جاوا، کلاس Object پدر تمام کلاس‌ها است.
خط ۸: متغیر result با مقدار اولیه 0 ایجاد شده.
خط ۹: به ازای هر یک از اشیای موجود در آرایه objs، بدنه این حلقه اجرا می‌شود و مهم است بفهمیم که در هر بار اجرا، مقدار متغیر result چه تغییری می‌کند.
• اجرای اول:
obj = “”
در خط 11، رشته خالی نمونه‌ای از B نبوده و قابل Cast شدن به A هم نیست. بنابراین، ClassCastException پرتاب شده و خط 14 اجرا می‌شود. به این ترتیب، result = 1 خواهد بود.
• اجرای دوم:
obj = new D()
در خط 11، obj نمونه‌ای از D است و در نتیجه از نوع B نیز هست؛ بنابراین Cast می‌شود به B.
ولی به‌هرحال obj از نوع D است و در خط 12، متد f از کلاس D اجرا می‌شود. در نتیجه مقدار result برابر با 11 خواهد شد.
• اجرای سوم:
obj = null
در اثر اجرای خط 11، مقدار test هم برابر null می‌شود. پس در خط 12 استثنای NullPointerException پرتاب می‌شود و مقدار result یک واحد کم شده برابر با 10 می‌شود.
خط 19: مقدار 10 در خروجی چاپ می‌شود.

#دستگرمی_سه‌شنبه
@JavaCupIR
در نظرسنجی زیر شرکت کنید.
پنج‌شنبه پاسخ صحیح را اعلام کرده و توضیح می‌دهیم.
پ ن: گول شلوغی رو نخورید، خیلی ساده‌ست!
#دستگرمی_سه‌شنبه

@JavaCupIR
به نظر شما، خروجی برنامه فوق کدام گزینه است؟
Final Results
16%
winter
17%
spring
41%
summer
10%
winter summer
16%
spring summer