프로그래밍

인텔리제이를 통한 자바 컴파일, 실행 과정 컴파일 자바 코드를 컴파일 하려면 javac 라는 프로그램을 직접 사용해야 하는데, 인텔리제이는 자바 코드를 실행할 때 이 과정을 자동으로 처리해준다. 예) javac Hello.java 실행 자바를 실행하려면 java 라는 프로그램을 사용해야 한다. 이때 컴파일된 .class 파일을 지정해주면 된다.             예) java Hello , 참고로 확장자는 제외한다. 인텔리제이에서 자바 코드를 실행하면 컴파일과 실행을 모두 한번에 처리한다. 인텔리제이 덕분에 매우 편리하게 자바 프로그램을 개발하고, 학습할 수 있다 자바 개발과 운영 환경 개발할 때 자바와 서버에서 실행할 때 다른 자바를 사용할 수 있다. 개발자들은 개발의 편의를 위해서 윈도우나 MAC..
연산자 우선순위 암기법상식선에서 우선순위를 사용하자 애매하면 괄호를 사용하자  변수의 접근 가능한 범위를 스코프(Scope)라 한다. 참고로 Scope를 번역하면 범위라는 뜻이다.
메서드 사용메서드 호출과 용어정리메서드를 호출할 때는 메서드에 넘기는 값과 매개변수(파라미터)의 타입, 순서, 개수가 맞아야 한다. 인수(Argument)"hello" , 20 처럼 넘기는 값, 한글로 인수 또는 인자라 한다. 매개변수(Parameter)메서드를 정의할 때 선언한 변수인 String str , int age 를 매개변수, 파라미터라 한다.메서드를 호출할 때 인수를 넘기면, 그 인수가 매개변수에 대입된다. 용어정리인수는 메서드 내부로 들어가는 값을 의미한다. 인자도 같은 의미이다.매개변수는 메서드 호출부와 메서드 내부 사이에서 값을 전달하는 역할을 하는 변수라는 뜻이다.
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 클래스는 반드시 파일명과 이름이 같아야 한..
류가든
'프로그래밍' 카테고리의 글 목록 (3 Page)