«java» 태그된 질문

Java는 Sun Microsystems가 처음 개발 한 플랫폼 독립적 인 객체 지향 프로그래밍 언어입니다. Java는 현재 Oracle이 소유하고 있으며 2010 년에 Sun을 구입했습니다.

13
C ++에는 있지만 Java에는없는 언어 기능을 피해야합니까?
프로젝트의 환경에서 C ++을 사용하도록 제한되어 있다고 가정하십시오. C ++에는 있지만 Java에는없는 일부 언어 기능 (예 : 다중 상속, 연산자 오버로드)의 사용을 방지하는 것이 좋습니까? 이유는 다음과 같습니다. Java가 C ++보다 최신이므로 Java가 C ++의 기능을 제공하지 않으면 해당 기능이 좋지 않다는 것을 의미하므로 사용을 피해야합니다. C ++ 관련 기능 …
110 java  c++  code-quality 

12
인스턴스 변수보다 로컬 변수를 선호하는 이유는 무엇입니까?
내가 작업하고있는 코드베이스는 인스턴스 변수를 자주 사용하여 다양한 사소한 메소드간에 데이터를 공유합니다. 원래 개발자는 이것이 Bob / Robert Martin 삼촌 의 Clean Code book에 언급 된 모범 사례를 준수한다는 것을 강력하게 인정합니다 . "기능의 첫 번째 규칙은 작을 것입니다." 그리고 "함수에 대한 이상적인 인수의 수는 0입니다 (나일론). (...) 인수는 어렵습니다. …
109 java  refactoring 

5
Java에서는 필요하지 않은 경우에도 매개 변수 및 로컬에 "최종"을 사용해야합니까?
Java는 변수 (필드 / 로컬 / 매개 변수)를로 표시하여 변수에 final재 할당되지 않도록합니다. 일부 속성 또는 전체 클래스가 변경 불가능한지 여부를 신속하게 확인할 수 있으므로 필드에 매우 유용합니다. 반면에 로컬 및 매개 변수에는 그다지 유용하지 않으며 일반적 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의 모양을 정확하게 복사하는 GUI 시스템을 설계하기 어려운 이유는 무엇 …
98 java  gui 

4
Java 참조와 C 포인터는 어떻게 다릅니 까?
C에는 포인터가 있고 Java에는 참조라고하는 것이 있습니다. 그들은 모두 무언가를 가리킨다는 점에서 공통점이 있습니다. C의 포인터가 가리키는 주소를 저장한다는 것을 알고 있습니다. 참조도 주소를 저장합니까? 포인터가 더 유연하고 오류가 발생하기 쉽다는 점을 제외하고는 어떻게 다릅니 까?
97 java  c  pointers  reference 

17
캡슐화는 여전히 OOP가 서있는 코끼리 중 하나입니까?
캡슐화는 모든 또는 거의 모든 필드를 비공개로 만들고 getter / setter에 의해 노출되도록 지시합니다. 그러나 이제는 Lombok 과 같은 라이브러리가 나타나서 하나의 짧은 주석으로 모든 개인 필드를 노출 할 수 @Data있습니다. 모든 개인 필드에 대한 게터, 세터 및 설정 생성자를 만듭니다. 누군가 나에게 모든 분야를 비공개로 숨기고 그 이후에 여분의 …

10
“무용 한 괄호”를 제거하는 그의 사랑으로 누군가가 삼촌에게 도전 할 수 있습니까?
유료 콘텐츠를 참조하는 것이 싫지만 이 비디오 는 내가 말하는 내용을 정확하게 보여줍니다. Robert Martin에서 정확히 12 분은 다음과 같습니다. "내가 가장 좋아하는 일 중 하나는 쓸모없는 괄호를 없애는 것"이라고 말합니다. 오래 전에, 멀리 떨어진 교육에서 나는 그렇지 않은 if경우에 의해 제어되는 다른 들여 쓰기 된 줄을 추가하여 버그를 쉽게 …

5
Java가 꼬리 재귀에 대해 전혀 최적화되지 않은 이유는 무엇입니까?
내가 읽은 것에서 : 그 이유는 상속을 받았을 때 실제로 어떤 메소드가 호출 될지를 결정하는 것이 쉽지 않기 때문입니다. 그러나 왜 Java가 정적 메소드에 대해 꼬리 재귀 최적화를 가지고 있지 않고 컴파일러로 정적 메소드를 호출하는 적절한 방법을 시행하지 않는 이유는 무엇입니까? 왜 Java는 꼬리 재귀를 전혀 지원하지 않습니까? 여기에 어려움이 …

16
어린 마음이 포인터 개념을 배워야합니까?
C 마스터 Dennis Ritchie 가 C로 포인터를 도입 한 이유는 무엇 입니까? 그리고 VB.NET이나 Java 또는 C #과 같은 다른 프로그래밍 언어가 왜 그것들을 제거 했습니까? Google에서 몇 가지 요점을 찾았으며 귀하의 의견도 듣고 싶습니다. 현대 언어에서 포인터 개념을 제거하는 이유는 무엇입니까? 사람들은 C가 기본 언어이고 포인터는 C를 강력하고 훌륭하게 …

17
모든 개발자에게 동일한 코드 형식을 적용하는 것이 좋은 생각입니까?
프로젝트에 단일 표준 코드 형식 (Eclipse에서 저장 조치가있는 자동 형식)을 적용하려고합니다. 그 이유는 현재 여러 개발자 (> 10)가 사용하는 코드 형식에 큰 차이가 있기 때문에 한 개발자가 다른 개발자의 코드를 다루기가 더 어렵 기 때문입니다. 동일한 Java 파일은 때때로 3 가지 다른 형식을 사용합니다. 따라서 이점이 분명하다고 생각하지만 (가독성 => …

6
필수 메소드 매개 변수에 assert 또는 IllegalArgumentException을 사용하는 것이 더 낫습니까?
Java에서 더 권장되는 이유는 무엇입니까? 두 유형 모두 예외가 발생하므로 처리 측면에서 동일합니다. assert약간 짧지 만 얼마나 중요한지 잘 모르겠습니다. public void doStuff(Object obj) { assert obj != null; ... } vs public void doStuff(Object obj) { if (obj == null) { throw new IllegalArgumentException("object was null"); } ... }

10
게터와 세터를 어떻게 피합니까?
나는 클래스를 디자인하는 데 어려움을 겪고 있습니다. 객체가 데이터가 아니라 동작을 노출한다는 것을 읽었습니다. 따라서 getter / setter를 사용하여 데이터를 수정하는 대신 지정된 클래스의 메소드는 "동사"또는 오브젝트에서 작동하는 조치 여야합니다. 예를 들어, '계정'객체에, 우리는 방법이있을 것입니다 Withdraw()및 Deposit()보다는 setAmount()등을 참조하십시오 : getter와 setter 메소드가 악 이유 . 예를 들어, Name, …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.