• OOP چیست؟
  • شی چیست؟
  • اصول اولیه OOP چیست؟
  • ارث چیست؟
  • پلی مورفیسم چیست؟ چه تظاهرات چندشکلی در جاوا را می شناسید؟
  • کپسولاسیون چیست؟
  • انتزاع چیست؟
  • زبان های برنامه نویسی شی گرا چه مزایایی دارند؟
  • چگونه استفاده از رویکرد شی گرا توسعه نرم افزار را بهبود می بخشد؟
  • یک عبارت "است" و "دارا" وجود دارد. منظور آنها از نظر اصول OOP چیست؟ تفاوت بین ترکیب و تجمیع چیست؟
  • منظور شما از پلی مورفیسم، کپسوله سازی و اتصال دینامیکی چیست؟

هسته جاوا

  • تفاوت بین JRE، JVM و JDK چیست؟
  • اصلاح کننده های دسترسی را در جاوا توضیح دهید.
  • دسترسی در سطح بسته چیست؟
  • یک کلاس انتزاعی چه تفاوتی با یک رابط دارد؟ در چه مواردی از کلاس انتزاعی و در چه مواردی از رابط استفاده می کنید؟
  • آیا یک شی می تواند به متغیر کلاس خصوصی دسترسی پیدا کند؟ اگر بله، پس چگونه؟
  • چرا بلوک های استاتیک در جاوا وجود دارد؟
  • آیا امکان اضافه بارگذاری روش استاتیک وجود دارد؟
  • از کلاس های داخلی برایمان بگویید. چه زمانی از آنها استفاده خواهید کرد؟
  • تفاوت بین یک متغیر نمونه و یک متغیر استاتیک چیست؟ مثال زدن.
  • زمانی که می توانید از روش ایستا استفاده کنید مثال بزنید؟
  • در مورد کلاس های لودر و بارگذاری کلاس پویا به ما بگویید.
  • عبارت “assert” در جاوا چیست؟
  • چرا برخی از اینترفیس ها اصلاً متدها را تعریف نمی کنند؟
  • تفاوت اصلی بین String، StringBuffer، StringBuilder چیست؟
  • در مورد جریان های ورودی/خروجی جاوا توضیح دهید.
  • حافظه Heap and Stack در جاوا چیست؟
  • تفاوت حافظه پشته و هیپ در جاوا چیست؟
  • در مورد مدل حافظه در جاوا بگویید؟
  • زباله جمع کن چگونه کار می کند؟
  • در مورد نوع ریخته گری به ما بگویید. تنزل نوع و ترفیع چیست؟ چه زمانی یک ClassCastException دریافت می کنید؟
  • کلاس استاتیک چیست، استفاده از آن چه ویژگی هایی دارد؟
  • نحوه دسترسی به یک فیلد از یک کلاس خارجی از یک کلاس تودرتو.
  • چه نوع کلاس های تو در تو وجود دارد؟ آنها برای چه مواردی مناسبند؟
  • آیا امکان تغییر در هنگام لغو یک روش وجود دارد:
  • اصلاح کننده دسترسی
  • نوع برگشت
  • نوع یا کمیت استدلال
  • نام آرگومان
  • آیا باید ترتیب، مقدار را تغییر دهم یا بخش پرتاب را به طور کلی حذف کنم؟
  • اتوباکسینگ چیست؟
  • ژنریک چیست؟
  • هدف واقعی استفاده از انواع ژنریک در جاوا چیست؟
  • چگونه متغیرها با مقدار یا با مرجع به متدها منتقل می شوند؟
  • کلاس Object چه متدهایی دارد؟
  • قوانین نادیده گرفتن متد () Object.equals.
  • اگر می‌خواهید ()Equals را باطل کنید، چه شرایطی باید برای متد overrid شده رعایت شود؟
  • رابطه بین hashCode و برابر چیست؟
  • متدهای hashCode و برابری چگونه در کلاس Object پیاده سازی می شوند؟
  • اگر هش کد را باطل کنید، چه اتفاقی می‌افتد؟ چه مشکلاتی ممکن است ایجاد شود؟
  • آیا توصیه هایی در مورد اینکه چه فیلدهایی باید هنگام محاسبه هش کد استفاده شود وجود دارد؟
  • متد hashCode() برای چیست؟
  • قوانین نادیده گرفتن متد Object.hashCode() .
  • در مورد شبیه سازی اشیاء به ما بگویید. تفاوت بین شبیه سازی کم عمق و عمیق چیست؟
  • قوانین نادیده گرفتن متد Object.clone()
  • کجا و چگونه می توان از یک سازنده خصوصی استفاده کرد؟
  • سازنده پیش فرض چیست؟
  • متد Object.finalize() را شرح دهید.
  • تفاوت نهایی، نهایی و نهایی چیست؟
  • سلسله مراتب استثناها را شرح دهید.
  • چه نوع استثنایی در جاوا می شناسید، چه تفاوتی با هم دارند؟
  • چه چیزی تیک خورده و تیک Exception را بردارید؟
  • چگونه استثنای بدون علامت خود را ایجاد کنید؟
  • استثناهای Unchecke چیست؟
  • Error چیست؟
  • عملکرد بلوک try-catch-finally را شرح دهید.
  • آیا می توان از یک بلوک try-finally (بدون catch) استفاده کرد؟
  • آیا بلوک نهایی همیشه اجرا می شود؟
  • ویژگی های کلاس String چیست؟ متد intern() چه می کند؟
  • آیا می توان یک نوع رشته را به ارث برد، چرا؟
  • چرا String یک کلید محبوب در HashMap در جاوا است؟
  • مفهوم الحاق رشته را تعریف کنید.
  • چگونه یک رشته را معکوس کنیم؟
  • چگونه مقدار دو رشته را مقایسه کنیم؟
  • چگونه فاصله های ابتدا و انتهای یک خط را کوتاه کنیم؟
  • اصطلاح "استخر رشته" را تعریف کنید.
  • آیا امکان همگام سازی دسترسی به ردیف وجود دارد؟
  • چگونه مقادیر رشته دو شی متفاوت از نوع String و StringBuffer را به درستی مقایسه کنیم؟
  • چرا رشته در جاوا تغییرناپذیر و نهایی شده است؟
  • روشی برای حذف یک کاراکتر از یک رشته بنویسید.
  • انعکاس چیست؟
  • اگر در طول متد ()finalize برخی از شی ها استثنایی رخ دهد، برای جمع کننده زباله (GC) چه اتفاقی می افتد؟
  • بین المللی شدن، بومی سازی چیست؟
  • حاشیه نویسی در جاوا چیست؟
  • Annotation چه عملکردهایی را انجام می دهد؟
  • چه حاشیه نویسی های داخلی در جاوا را می شناسید؟
  • حاشیه نویسی @Retention، @Documented، @Target و @Inherited چه کار می کنند؟
  • حاشیه‌نویسی‌های @Override، @Deprecated، @SafeVarargs و @SuppressWarnings چه می‌کنند؟
  • چه چرخه ای از حاشیه نویسی را می توان با استفاده از @Retention مشخص کرد؟
  • حاشیه نویسی روی چه عناصری قابل اعمال است و چگونه می توانم این را نشان دهم؟
  • چگونه حاشیه نویسی خود را ایجاد کنیم؟
  • چه نوع ویژگی هایی در حاشیه نویسی مجاز است؟
  • JMX چیست؟
  • JMX چه مزایایی ارائه می دهد؟
  • JMX به جز کنترل از راه دور چه کارهای دیگری می تواند انجام دهد؟
  • MBean چیست؟
  • چه نوع MBeans وجود دارد؟
  • سرور MBean چیست؟
  • چه مکانیزم هایی امنیت را در فناوری جاوا فراهم می کنند؟
  • چند نوع بررسی را که تأیید کننده بایت کد جاوا انجام می دهد نام ببرید؟
  • در مورد "مدیر امنیتی" در جاوا چه می دانید؟
  • JAAS چیست؟
  • Refactoring چیست؟

