Запитання з тегом «java»

Java - це об'єктно-орієнтована об'єктно-орієнтована мова програмування на високому рівні, спочатку розроблена Sun Microsystems. На даний момент Java належить Oracle, який придбав Sun у 2010 році.

13
Чи слід уникати мовних особливостей, які має C ++, але Java не має?
Припустимо, я обмежуюсь використовувати C ++ навколишнім середовищем у проекті. Чи добре запобігати використанню деяких мовних функцій, які мають C ++, але у Java немає (наприклад, багаторазове успадкування, перевантаження оператора)? Я думаю, що причини: Оскільки Java є новішою, ніж C ++, якщо Java не забезпечує функцію, яка має C ++, …
110 java  c++  code-quality 

12
Обґрунтування переваги локальних змінних перед змінними екземпляра?
Кодова база, над якою я працюю, часто використовує змінні екземпляри для обміну даними між різними тривіальними методами. Оригінальний розробник переконаний, що він дотримується кращих практик, зазначених у книзі « Чистий код» дядька Боб / Роберта Мартіна: «Перше правило функцій - це те, що вони повинні бути маленькими». і "Ідеальна кількість …
109 java  refactoring 

5
Чи потрібно в Java використовувати "final" для параметрів та локальних даних, навіть коли мені цього не потрібно?
Java дозволяє позначати змінні (поля / локалі / параметри) як final, щоб запобігти їх повторному призначенню. Я вважаю це дуже корисним із полями, оскільки це допомагає мені швидко зрозуміти, чи мають бути якісь атрибути - чи цілий клас - незмінні. З іншого боку, я вважаю це набагато менш корисним для …
105 java  coding-style  final 

5
Чому до інтерфейсів Java 8 додавали статичні методи за замовчуванням, коли у нас вже були абстрактні класи?
У Java 8 інтерфейси можуть містити реалізовані методи, статичні методи та так звані "типові" методи (які класам реалізації не потрібно переосмислювати). На мій (напевно, наївний) погляд, не було потреби порушувати такі інтерфейси. Інтерфейси завжди були контрактом, який ви повинні виконати, і це дуже проста і чиста концепція. Зараз це поєднання …

12
Мені сказали, що Винятки слід застосовувати лише у виняткових випадках. Як я можу дізнатися, чи випадок мій винятковий?
Мій конкретний випадок тут полягає в тому, що користувач може передавати рядок у додаток, програма аналізує його і присвоює структурованим об'єктам. Іноді користувач може набрати щось недійсне. Наприклад, їх дані можуть описувати людину, але вони можуть сказати, що їх вік "яблучний". Правильна поведінка в такому випадку - це повернути транзакцію …

6
Стек і купа пам'яті на Java
Як я розумію, у Java стек-пам'ять містить примітиви та виклики методів, а пам'ять купи використовується для зберігання об'єктів. Припустимо, у мене є клас class A { int a ; String b; //getters and setters } Де буде зберігатися примітив aу класі A? Чому взагалі існує пам'ять купи? Чому ми не …

9
Чому важко зробити програму Java "здаватися рідною"?
Більшість програм Java не виглядають так, як програми C / C ++. Swing, можливо, був розроблений спеціально, щоб мати розрізнений вигляд, але виходячи з того, що я прочитав, SWT, наприклад, намагався "виглядати рідним", і це не досягає успіху. Моє запитання: Чому розробникам мови Java важко розробити систему GUI, яка точно …
98 java  gui 

4
Чим посилання на Java відрізняється від вказівника С?
C має вказівники, а у Java є те, що називається посиланням. У них є щось спільне в тому сенсі, що всі вони на щось вказують. Я знаю, що вказівники на C зберігають адреси, на які вони вказують. Чи посилання також зберігає адресу? Чим вони відрізняються, за винятком того, що вказівник …
97 java  c  pointers  reference 

17
Чи є інкапсуляція ще одним із слонів, на яких стоїть ООП?
Інкапсуляція підказує мені зробити всі або майже всі поля приватними та викрити їх за допомогою геттерів / сетерів. Але зараз з'являються такі бібліотеки, як Lombok, які дозволяють нам виставити всі приватні поля одним коротким анотацією @Data. Він створить геттери, сетери та конструктори налаштування для всіх приватних полів. Чи може хтось …

10
Чи може хтось кинути виклик дядькові Бобу за його любов до зняття «марних брекетів»?
Я ненавиджу посилатися на вміст, що платить, але це відео показує саме те, про що я говорю. Точно 12 хвилин Роберт Мартін дивиться на це: І каже: "Однією з моїх улюблених речей є позбавлення від марних брекетів", коли він перетворює це на це: Здавна, в далекій освіті мене вчили не …

5
Чому Java взагалі не має оптимізації для хвостової рекурсії?
З того, що я прочитав: Причина полягає в тому, що не просто визначити, який метод насправді буде називатися так, як ми маємо спадщину. Однак чому Java принаймні не має оптимізацію хвостових рекурсій для статичних методів і не застосовує належний спосіб викликати статичні методи за допомогою компілятора? Чому Java взагалі не …

16
Чи потрібно молодим розумам засвоїти поняття вказівника?
Чому майстер С Денніс Річі ввів покажчики на С? І чому інші мови програмування, такі як VB.NET або Java або C #, усунули їх? У Google я знайшов деякі моменти, і я теж хочу слухати ваші коментарі. Чому вони усувають вказівні поняття в сучасних мовах? Люди кажуть, що C - …

17
Чи нав'язувати однаковий формат коду для всіх розробників гарною ідеєю?
Ми розглядаємо можливість нав'язати єдиний стандартний формат коду в нашому проекті (автоматичний формат із збереженням дій у Eclipse). Причина в тому, що в даний час існує велика різниця у форматах коду, які використовуються декількома (> 10) розробниками, що ускладнює роботу одного розробника над кодом іншого розробника. Один і той же …

6
Чи краще використовувати assrt або IllegalArgumentException для необхідних параметрів методу?
На Java, що більше рекомендується, і чому? Обидва типи будуть кидати винятки, тому в цьому відношенні поводження з ними однакове. assertтрохи коротше, але я не впевнений, наскільки це важливо. public void doStuff(Object obj) { assert obj != null; ... } проти public void doStuff(Object obj) { if (obj == null) …

10
Як уникнути геттерів та сетерів?
Мені щось важко в розробці занять уоо. Я читав, що об’єкти викривають їх поведінку, а не їх дані; отже, замість використання getter / setters для зміни даних, методами даного класу повинні бути "дієслова" або дії, що діють на об'єкт. Наприклад, в об'єкті «Рахунки», ми мали б методи Withdraw()і Deposit()замість того …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.