프로그래밍/JAVA

while vs forfor장점초기화, 조건 체크, 반복 후의 작업을 한 줄에서 처리할 수 있어 편리하다.정해진 횟수만큼의 반복을 수행하는 경우에 사용하기 적합하다.루프 변수의 범위가 for 루프 블록에 제한되므로, 다른 곳에서 이 변수를 실수로 변경할 가능성이 적다.        단점루프의 조건이 루프 내부에서 변경되는 경우, for 루프는 관리하기 어렵다.복잡한 조건을 가진 반복문을 작성하기에는 while문이 더 적합할 수 있다.while문장점루프의 조건이 루프 내부에서 변경되는 경우, while 루프는 이를 관리하기 쉽다.for 루프보다 더 복잡한 조건과 시나리오에 적합하다.조건이 충족되는 동안 계속해서 루프를 실행하며, 종료 시점을 명확하게 알 수 없는 경우에 유용하다. 단점:초기화, 조건 체크,..
인덱스배열의 위치를 나타내는 숫자를 인덱스(index)라 한다. 기본형(Primitive Type)int , long , double , boolean 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입 참조형(Reference Type)int[] students와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입  변수[1차원인덱스] [2차원인덱스] [3차원인덱스] 다차원 배열 구조스택[5번지](5번지) -> 변수[0](10번지) 변수[1](30번지) -> 1차원(10번지) -> (50번지) (70번지) (null) -> 2차원(50번지) -> 변수[0](값1) 변수[1](값2) -> 3차원
자바 메모리 구조 메서드 영역(Method Area)메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다.프로그램의 모든 영역에서 공유한다.클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드등 모든 실행 코드가 존재한다.static 영역: static 변수들을 보관한다.런타임 상수 풀: 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관한다.스택 영역(Stack Area):자바 실행 시, 하나의 실행 스택이 생성된다.각 스택 프레임은 지역 변수, 중간 연산 결과, 메서드 호출 정보 등을 포함한다. * 스택 프레임: 스택 영역에 쌓이는 네모 박스가 하나의 스택 프레임이다.메서드를 호출할 때 마다 하나의 스택 프레임이 쌓이고, 메서드가 종료되면 해당 스택 프레임이 제..
멤버 변수(필드)의 종류 인스턴스 변수: static 이 붙지 않은 멤버 변수static 이 붙지 않은 멤버 변수는 인스턴스를 생성해야 사용할 수 있고, 인스턴스에 소속되어 있다인스턴스 변수는 인스턴스를 만들 때 마다 새로 만들어진다. 클래스 변수: static 이 붙은 멤버 변수, 예) count클래스 변수, 정적 변수, static 변수 로 부른다.클래스에 바로 접근해서 사용할 수 있어서 클래스 변수라 한다. 클래스 변수는 자바 프로그램을 시작할 때 딱 1개가 만들어진다.인스턴스와는 다르게 보통 여러곳에서 공유하는 목적으로 사용된다. 변수와 생명주기지역 변수(매개변수 포함)지역 변수는 스택 영역에 있는 스택 프레임 안에 보관된다. 메서드가 종료되면 스택 프레임도 제거 되는데 이때 해당 스택 프레임에 ..
정리* user * User * UserManager * UserHistory* product * Product * ProductCatalog * ProductImage* order * Order * OrderService * OrderHistory* cart * ShoppingCart * CartItem* payment * Payment * PaymentHistory* shipping * Shipment * ShipmentTracker패키지 규칙패키지의 이름과 위치는 폴더(디렉토리) 위치와 같아야 한다. (필수)패키지 이름은 모두 소문자를 사용한다. (관례)패키지 이름의 앞 부분에는 일반적으로 회사의 도메인 이름을 거꾸로 ..
this와 코딩 스타일public class MemberThis { String nameField; void initMember(String nameParameter) { this.nameField = nameParameter; }}  최근에 IDE가 발전하면서 IDE가 멤버 변수와 지역 변수를 색상으로 구분해준다.블로그 코드 블럭에서는 적용이 안된다.public class MemberThis { String nameField; void initMember(String nameParameter) { nameField = nameParameter; }}
@Override를 하는 이유컴파일러가 애노테이션을 보고 메서드가 정확히 오버라이드 되었는지 확인한다. 오버라이딩 조건을 만족시키지 않으면 컴파일 에러를 발생시킨다.실수로 오버라이딩을 못하는 경우를 방지해준다.필수는 아니지만 코드의 명확성을 위해 붙여주는 것이 좋다.  어노테이션 어노테이션 타입 정의와 적용public @interface AnnotationName {} // 이렇게 작성 후@AnnotationName 형식으로 활용함public @interface AnnotationName { String prop1(); int prop2() default 1;}@AnnotationName(prop1 = "값") @AnnotationName(prop1 = "값", prop2 = "값")   어노테이션..
생성자는 반드시 호출되어야 한다.생성자가 없으면 기본 생성자가 제공된다.그렇지 않으면 모든 클래스에 개발자가 직접 정의해야함 생성자가 하나라도 있으면 기본 생성자가 제공되지 않는다. 이 경우 개발자가 정의한 생성자를 직접 호출해야 한다 this() 규칙this() 는 생성자 코드의 첫줄에만 작성할 수 있다.
접근 제어자의 종류private : 모든 외부 호출을 막는다.default (package-private) : 같은 패키지안에서 호출은 허용한다.protected : 같은 패키지안에서 호출은 허용한다. 패키지가 달라도 상속 관계의 호출은 허용한다.public : 모든 외부 호출을 허용한다.차단(많음) private -> default -> protected -> public 차단(적음) package-private접근 제어자를 명시하지 않으면 같은 패키지 안에서 호출을 허용하는 default 접근 제어자가 적용된다.실제로는 package-private 이 더 정확한 표현이다. 클래스 레벨의 접근 제어자 규칙public , default 만 사용 가능.public 클래스는 반드시 파일명과 이름이 같아야 한..
데이터를 숨겨라객체 - 속성(데이터) /기능(메서드)캡슐화에서 가장 필수로 숨겨야 하는 것은 속성(데이터)내부 데이터까지 직접 사용할 필요가 없고 조작하게 해서도 안된다. 기능 숨기기    - 객체에서 내부에서만 사용하는 기능은 모두 감추는 것이 좋다.즉, 데이터는 모두 숨기고, 기능은 꼭 필요한 기능만 노출하는 것이 캡슐화이다
류가든
'프로그래밍/JAVA' 카테고리의 글 목록 (3 Page)