چارچوب مجموعه های جاوا.

  • مجموعه چیست؟
  • رابط های اصلی مجموعه ها و پیاده سازی آنها را نام ببرید.
  • ArrayList چه تفاوتی با LinkedList دارد؟ در چه مواردی استفاده از اولی و در چه مواردی از دومی بهتر است؟
  • HashMap چه تفاوتی با Hashtable دارد؟
  • تفاوت ArrayList و Vector چیست؟
  • عناصر مجموعه چگونه مقایسه می شوند؟
  • رابط های زیر را در یک سلسله مراتب مرتب کنید: List، Set، Map، SortedSet، SortedMap، Collection، Iterable، Iterator، NavigableSet، NavigableMap.
  • چرا Map یک مجموعه نیست در حالی که List و Set مجموعه هستند؟
  • اصطلاح تکرار کننده را تعریف کنید.
  • در مورد رابط Iterable چه می دانید؟
  • چگونه یک HashSet را در یک خط به ArrayList تبدیل کنیم؟
  • چگونه یک ArrayList را در یک خط به HashSet تبدیل کنیم؟
  • با توجه به اینکه نقشه تکرارپذیر نیست، چگونه می توان روی تمام کلیدهای یک نقشه تکرار کرد؟
  • با توجه به اینکه Map تکرارپذیر نیست، چگونه می توان روی همه مقادیر Map تکرار کرد؟
  • با توجه به اینکه Map تکرارپذیر نیست، چگونه می توان روی همه جفت های کلید-مقدار در نقشه تکرار کرد؟
  • SortedMap چگونه "مرتب شده است"، به غیر از این که toString() همه چیز را به ترتیب نمایش می دهد؟
  • چگونه می توان عناصر را از هر مجموعه در یک آرایه با یک تماس کپی کرد؟
  • تفاوت متقارن دو مجموعه را با استفاده از متدهای Collection (addAll()، removeAll()، retainAll()) پیاده سازی کنید.
  • Enumeration و Iterator را با هم مقایسه کنید.
  • Iterable و Iterator چگونه به هم مرتبط هستند؟
  • Iterable، Iterator و "for-each" در جاوا 5 چگونه با یکدیگر مرتبط هستند؟
  • Iterator و ListIterator را با هم مقایسه کنید.
  • اگر Iterator.next() را بدون "پرسیدن" Iterator.hasNext() فراخوانی کنم چه اتفاقی می افتد؟
  • اگر Iterator.next() را قبل از فراخوانی Iterator.hasNext 10 بار فراخوانی کنم چه اتفاقی می افتد؟ آیا من 9 عنصر را از دست داده ام؟
  • اگر من یک مجموعه و یک تکرار کننده فرزند داشته باشم، با فراخوانی iterator.remove() مجموعه تغییر می کند؟
  • اگر من یک مجموعه و یک تکرار کننده فرزند داشته باشم، اگر مجموعه.remove(..) را فراخوانی کنم تکرار کننده تغییر می کند؟
  • اگر قبلاً یک Vector وجود داشت، چرا ArrayList را اضافه کردند؟
  • پیاده سازی کلاس ArrayList دارای فیلدهای زیر است: Object elementData، int size. توضیح دهید اگر همیشه می توانید elementData.length را بگیرید، چرا اندازه را جداگانه ذخیره کنید؟
  • آیا LinkedList یک لیست با پیوند منفرد، یک لیست دارای پیوند دوگانه یا یک لیست چهار پیوندی است؟
  • بدترین زمان اجرای متد contain() برای عنصری که در LinkedList (O(1)، O(log(N))، O(N)، O(N*log(N))، O( N*N))؟
  • بدترین زمان اجرای متد contain() برای عنصری که در یک ArrayList است (O(1)، O(log(N))، O(N)، O(N*log(N))، O چقدر است. (N*N))؟
  • بدترین زمان اجرای متد add() در LinkedList چیست (O(1)، O(log(N))، O(N)، O(N*log(N))، O(N*N)) ?
  • بدترین زمان اجرای متد add() برای ArrayList (O(1)، O(log(N))، O(N)، O(N*log(N))، O(N*N)) ?
  • هنگام فراخوانی()ArrayList.add چند عنصر در حافظه تخصیص داده می شود؟
  • هنگام فراخوانی() LinkedList.add چند عنصر در حافظه تخصیص داده می شود؟
  • مقدار حافظه برای ذخیره یک بایت اولیه در LinkedList را تخمین بزنید؟
  • مقدار حافظه را برای ذخیره یک بایت اولیه در یک ArrayList تخمین بزنید؟
  • من یک عنصر را به وسط لیست اضافه می کنم: list.add(list.size()/2, newElem). برای چه کسانی این عملیات کندتر است - برای ArrayList یا برای LinkedList؟
  • چگونه می توان از طریق عناصر LinkedList به ترتیب معکوس بدون استفاده از دریافت (index) آهسته تکرار کرد؟
  • چگونه می توان با یک تماس از لیست یک لیست با همه عناصر به جز 3 مورد اول و آخر دریافت کرد؟
  • آیا اشیاء مختلف در حافظه (ref0 != ref1) می توانند ref0.hashCode() == ref1.hashCode() داشته باشند؟
  • آیا اشیاء مختلف در حافظه (ref0 != ref1) می توانند ref0.equals(ref1) == true داشته باشند؟
  • آیا ارجاعات مختلف به یک شیء در حافظه (ref0 == ref1) می تواند ref0.equals(ref1) == false داشته باشد؟
  • یک کلاس Point (int x, y;) وجود دارد. چرا کد هش 31 * x + y بر x + y ارجحیت دارد؟
  • اگر کلاس Point(int x, y;) پیاده سازی "درست" متد برابر را داشته باشد (ref0.x == ref1.x && ref0.y == ref1.y را برگردانید)، اما کد هش را به شکل ایجاد کنید. int hashCode() (x;)، پس آیا چنین نقاطی به درستی قرار می‌گیرند و از HashSet بازیابی می‌شوند؟
  • ()quals یک رابطه هم ارزی ایجاد می کند. این رابطه چه ویژگی هایی دارد: جابه جایی، تقارن، انعکاس پذیری، توزیع پذیری، تداعی پذیری، انتقال پذیری؟
  • آیا می توان برابر (Object that) (return this.hashCode() == that.hashCode()) را به این شکل پیاده سازی کرد؟
  • برابر مستلزم بررسی این است که آرگومان (برابر (برابر (Object that)) از نوع خود شی است. تفاوت بین this.getClass() == that.getClass() و آن نمونه MyClass چیست؟
  • آیا می توان متد برابری کلاس MyClass را به این صورت پیاده سازی کرد: کلاس MyClass (بولین عمومی برابر است(MyClass that) (این == آن را برگردانید))؟
  • اگر همه کلیدها int hashCode() را برگردانند (بازگشت 42;) آیا HashMap کار خواهد کرد؟
  • چرا HashMap را اضافه کردند اگر قبلاً Hashtable وجود داشت؟
  • طبق نظر Knuth و Cormen، دو پیاده سازی اصلی جدول هش وجود دارد: آدرس دهی باز مبتنی بر آدرس دهی باز و مبتنی بر زنجیره. HashMap چگونه پیاده سازی می شود؟ چرا آنها این کار را کردند (به نظر شما)؟ مزایا و معایب هر رویکرد چیست؟
  • هنگامی که HashMap.get(key) را روی کلیدی که در یک جدول است انجام می دهید، چند کلیک روی لینک رخ می دهد؟
  • با اضافه کردن یک عنصر جدید به HashMap چند شی جدید ایجاد می شود؟
  • HashMap چگونه کار می کند وقتی می خواهید دو عنصر را با کلیدهایی با کد هش یکسان در آن ذخیره کنید، اما برای آنها == false برابر است؟
  • HashMap می تواند حتی برای کلیدهایی با کدهای هش متفاوت به یک لیست تبدیل شود. چه طور ممکنه؟
  • بدترین زمان اجرای متد get(key) برای کلیدی که در جدول نیست چقدر است (O(1)، O(log(N))، O(N)، O(N*log(N)) , O(N*N ))؟
  • بدترین زمان اجرای متد get(key) برای کلیدی که در جدول است چقدر است (O(1)، O(log(N))، O(N)، O(N*log(N))، O(N*N))؟
  • معنی پارامترها را در سازنده HashMap (int initialCapacity, float loadFactor) توضیح دهید.
  • تفاوت HashMap و IdentityHashMap چیست؟ IdentityHashMap برای چیست؟ چگونه می تواند برای اجرای سریال سازی یا شبیه سازی مفید باشد؟
  • تفاوت HashMap و WeakHashMap چیست؟ WeakHashMap برای چیست؟
  • WeakHashMap از WeakReferences استفاده می کند. چرا یک SoftHashMap در SoftReferences ایجاد نمی کنید؟
  • WeakHashMap از WeakReferences استفاده می کند. چرا یک PhantomHashMap در PhantomReferences ایجاد نمی کنید؟
  • از HashMap یک HashSet بسازید (فقط از مجموعه ای از کلیدها استفاده کنید، نه مجموعه ای از مقادیر).
  • از HashSet یک HashMap بسازید (HashSet >).
  • رابط های java.util.Queue و java.util.Deque را مقایسه کنید.
  • چه کسی چه کسی را گسترش می دهد: صف Deque را گسترش می دهد یا Deque صف را گسترش می دهد؟
  • چرا LinkedList هم List و هم Deque را پیاده سازی می کند؟
  • تفاوت بین کلاس های java.util.Arrays و java.lang.reflect.Array چیست؟
  • تفاوت بین کلاس های java.util.Collection و java.util.Collections چیست؟
  • یک برنامه NOT چند رشته ای بنویسید که باعث می شود یک مجموعه یک ConcurrentModificationException پرتاب کند.
  • "رفتار سریع شکست" چیست؟
  • آیا کلاس خاصی java.util.EnumSet برای مجموعه‌های enums وجود دارد؟ برای چی؟ چرا نویسندگان از HashSet یا TreeSet راضی نبودند؟
  • java.util.Stack - "منسوخ" در نظر گرفته شده است. چه چیزی برای جایگزینی آن توصیه می شود؟ چرا؟
  • کدام مجموعه رشته خدمات FIFO را پیاده سازی می کند؟
  • کدام مجموعه رشته خدمات FILO را اجرا می کند؟
  • زمانی که هر مجموعه ای UnsupportedOperationException را پرتاب می کند مثال بزنید.
  • چرا نمی توانم "ArrayList" بنویسم اعداد = ArrayList جدید ();" اما می توانید "فهرست کنید اعداد = ArrayList جدید ();"?
  • LinkedHashMap - این چه نوع "جانور" است؟ LinkedList چیست و HashMap چیست؟
  • LinkedHashSet - این چه نوع "جانور" است؟ LinkedList چیست و HashSet چیست؟
  • آنها می گویند ایجاد یک کش ساده با "خط مشی عدم اعتبار" در LinkedHashMap آسان است، آیا می دانید چگونه؟
  • PriorityQueue به شما اجازه انجام چه کاری را می دهد؟
  • تفاوت بین java.util.Comparator و java.lang.Comparable چیست؟

جاوا 8.

  • پیوند نمادین چیست؟
  • تفاوت بین I/O و NIO چیست؟
  • چه ویژگی های NIO را می شناسید؟
  • چه نوع جریان های ورودی/خروجی وجود دارد؟
  • کلاس های اصلی جریان های ورودی/خروجی را نام ببرید.
  • تفاوت چیست و OutputStream، InputStream، Writer، Reader چه مشترکاتی دارند؟
  • چه زیر کلاس های کلاس پایه InputStream را می شناسید و چه کاری انجام می دهند؟
  • درباره RandomAccessFile چه می دانید؟
  • RandomAccessFile چه حالت های دسترسی به فایل دارد؟
  • چه زیر کلاس های کلاس پایه OutputStream را می شناسید و چه کاری انجام می دهند؟
  • PushbackInputStream برای چه مواردی استفاده می شود؟
  • SequenceInputStream برای چه مواردی استفاده می شود؟
  • چه زیر کلاس‌هایی از کلاس پایه Reader را می‌شناسید و برای چیست؟
  • چه زیر کلاس های کلاس پایه Writer را می شناسید و چه کار می کنند؟
  • مسير مطلق و مسير نسبي چيست؟
  • چه بسته هایی حاوی کلاس های رشته هستند؟
  • در مورد سوپرکلاس ها چه می دانید؟
  • کدام کلاس افزودنی به شما امکان می دهد داده ها را از یک جریان بایت ورودی در قالب انواع داده های اولیه بخوانید؟
  • کدام کلاس افزودنی به شما امکان می دهد با استفاده از بافر سرعت خواندن/نوشتن را افزایش دهید؟
  • چه کلاس هایی به شما اجازه می دهند که جریان های بایت را به جریان کاراکترها و بالعکس تبدیل کنید؟
  • تفاوت بین کلاس PrintWriter و PrintStream چیست؟
  • کدام کلاس برای کار با عناصر سیستم فایل طراحی شده است؟
  • هنگام تعیین یک مسیر در یک سیستم فایل، جداکننده چه کاراکتری است؟
  • چه متدهایی از کلاس File می شناسید؟
  • درباره رابط FileFilter چه می دانید؟
  • چه کلاس هایی به شما اجازه می دهند اشیاء را بایگانی کنید؟

  • هنگام فراخوانی روش همگام‌سازی استاتیک، همگام‌سازی روی چه شیئی انجام می‌شود؟
  • کلمه کلیدی فرار، همگام، گذرا، بومی برای چیست؟
  • اولویت موضوع به چه معناست؟
  • thread های دیمون در جاوا چیست؟
  • منظور از خواباندن جریان چیست؟
  • یک رشته در جاوا در چه حالت هایی می تواند وجود داشته باشد؟ جریان در واقع چگونه کار می کند؟
  • تفاوت بین دو رابط برای اجرای وظایف Runnable و Calable چیست؟
  • تفاوت بین CyclicBarrier و CountDownLatch؟
  • شرط مسابقه چیست؟
  • چگونه می توان موضوع را متوقف کرد؟
  • چه اتفاقی می افتد زمانی که یک رشته یک استثنا می اندازد؟
  • متغیر ThreadLocal چیست؟
  • FutureTask چیست؟
  • تفاوت بین interrupted و isInterrupted؟
  • چرا روش های انتظار و اعلان در یک بلوک همگام نامیده می شوند؟
  • استخر نخ چیست؟
  • تفاوت بین زنده و بن بست؟
  • چگونه می توان بررسی کرد که آیا یک نخ قفل را نگه می دارد؟
  • چگونه می توان یک روگرفت نخ بدست آورد؟
  • چه پارامتر JVM برای کنترل اندازه پشته نخ استفاده می شود؟
  • تفاوت بین synchronized و ReentrantLock؟
  • سمافور چیست؟
  • اگر صف thread pool از قبل پر باشد و شما یک کار ارسال کنید چه اتفاقی می‌افتد؟
  • تفاوت بین متدهای submit() و execute() در یک Thread Pool؟
  • روش مسدود کردن چیست؟
  • ReadWriteLock چیست؟
  • قفل چک دوبل سینگلتون چیست؟
  • چارچوب Fork/Join چیست؟
  • من به سرعت در مورد خودم به شما می گویم. من 25 ساله هستم، متولد کریمه، فئودوسیا. او در مدرسه فنی شهر تحصیل کرد، سپس وارد خارکف شد، مدرک لیسانس گرفت و در سال 2014 به خانه بازگشت. در سال 1393 وارد تحصیلات مکاتبه ای در مقطع کارشناسی ارشد شدم (همه تخصص ها به نوعی با برنامه نویسی مرتبط بودند) و در سال 1394 برای مدت 3 سال برای خدمت پیمانی وارد ارتش شدم. پس از دو سال خدمت سربازی، متوجه شدم که باید چیزی را در زندگی خود تغییر دهم... و سپس در دسامبر 2017 با JavaRush مواجه شدم و شروع به یادگیری مداوم جاوا کردم. در تابستان با گریگوری در دوره های Topjava شرکت می کنم، شروع به شرکت در هر یک از کلاس های او می کنم و تا اواسط سپتامبر دوره سه ماهه باید به پایان می رسید. به طور کلی، در اوایل سپتامبر من به همراه همسرم برای جستجوی کار به عنوان برنامه نویس جاوا به مسکو نقل مکان می کنیم و تا به امروز حدود 10 مصاحبه انجام داده ام. آنچه را که دائماً می پرسند و سؤالاتی که با آنها بمباران شده ام را برای شما می نویسم.

      JDK، JRE، JVM و کامپایلر چیست.داشتن این واجب است. اگر در مصاحبه ای از شما این سوال پرسیده شود و به آن پاسخ ندهید، به احتمال زیاد دیگر چیزی نخواهند پرسید. ویدئویی کوتاه از یوتیوب

      برنامه نویسی شی گرا (OOP).نکته اصلی در اینجا این است که به شما بگوییم چندشکلی چیست. ممکن است از شما بخواهند که این کلمه را ترجمه کنید، سپس باید تعریف آن را بر اساس آن بگویید. شما می توانید همه چیز را از زبان خودتان بگویید. سپس مثال های خود را بیان کنید.

      وراثت چندگانه در جاواجاوا اجازه وراثت چندگانه کلاس ها را نمی دهد، اما اجازه وراثت چندگانه رابط ها را می دهد. در مورد ارث

      متدهای کلاس Object(توصیه می شود به هر روش مستقیماً در خود کد نگاه کنید و به Equals و hashCode توجه کنید). من آن را اینگونه نام بردم: getClass، نهایی کنید (در مورد آن بخوانید، هرگز نمی دانید که چند نفر این سوال را خواهند پرسید، اما به یاد داشته باشید: به نظر من، این یک عصا است)، صبر کنید (کافی است بدانید که 3 روش اضافه بار وجود دارد. ) notify, notifyAll, equals و hashcode (الزامی!! ! 4 قانون مساوی را بدانید و حتما قانون بین برابر و hashCode را بدانید).

      JVM از داخل.حافظه پشته و هیپ.

      کلمه کلیدی جدید چیست و چگونه کار می کند.من مطالب را پیدا نکردم، اما آنها در مورد آن از من پرسیدند، یا بهتر است بگوییم، وقتی مثلاً می نویسیم

      A a = A () جدید
      قبل از مساوی و بعد از مساوی چه اتفاقی می افتد؟

      جمع آوری زباله کار- آنها اغلب نمی پرسیدند، اما وقتی پرسیدند، تا آنجا که من این موضوع را می دانم، شروع به حفاری کردند. مقاله عالی در

      ترتیب مقداردهی اولیه فیلدهای کلاسوالد و فرزند

      مجموعه ها:من باید کاملاً کل سلسله مراتب و کار هر مجموعه را توضیح می دادم.

      سوال این است که تفاوت لیست و مجموعه چیست. مهمترین چیز این است که بگوییم رابط لیست چیست. اگر پاسخ دهید که مجموعه مجموعه ای از اشیاء منحصر به فرد است، کافی نخواهد بود.

      HashMap، HashSet - اندازه اولیه. ظرفیت، loadfactory، null مجاز است یا نه؟ سلول برای یک شی هنگام کار با مجموعه Hash چگونه محاسبه می شود؟ تفاوت بین HashMap و TreeMap (اینکه بگوییم که TreeMap یک مجموعه مرتب شده است، طبق الگوریتم درخت قرمز-سیاه کافی نیست). الگوریتم های درج، حذف، جستجو برای هر مجموعه را بدانید. صف، دک، پشته - به ندرت درباره آنها سؤالاتی از من پرسیده می شد. باید بدانید که رابط کجاست و کلاس‌ها کجا در مجموعه‌ها هستند.

      توجه داشته باشید که Collections یک والد Iterable دارد

      جاوا 8.کاملا مطابق به حداکثرباید همه چیزهایی را که درباره «نوآوری‌های» منتشر شده می‌دانید، جمع آوری کنید 4 سال پیش: اینجا منبع New در جاوا 8 است

      آنها از من در مورد مصرف کنندگان، عملکرد و غیره پرسیدند، سپس در مورد رابط های کاربردی پرسیدند، سپس از من پرسیدند که چگونه حاشیه نویسی خودم را ایجاد کنم، به این معنی که مثلا @SomeAnnotation (نام = .... تعداد =.... )، یعنی نام، شمارش چیست و هنگام ایجاد حاشیه نویسی شما چگونه کار می کنند.

      ژنریک ها. همه چیز در مورد ژنریک همه جا می پرسند.

      موضوعات. Thread، Runnable، تفاوت چیست، چگونه یک موضوع را شروع کنیم. همه چیز در مورد همگام سازی است. موتکس، مانیتور، کلاس قفل. بن بست زمانی که اتفاق می افتد، آن مثال ها را بیاورید.

      سلسله مراتب استثناهای علامت زده/بدون علامت، کلاس استثنای خود را بنویسید.

      نهایی، نهایی کردن (دوباره)، تغییر ناپذیر، در نهایت. هنگامی که بلوک نهایی شکست می خورد.

      نحوه غیرفعال کردن وراثت کلاس(سازندگان خصوصی، کلاس پایانی...).

      رشته های IO/NIO.

      الگوها. حداقل 5 مورد اصلی (mvc، کارخانه، دکوراتور، تک تن، مشاهدهگر) را یاد بگیرید.

      فنر ioc، دی، ioc - ظرف.در اینجا پیوندی به بینش عملی است که به من کمک زیادی کرد... بهار. در اینجا بهار را تا فصل 16 طی کردم و تمام کدها را با دست نوشتم. من به شما توصیه می کنم که همین کار را انجام دهید.

    این بخش به سوالاتی اختصاص دارد که ممکن است در طول مصاحبه برای موقعیت یک برنامه نویس جاوا پرسیده شود.

    هدف این است که نه تنها سوالات (در اینترنت تعداد زیادی از آنها وجود دارد)، بلکه همچنین پاسخ به آنها را در یک مکان جمع آوری کنید.

    برای اطلاعات انتساب، صفحه اصلی بخش مصاحبه را مطالعه کنید.

    1. چند کلمه کلیدی توسط زبان رزرو شده است، این کلمات کدامند، کدام یک از آنها استفاده نمی شود؟
    2. نام متغیر (شناسه صحیح) از چه کاراکتری می تواند تشکیل شود؟
    3. کلمه "Initialization" به چه معناست؟
    4. انواع داده ها را می توان به چه گروه های اصلی تقسیم کرد؟
    5. چه انواع ابتدایی را می شناسید؟
    6. در مورد تبدیل انواع داده های اولیه چه می دانید، آیا از دست دادن داده وجود دارد، آیا امکان تبدیل نوع بولین وجود دارد؟
    7. متغیرهای پیش فرض با چه مقادیری مقداردهی اولیه می شوند؟
    8. مقدار یک متغیر ارسال شده (با مرجع/مقدار) چگونه است؟
    9. از تابع اصلی چه می دانید، چه پیش نیازهایی برای تعریف آن وجود دارد؟
    10. چه عملیات و عملگرهای منطقی را می شناسید؟
    11. تفاوت بین نماد کوتاه و کامل عملگرهای منطقی چیست؟
    12. جدول حقیقت چیست؟
    13. عملگر انتخاب سه تایی چیست؟
    14. چه عملیات حسابی یکنواختی و دودویی را می دانید؟
    15. چه عملیات بیتی را می دانید؟
    16. نقش و قوانین نوشتن عملگر سوئیچ چیست؟
    17. چه چرخه هایی را می شناسید، چه تفاوت هایی با هم دارند؟
    18. "تکرار حلقه" چیست؟
    19. حلقه for چه پارامترهایی دارد، آیا می توان آنها را مشخص نکرد؟
    20. کدام عبارت برای توقف فوری حلقه استفاده می شود؟
    21. کدام عبارت برای انتقال به تکرار بعدی حلقه استفاده می شود؟
    22. آرایه چیست؟
    23. چه نوع آرایه هایی را می شناسید؟
    24. در مورد کلاس های لفاف دار چه می دانید؟
    25. بسته بندی خودکار (باکس/ جعبه گشایی) چیست؟

    1. اصول OOP را نام ببرید و در مورد هر کدام به ما بگویید.
    2. مفهوم "کلاس" را تعریف کنید.
    3. فیلد/ویژگی کلاس چیست؟
    4. چگونه دسترسی به فیلدهای کلاس را به درستی سازماندهی کنیم؟
    5. مفهوم سازنده را تعریف کنید.
    6. تفاوت بین سازنده های پیش فرض، کپی و پارامتر چیست؟
    7. چه تغییرات سطح دسترسی را می شناسید، در مورد هر یک به ما بگویید.
    8. در مورد ویژگی های یک کلاس با یک سازنده خصوصی به ما بگویید.
    9. کلمات کلیدی "این"، "سوپر" به چه معنا هستند، کجا و چگونه می توان از آنها استفاده کرد؟
    10. مفهوم "روش" را تعریف کنید.
    11. امضای روش چیست؟
    12. به چه روش هایی اضافه بار می گویند؟
    13. آیا روش های غیر استاتیک می توانند روش های ایستا را اضافه بار کنند؟
    14. در مورد غلبه بر روش به ما بگویید.
    15. آیا یک متد می تواند تعداد متفاوتی از پارامترها (آگومان های طول متغیر) را بگیرد؟
    16. آیا می توان در هنگام لغو یک روش، نوع سطح دسترسی/بازگشت را محدود کرد؟
    17. چگونه می توان به متدهای لغو شده یک کلاس والد دسترسی داشت؟
    18. به چه دگرگونی هایی رو به پایین و بالا می گویند؟
    19. تفاوت بین overriding و overloading چیست؟
    20. از کجا می توانم فیلدهای استاتیک/غیر استاتیک را مقداردهی اولیه کنم؟
    21. چرا نمونه از اپراتور مورد نیاز است؟
    22. چرا بلوک های اولیه مورد نیاز هستند و چه هستند؟
    23. ترتیب فراخوانی سازنده ها و بلوک های اولیه سازی دو کلاس: فرزند و اجداد آن چگونه است؟
    24. اصلاح کننده انتزاعی کجا و برای چه چیزی استفاده می شود؟
    25. آیا می توان یک متد را به طور همزمان انتزاعی و ایستا اعلام کرد؟
    26. کلمه کلیدی ثابت به چه معناست؟
    27. اصلاح کننده استاتیک برای کدام ساختارهای جاوا اعمال می شود؟
    28. اگر یک استثنا در یک بلوک استاتیک کد رخ دهد چه اتفاقی می افتد؟
    29. آیا امکان اضافه بارگذاری روش استاتیک وجود دارد؟
    30. کلاس استاتیک چیست، استفاده از آن چه ویژگی هایی دارد؟
    31. ویژگی های مقداردهی اولیه متغیرهای استاتیک نهایی چیست؟
    32. چگونه اصلاح کننده استاتیک بر یک کلاس/روش/فیلد تاثیر می گذارد؟
    33. کلمه کلیدی نهایی به چه معناست؟
    34. مفهوم "رابط" را تعریف کنید.
    35. فیلدها و متدهای رابط چه اصلاح‌کننده‌های پیش‌فرضی دارند؟
    36. چرا نمی توانید یک متد واسط را با اصلاح کننده نهایی یا استاتیک اعلام کنید؟
    37. چه نوع کلاس هایی در جاوا وجود دارد (تودرتو... و غیره)
    38. ویژگی های ایجاد کلاس های تو در تو چیست: ساده و ایستا.
    39. در مورد کلاس های تودرتو چه می دانید، چرا از آنها استفاده می شود؟ طبقه بندی، موارد استفاده، نقض کپسولاسیون.
    40. تفاوت بین کلاس های تو در تو و داخلی چیست؟
    41. به چه کلاس هایی ناشناس می گویند؟
    42. چگونه می توانم از یک کلاس تودرتو به یک فیلد در یک کلاس خارجی دسترسی پیدا کنم؟
    43. چگونه می توان به متغیر محلی یک متد از یک کلاس ناشناس اعلام شده در بدنه این متد دسترسی داشت؟ آیا محدودیتی برای چنین متغیری وجود دارد؟
    44. هر کلاس کاربری چگونه با کلاس Object مرتبط است؟
    45. هر یک از متدهای کلاس Object را توضیح دهید.
    46. متد ()quals چیست؟ چه تفاوتی با عملیات == دارد.
    47. اگر می‌خواهید ()quals را باطل کنید، چه شرایطی باید برای متد overrid شده رعایت شود؟
    48. اگر ()quals لغو شود، آیا روش دیگری وجود دارد که باید لغو شود؟
    49. چه ویژگی خاصی در مورد متدهای hashCode و برابری دارد؟ متدهای hashCode و برابری چگونه در کلاس Object پیاده سازی می شوند؟ چه قوانین و قراردادهایی برای اجرای این روش ها وجود دارد؟ چه زمانی استفاده می شوند؟
    50. کدام متد یک نمایش رشته ای از یک شی را برمی گرداند؟
    51. اگر هش کد را باطل کنید، چه اتفاقی می‌افتد؟ چه مشکلاتی ممکن است ایجاد شود؟
    52. آیا توصیه هایی در مورد اینکه چه فیلدهایی باید هنگام محاسبه هش کد استفاده شود وجود دارد؟
    53. آیا فکر می کنید اگر شیئی که به عنوان کلید در هش مپ استفاده می شود، فیلدی را که در تعیین هش کد دخیل است تغییر دهد، مشکلی پیش خواهد آمد؟
    54. تفاوت بین یک کلاس انتزاعی و یک رابط چیست و در چه مواردی از کدام استفاده خواهید کرد؟
    55. آیا دسترسی به متغیرهای کلاس خصوصی امکان پذیر است و اگر امکان پذیر است چگونه؟
    56. فرار و گذرا چیست؟ برای چه و در چه مواردی می توان از پیش فرض استفاده کرد؟
    57. گسترش اصلاح کننده ها هنگام وراثت، نادیده گرفتن و پنهان کردن روش ها. اگر یک کلاس والد متدی داشته باشد که خصوصی اعلام شده است، آیا نسل بعدی می تواند دید آن را افزایش دهد؟ اگر محافظت شود چه؟ باریک کردن دید چطور؟
    58. آیا اعلام نهایی یک روش خصوصی منطقی است؟
    59. ویژگی های مقداردهی اولیه متغیرهای نهایی چیست؟
    60. اگر تنها سازنده یک کلاس نهایی اعلام شود چه اتفاقی می افتد؟
    61. نهایی شدن چیست؟ چرا مورد نیاز است؟ در مورد زباله جمع کن و الگوریتم های آن چه می توانید به ما بگویید؟
    62. چرا روش کلون محافظت شده اعلام شده است؟ برای اجرای شبیه سازی چه چیزی لازم است؟
    63. آیا با الگوهای طراحی آشنا هستید؟
    64. بنویس سینگلتون... و با لودینگ تنبل. اگر لازم باشد از نظر نخ ایمن باشد چه؟ و در چه مواردی بارگذاری تنبل بدتر است؟
    65. در مورد MVC چه می توانید بگویید؟ یک نمودار بکشید و توضیح دهید که MVC چگونه کار می کند.
    66. یک تابع برای محاسبه فاکتوریل بنویسید.
    67. تابعی برای محاسبه اعداد فیبوناچی داده شده است، معلوم است که کار می کند. مغالطه منطقی را پیدا کنید. پیچیدگی الگوریتم حاصل را تخمین بزنید.

    1. تعریف مفهوم «استثنا»
    2. سلسله مراتب استثناها چیست.
    3. آیا برای رسیدگی به خطاهای jvm امکان/نیاز است؟
    4. روش های مختلف رسیدگی به استثناها چیست؟
    5. کلمه کلیدی throws به چه معناست؟
    6. بلوک نهایی چه ویژگی خاصی دارد؟ آیا همیشه برآورده می شود؟
    7. آیا ممکن است هنگام گرفتن استثناها یک بلوک catch نداشته باشیم؟
    8. آیا می توانید به موقعیتی فکر کنید که بلوک نهایی اجرا نشود؟
    9. آیا یک بلوک catch می تواند چندین استثنا (از شاخه های ارثی یکسان و متفاوت) را بگیرد؟
    10. در مورد استثناهای علامت زده/چک نشده چه می دانید؟
    11. ویژگی RuntimeException چیست؟
    12. چگونه استثنا ("سفارشی") خود را بنویسید؟ چه انگیزه هایی شما را هنگام انتخاب نوع استثنا راهنمایی می کند: علامت زده/برداشته شده؟
    13. کدام عملگر به شما اجازه می دهد که یک استثنا را مجبور به پرتاب کنید؟
    14. آیا شرایط اضافی برای یک روش وجود دارد که به طور بالقوه می تواند استثنا ایجاد کند؟
    15. آیا روش اصلی می تواند یک استثنا را به صورت خارجی پرتاب کند، و اگر چنین است، این استثنا در کجا مدیریت می شود؟
    16. اگر دستور بازگشت هم در یک بلوک catch و هم در بلوک نهایی وجود داشته باشد، کدام یک مهمتر است؟
    17. درباره OutOfMemoryError چه می دانید؟
    18. درباره SQLException چه می دانید؟ متعلق به چه نوع چک شده یا بدون علامت است و چرا؟
    19. Error چیست؟ چه زمانی از Error استفاده می شود؟ مثالی از Error بزنید.
    20. کدام ساختار در جاوا برای رسیدگی به استثناها استفاده می شود؟
    21. فرض کنید یک بلوک try-finally وجود دارد. یک استثنا در بلوک try رخ داد و اجرا به بلوک نهایی منتقل شد. یک استثنا نیز در بلوک نهایی رخ داد. کدام یک از دو استثناء از بلوک سعی-نهایی "پرتاب" می شود؟ تکلیف استثنای دوم چه می شود؟
    22. فرض کنید روشی وجود دارد که می تواند IOException و FileNotFoundException را پرتاب کند، بلوک های catch به چه ترتیبی باید بروند؟ چند بلوک catch اجرا خواهد شد؟

    1. مفهوم "مجموعه" را تعریف کنید.
    2. مزایای استفاده از مجموعه ها را فهرست کنید.
    3. مجموعه ها چه داده هایی را می توانند ذخیره کنند؟
    4. سلسله مراتب مجموعه چیست؟
    5. درباره مجموعه های لیست چه می دانید؟
    6. درباره مجموعه های ست چه می دانید؟
    7. درباره مجموعه های نوع Queue چه می دانید؟
    8. درباره مجموعه های نوع Map چه می دانید، تفاوت های اساسی آنها چیست؟
    9. پیاده سازی های اصلی List، Set، Map را نام ببرید.
    10. چه پیاده سازی های SortedSet را می شناسید و چه ویژگی هایی دارند؟
    11. تفاوت / شباهت بین List و Set چیست؟
    12. چه تفاوتی بین کلاس های ArrayList و LinkedList وجود دارد، چه زمانی بهتر است از ArrayList استفاده کنیم و چه زمانی از LinkedList استفاده کنیم؟
    13. چه زمانی استفاده از آرایه به جای ArrayList عاقلانه است؟
    14. تفاوت ArrayList و Vector چیست؟
    15. در مورد پیاده سازی کلاس های HashSet و TreeSet چه می دانید؟
    16. تفاوت HashMap و TreeMap چیست؟ ساختار و عملکرد آنها چگونه است؟ در مورد زمان دسترسی به اشیا، چه وابستگی هایی وجود دارد؟
    17. Hashtable چیست، چه تفاوتی با HashMap دارد؟ امروزه منسوخ شده است، چگونه می توانید همچنان از عملکرد مورد نیاز استفاده کنید؟
    18. اگر دو مقدار را با یک کلید در نقشه قرار دهید چه اتفاقی می افتد؟
    19. ترتیب اشیاء در یک مجموعه چگونه تعیین می شود، چگونه می توان یک مجموعه را مرتب کرد؟
    20. اصطلاح تکرار کننده را تعریف کنید.
    21. کلاس Collections چه عملکردی را ارائه می دهد؟
    22. چگونه یک مجموعه غیر قابل تغییر بدست آوریم؟
    23. کدام مجموعه ها همگام سازی می شوند؟
    24. چگونه یک مجموعه همگام سازی شده را از یک مجموعه غیر همگام سازی دریافت کنیم؟
    25. چگونه یک مجموعه فقط خواندنی دریافت کنیم؟
    26. چرا Map از مجموعه ارث نمی برد؟
    27. تفاوت بین Iterator و Enumeration چیست؟
    28. حلقه foreach چگونه پیاده سازی می شود؟
    29. چرا هیچ متد iterator.add() برای افزودن عناصر به مجموعه وجود ندارد؟
    30. چرا کلاس iterator روشی برای دریافت عنصر بعدی بدون حرکت مکان نما ندارد؟
    31. تفاوت بین Iterator و ListIterator چیست؟
    32. راه های تکرار بر روی تمام عناصر یک لیست چیست؟
    33. تفاوت بین ویژگی های Fail-Safe و Fail-fast چیست؟
    34. برای جلوگیری از ConcurrentModificationException چه کاری باید انجام دهم؟
    35. پشته و صف چیست، به ما بگویید تفاوت آنها چیست؟
    36. تفاوت بین رابط های Comparable و Comparator چیست؟
    37. چرا مجموعه ها رابط های Cloneable و Serializable را به ارث نمی برند؟

    1. چه کلاس های "رشته" را می شناسید؟
    2. ویژگی های اصلی کلاس های "string" (ویژگی های آنها) چیست؟
    3. آیا می توان یک نوع رشته را به ارث برد، چرا؟
    4. مفهوم الحاق رشته را تعریف کنید.
    5. چگونه یک رشته را به عدد تبدیل کنیم؟
    6. چگونه مقدار دو رشته را مقایسه کنیم؟
    7. چگونه یک رشته را معکوس کنیم؟
    8. مقایسه دو رشته چگونه کار می کند؟
    9. چگونه فضاهای انتهای یک خط را کوتاه کنیم؟
    10. چگونه یک کاراکتر را در یک رشته جایگزین کنیم؟
    11. چگونه بخشی از یک رشته را دریافت کنیم؟
    12. مفهوم "استخر رشته" را تعریف کنید.
    13. کدام روش به شما امکان می دهد یک رشته فرعی را در یک رشته انتخاب کنید؟
    14. چگونه یک رشته را با استفاده از یک جداکننده معین به زیر رشته ها تقسیم کنیم؟
    15. کدام متد برای تبدیل یک متغیر به رشته فراخوانی می شود؟
    16. چگونه با دانستن شماره سریال آن در رشته به معنای یک کاراکتر خاص در رشته پی ببریم؟
    17. چگونه کاراکتر مورد نیاز یک رشته را پیدا کنیم؟
    18. آیا امکان همگام سازی دسترسی به ردیف وجود دارد؟
    19. متد intern() چه کاری انجام می دهد؟
    20. چه تفاوتی با هم دارند و کلاس های String، StringBuffer و StringBuilder چه مشترکاتی دارند؟
    21. چگونه مقادیر رشته دو شی متفاوت از نوع String و StringBuffer را به درستی مقایسه کنیم؟
    22. چرا رشته در جاوا تغییرناپذیر و نهایی شده است؟
    23. چرا یک آرایه کاراکتری به رشته ای برای ذخیره رمز عبور ترجیح داده می شود؟
    24. چرا String یک کلید محبوب در HashMap در جاوا است؟
    25. روشی برای حذف یک کاراکتر از یک رشته بنویسید.

    1. چه نوع جریان های ورودی/خروجی وجود دارد؟
    2. اجداد اصلی جریان های ورودی/خروجی را نام ببرید.
    3. جریان های زیر چه اشتراکاتی دارند و چه تفاوتی با هم دارند: InputStream، OutputStream، Reader، Writer؟
    4. درباره RandomAccessFile چه می دانید؟
    5. حالت های دسترسی به فایل چیست؟
    6. چه بسته هایی حاوی کلاس های رشته هستند؟
    7. در مورد سوپرکلاس ها چه می دانید؟
    8. کدام کلاس افزودنی به شما امکان می دهد داده ها را از یک جریان بایت ورودی در قالب انواع داده های اولیه بخوانید؟
    9. کدام کلاس افزودنی به شما امکان می دهد با استفاده از بافر سرعت خواندن/نوشتن را افزایش دهید؟
    10. چه کلاس هایی به شما اجازه می دهند که جریان های بایت را به جریان کاراکترها و بالعکس تبدیل کنید؟
    11. کدام کلاس برای کار با عناصر سیستم فایل (EFS) طراحی شده است؟
    12. هنگام تعیین مسیر EFS، جداکننده چه کاراکتری است؟
    13. چگونه می توان تمام EFS یک فهرست خاص را با معیار (مثلاً با یک پسوند خاص) انتخاب کرد؟
    14. درباره رابط FilenameFilter چه می دانید؟
    15. سریال سازی چیست؟
    16. شرایط سریال سازی "موفق" یک شی چیست؟
    17. چه کلاس هایی به شما اجازه می دهند اشیاء را بایگانی کنید؟

    1. مفهوم «فرآیند» را تعریف کنید.
    2. مفهوم «جریان» را تعریف کنید.
    3. مفهوم "همگام سازی نخ" را تعریف کنید.
    4. چگونه برنامه ها، فرآیندها و رشته ها با هم تعامل دارند؟
    5. چه زمانی ایجاد چندین رشته مناسب است؟
    6. اگر دو رشته یک کد را در یک برنامه اجرا کنند چه اتفاقی می افتد؟
    7. در مورد موضوع اصلی یک برنامه چه می دانید؟
    8. راه های ایجاد و اجرای موضوعات چیست؟
    9. کدام متد یک Thread را برای اجرا شروع می کند؟
    10. کدام روش عملکرد یک thread را در حین اجرا توصیف می کند؟
    11. چه زمانی thread اجرای خود را کامل می کند؟
    12. چگونه یک روش را همگام کنیم؟
    13. چگونه به زور یک نخ را متوقف کنیم؟
    14. مفهوم "رشته شبح" را تعریف کنید.
    15. چگونه یک موضوع شبح ایجاد کنیم؟
    16. چگونه می توان موضوع فعلی را دریافت کرد؟
    17. واژه مانیتور را تعریف کنید.
    18. چگونه یک موضوع را متوقف کنیم؟
    19. یک جریان در چه حالت هایی می تواند باشد؟
    20. مانیتور هنگام فراخوانی روش غیر استاتیک و استاتیک چیست؟
    21. هنگام اجرای بخشی از کد متد، مانیتور چیست؟
    22. چه روش هایی به شما امکان می دهد تا اجرای نخ ها را همگام کنید؟
    23. کدام روش یک نخ را در حالت آماده به کار قرار می دهد؟
    24. عملکرد متدهای notify و notifyAll چیست؟
    25. روش join چه کاری انجام می دهد؟
    26. شرایط فراخوانی روش انتظار/اعلان چیست؟
    27. مفهوم "انسداد متقابل" را تعریف کنید.
    28. تفاوت بین متدهای interrupt، interrupted و isInterrupted چیست؟
    29. در چه صورت یک InterruptedException پرتاب می شود، چه روش هایی می توانند آن را پرتاب کنند؟
    30. اصلاح کننده های فرار و متد yield().
    31. بسته java.util.concurrent
    32. روشی وجود دارد که عملیات i++ را انجام می دهد. متغیر i از نوع int. فرض بر این است که کد در یک محیط چند رشته ای اجرا می شود. آیا بلوک باید همگام شود؟
    33. اگر روش به صورت همزمان استاتیک اعلام شود چه چیزی به عنوان mutex استفاده می شود؟ آیا می توان نمونه های جدیدی از یک کلاس را در حالی که یک روش همگام استاتیک در حال اجرا است ایجاد کرد؟
    34. فرض کنید یک RuntimeException در روش run رخ داده است و دستگیر نشده است. جریان چه خواهد شد؟ آیا راهی وجود دارد که بدانیم یک استثنا رخ داده است (بدون اینکه کل بدنه اجرا در یک بلوک try-catch قرار گیرد)؟ آیا راهی برای بازگرداندن موضوع پس از این اتفاق وجود دارد؟
    35. از چه ابزارهای استاندارد جاوا برای پیاده سازی Thread Pool استفاده می کنید؟
    36. ThreadGroup چیست و چرا به آن نیاز است؟
    37. ThreadPool چیست و چرا به آن نیاز است؟
    38. ThreadPoolExecutor چیست و چرا به آن نیاز است؟
    39. "انواع اتمی" در جاوا چیست؟
    40. چرا به کلاس ThreadLocal نیاز داریم؟
    41. مجری چیست؟
    42. ExecutorService چیست؟
    43. چرا به ScheduledExecutorService نیاز دارید؟
    این لیست از 300+ سؤال (بدون پاسخ) در http://becomejavasenior.com/ یافت شد. نویسندگان دیگر نیز در آنجا ذکر شده اند.

    58489 کل بازدید 15 بازدید امروز

    بازدید: 38,283

    ما 10 نمونه پیچیده از برنامه هایی را جمع آوری کرده ایم که هر گونه اطلاعاتی را نمایش می دهند. شما باید به کد نگاه کنید و بگویید که برنامه چه خروجی خواهد داشت. این امکان وجود دارد که برنامه حتی کامپایل نشود. در این حالت باید مشخص کنید که کامپایلر چه خروجی خواهد داشت.

    مردم دوست دارند چنین سوالاتی را در طول مصاحبه بپرسند، بنابراین بهتر است دانش خود را در مورد زبان برنامه نویسی جاوا بیشتر کنید. پاسخ ها در اسپویلرها پنهان می شوند - برنامه یا کامپایلر چه خروجی می دهد. سعی کنید قبل از اینکه به پاسخ صحیح نگاه کنید، خودتان فکر کنید.

    بسته com.instanceofjava; کلاس عمومی B (B b = new B()؛ public int show())( return (true ? null: 0)؛ ) public static void main(string args) (B b = new B(); b.show( ) ) )

    • هر بار که یک شی از هر کلاس ایجاد می کنیم، سازنده ابتدا فراخوانی می شود و حافظه برای همه متغیرهای غیر ایستا تخصیص می یابد.
    • در اینجا B b = new B(); به یک شی از کلاس B یک شی جدید از همان کلاس اختصاص داده می شود.
    • B b = new B(); منجر به اجرای بازگشتی سازنده می شود که اشیاء بی نهایت ایجاد می کند. به همین دلیل است که وقتی این کد اجرا می شود، یک استثنا java.lang.StackOverFlowError در رشته "اصلی" مطرح می شود.
    • یکی از دلایل رایج این نوع استثناها بازگشت بد است. این معمولاً به دلیل شرایط فسخ نامعتبر رخ می دهد.

    خروجی برنامه زیر چیست؟

    بسته com.instanceofjava; کلاس عمومی A( public static void show())( System.out.println("روش استاتیک نامیده می شود"); ) public static void main(string args) (A obj = null؛ obj.show(); ) )
    • می‌توانیم متدهای استاتیک را با استفاده از یک متغیر مرجع null فراخوانی کنیم. نکته اینجاست که متدهای استاتیک در سطح کلاس هستند. به همین دلیل است که می توانیم توابع استاتیک را هم با استفاده از خود کلاس و هم با استفاده از متغیری برابر با null فراخوانی کنیم.

    خروجی برنامه زیر چیست؟

    بسته com.instanceofjava; کلاس عمومی A( static int a = 1111; static ( a = a-- - --a; ) (a = a++ + ++a; ) public static void main (string args) ( System.out.println(a) ) )

    خروجی برنامه زیر چیست؟

    بسته com.instanceofjava; کلاس عمومی A( int GetValue() (بازگشت (true ? null: 0)؛ ) public void main(string args) (A obj = new A(); obj.GetValue(); ) )

    خروجی برنامه زیر چیست؟

    بسته com.instanceofjava; کلاس عمومی A( خلأ استاتیک عمومی اصلی (رشته آرگ) (عدد صحیح i1 = 128؛ عدد صحیح i2 = 128؛ System.out.println(i1 == i2)؛ عدد صحیح i3 = 127؛ عدد صحیح i4 = 127؛ سیستم.out.println (i3 == i4);

    خروجی برنامه زیر چیست؟

    بسته com.instanceofjava; کلاس A ( روش void(int i) ( ) ) کلاس B A را گسترش می دهد ( @Override void method(Integer i) ( ) )
    • کدام خط از برنامه باعث خطای زمان کامپایل می شود؟
    بسته com.instanceofjava; کلاس A (حجم اصلی خالی استاتیک (رشته آرگ) (عدد صحیح i = عدد صحیح جدید (تهی)؛ رشته s = رشته جدید (تهی)؛ )

    خروجی برنامه زیر چیست؟

    بسته com.instanceofjava; کلاس A (اصطلاح خالی استاتیک عمومی (رشته آرگ) ( رشته s = "ONE"+3+2+"TWO"+"TREE"+5+4+"FOUR"+"FIVE"+5; System.out.println (ها)؛

    خروجی برنامه زیر چیست؟

    بسته com.instanceofjava; کلاس A ( متد static int1(int i) ( return method2(i *= 11); ) static int method2(int i) ( return method3(i /= 11); ) static int method3(int i) ( return method4( i -= 11 ) static int method4(int i) ( return i += 11; ) public static void main(string args) ( System.out.println(method1(11));) )

    خروجی برنامه زیر چیست؟

    بسته com.instanceofjava; کلاس A (اصطلاح خالی استاتیک عمومی (Args رشته) ( System.out.println (null); ))

    وقتی System.out.println(null) را می نویسید چه اتفاقی می افتد؛ ?

    البته یک خطای کامپایل رخ می دهد. روش println دارای چندین تنوع است. می تواند String، Object یا char را بپذیرد. هنگام ارسال یک آرگومان null به این تابع، کامپایلر نمی تواند تصمیم بگیرد که کدام یک از این سه متد را فراخوانی کند.

    روش های اضافه بار:

    • public void println (String str) (
    • public void println(char ch) (
    • public void println(Object ch) (

    برای کامپایلر، فراخوانی System.out.println(null) مبهم است، زیرا دو روش می توانند کم و بیش برای خروجی null 'a مناسب باشند: println(String) و println(char). اما کامپایلر نمی داند کدام متد خاص را فراخوانی کند. برای موفقیت آمیز بودن، باید بنویسید:

    • System.out.println((String)null);
    • System.out.println((char)null);
    • System.out.println((Object)null);

    اما در اینجا باید مراقب باشید. فراخوانی System.out.println((char)null); منجر به استثنا در زمان اجرا خواهد شد.

    من به شهر دیگری نقل مکان کردم، کار پیدا می کنم، برای مصاحبه می روم. به نظرم می رسید که سؤالاتی که در آنجا پرسیده می شود، اگرچه کاملاً شناخته شده هستند، اما در کنار هم قرار می گیرند، می توانند به شما در آماده شدن و احساس اطمینان بیشتر کمک کنند.

    سوالاتی برای کمک به درک اصول ساخت یک DBMS.
    1. اولین فرم نرمال و روند عادی سازی چیست؟ فرم های معمولی چیست؟
    2. منظور از یک شاخص DBMS چیست، ساختار آنها چگونه است، چگونه ذخیره می شوند؟ چگونه همان عملکرد را پیاده سازی می کنید؟ سوال آخر در صورتی مطرح می شود که درک روشنی از شاخص ها وجود نداشته باشد.
    3. یک رابطه چند به چند رسم کنید. به عنوان مثال: جداول نویسنده و کتاب. یک نویسنده می تواند چندین کتاب داشته باشد و یک کتاب می تواند توسط چندین نویسنده نوشته شود. برای انتخاب کتاب های یک نویسنده خاص، یک پرسش SQL بنویسید.

    سوالات اساسی در مورد جاوا
    4. کلاس پایه در جاوا همانطور که می دانید Object است. چه روش هایی را می توانید نام ببرید؟
    5. به ما بگویید مساوی و هش کد چیست؟ چه قوانین و قراردادهایی برای اجرای این روش ها وجود دارد؟ چه زمانی استفاده می شوند؟
    6. روش های صبر، اطلاع رسانی، اطلاع رسانی به همه را توضیح دهید. چگونه استفاده می شوند، چه زمانی، چرا به آنها نیاز است؟ چه چیزی هماهنگ شده است؟
    7. نهایی شدن چیست؟ چرا مورد نیاز است؟ در مورد زباله جمع کن و الگوریتم های آن چه می توانید به ما بگویید؟
    8. چرا روش کلون محافظت شده اعلام شده است؟ برای اجرای شبیه سازی چه چیزی لازم است؟
    9. چه اصلاح کننده هایی وجود دارد (دسترسی و موارد دیگر)؟ فرار و گذرا چیست؟ برای چه چیزی و در چه مواردی می توان از پیش فرض استفاده کرد؟

    چارچوب مجموعه جاوا
    10. واسط های مجموعه در جاوا چیست؟ تفاوت آنها را توضیح دهید.
    11. چه پیاده سازی هایی از این رابط ها را می شناسید؟
    12. ArrayList و LinkedList چه تفاوتی با یکدیگر دارند؟ چگونه ساخته شده اند؟ در چه مواردی باید از آنها استفاده کرد؟
    13. تفاوت HashMap و TreeMap چیست؟ ساختار و عملکرد آنها چگونه است؟ در مورد زمان دسترسی به اشیا، چه وابستگی هایی وجود دارد؟
    14. Hashtable چیست، چه تفاوتی با HashMap دارد؟ امروزه منسوخ شده است، چگونه می توانید هنوز از عملکرد مورد نیاز استفاده کنید؟

    استثناها
    15. استثنا چیست؟ چه نوع استثناهایی را می شناسید و چه تفاوتی با هم دارند؟
    16. شاید مشکلی در بلوک های try-catch-finally و این سوال که چه چیزی برگردانده می شود یا چه استثنایی در نهایت از بین خواهد رفت؟

    الگوریتم ها
    17. چه الگوریتم های مرتب سازی را می شناسید؟ چه نوع الگوریتم هایی را می شناسید؟
    علاوه بر این، در اینجا سؤالات اضافی مختلفی در مورد ارزیابی پیچیدگی الگوریتم ها و مقایسه آنها با یکدیگر امکان پذیر است.

    الگوهای طراحی
    18. آیا با الگوهای طراحی آشنایی دارید؟
    19. یک سینگلتون بنویسید... و با لودینگ تنبل. اگر لازم باشد از نظر نخ ایمن باشد چه؟ و در چه مواردی بارگذاری تنبل بدتر است؟
    20. در مورد MVC چه می توانید بگویید؟ یک نمودار بکشید و توضیح دهید که MVC چگونه کار می کند.

    یک سری سؤال برای کمک به درک پشته فناوری J2EE.
    21. سرولت، jsp، تفاوت آنها چیست؟
    22. آژاکس چیست؟ اساساً این فناوری چگونه کار می کند؟
    23. ORM چیست، چگونه آن را ترجمه کنیم و چگونه باید کار کند؟

    مشکلات ساده برای نوشتن الگوریتم ها
    24. تابعی برای محاسبه فاکتوریل بنویسید.
    25. تابعی برای محاسبه اعداد فیبوناچی داده می شود، معلوم است که کار می کند. مغالطه منطقی را پیدا کنید. پیچیدگی الگوریتم حاصل را تخمین بزنید.
    26. خط را معکوس کنید.
    27. میانگین آرایه را محاسبه کنید.

    یادآوری این نکته مفید است که اگر خیلی احساس اعتماد به نفس ندارید، نیازی به گفتن کلمات غیر ضروری نیست. شما یک کلمه اضافی می گویید و آنها به آن می چسبند و زنجیره را باز می کنند. آنها چیزی را تبلیغ می کنند که چندان مطمئن نیستند. از این توانایی افراد - چسبیدن - باید استفاده کرد، اما با سود برای خود؛-)

    دانش و درک ... همه چیز کاملا متفاوت است، بنابراین
    - الگوریتم های مختلف، به عنوان مثال مرتب سازی، ارزش نوشتن خود را دارند، حتی از یک کتاب درسی. ببینید چقدر با هم تفاوت دارند، پیچیدگی آنها را مقایسه کنید.
    - نگاهی به ابزارها و کتابخانه های مختلف، اصول گروه بندی کلاس ها به بسته ها و سبک نوشتن کد و نظر دادن مفید است. می تواند در درک اصلاح کننده های دسترسی و سازماندهی پروژه بسیار مفید باشد.
    - با درک چیزی خاص، می توانید به کسانی که کمتر می دانند کمک کنید. به هر انجمنی بروید و سعی کنید به سؤالاتی در مورد موضوعی که برای شما جالب است پاسخ دهید. شما می توانید چیزی برای خود از بحث بردارید. می توانید یک مقاله کوتاه بنویسید. البته باید درک خوبی از موضوع داشته باشید.
    هر کاری که با هدف بهبود صلاحیت‌های شخصی انجام شود، برای مصاحبه‌گر ماهر قابل مشاهده است و بی‌توجه نخواهد ماند. تنها نکته این است که باید صادقانه در مورد آن صحبت کنید، نباید توانایی ها و توانایی های خود را دست کم بگیرید.
    برای داشتن هر گونه راهنمایی برای آماده سازی یا توسعه خود به عنوان یک متخصص، می توانید به چیزی شبیه به این نگاه کنید.

    در واقع، سؤالات ذکر شده در بالا، همان طور که من تصور می کنم، سطح توسعه دهندگان جوان هستند. جایی، شاید عمیق تر، جایی کمتر، اما به عنوان یک واقعیت - جونیور.

    هر راه حلی مشکلات جدیدی ایجاد می کند

    این مقاله به زبان های زیر نیز موجود است: تایلندی

    • بعد

      از اطلاعات بسیار مفیدی که در مقاله ارائه کردید بسیار متشکرم. همه چیز بسیار واضح ارائه شده است. به نظر می رسد کار زیادی برای تجزیه و تحلیل عملکرد فروشگاه eBay انجام شده است

      • از شما و سایر خوانندگان همیشگی وبلاگم متشکرم. بدون شما انگیزه کافی برای اختصاص دادن زمان زیادی به حفظ این سایت ندارم. ساختار مغز من به این صورت است: من دوست دارم عمیق کاوش کنم، داده های پراکنده را نظام مند کنم، کارهایی را امتحان کنم که قبلاً هیچکس انجام نداده یا از این زاویه به آن نگاه نکرده است. حیف است که هموطنان ما به دلیل بحران روسیه، زمانی برای خرید از eBay ندارند. آنها از Aliexpress از چین خرید می کنند، زیرا کالاها در آنجا بسیار ارزان تر هستند (اغلب به قیمت کیفیت). اما حراج های آنلاین eBay، Amazon، ETSY به راحتی به چینی ها در زمینه اقلام مارک دار، اجناس قدیمی، اقلام دست ساز و کالاهای قومی مختلف یک شروع می شود.

        • بعد

          آنچه در مقالات شما ارزشمند است نگرش و تحلیل شخصی شما از موضوع است. این وبلاگ را رها نکنید، من اغلب به اینجا می آیم. باید خیلی از ما اینطور باشیم. به من ایمیل بزن اخیراً یک ایمیل با پیشنهادی دریافت کردم که آنها به من یاد می دهند چگونه در آمازون و eBay تجارت کنم. و یاد مقالات مفصل شما در مورد این معاملات افتادم. حوزه

    • همچنین خوب است که تلاش‌های eBay برای روسی‌سازی رابط کاربری برای کاربران روسیه و کشورهای مستقل مشترک المنافع به ثمر نشسته است. از این گذشته ، اکثریت قریب به اتفاق شهروندان کشورهای اتحاد جماهیر شوروی سابق دانش قوی از زبان های خارجی ندارند. بیش از 5 درصد از مردم به زبان انگلیسی صحبت نمی کنند. در بین جوانان بیشتر است. بنابراین، حداقل رابط به زبان روسی است - این کمک بزرگی برای خرید آنلاین در این پلت فرم تجاری است. eBay مسیر همتای چینی خود Aliexpress را دنبال نکرد، جایی که یک ماشین (بسیار ناشیانه و نامفهوم، گاهی اوقات باعث خنده) ترجمه توضیحات محصول انجام می شود. امیدوارم در مرحله پیشرفته‌تر توسعه هوش مصنوعی، ترجمه ماشینی با کیفیت بالا از هر زبانی به هر زبانی در عرض چند ثانیه به واقعیت تبدیل شود. تا اینجا ما این را داریم (نمایه یکی از فروشندگان در eBay با رابط روسی، اما توضیحات انگلیسی):
      https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png