본문 바로가기

java

(29)
[JAVA 기초] 열거 타입 데이터 중에는 몇 가지를 한정된 값만을 갖는 경우가 있다. ex) 4계절 : 봄, 여름, 가을, 겨울 ex) 달력 : 1월, 2월, 3월... ,12월 이러한 한정된 값을 갖는 타입을 열거 타입이라고 한다. 열거 타입 열거 상수(한정된 값)를 저장하는 타입 위와 같이 Week 열거 타입을 선언하면 해당 타입으로는 선언된 상수만을 사용할 수 있게 된다. Week today; today = Week.FRIDAY; 열거 타입 선언 소스파일(.java) 생성 열거 타입 선언 public enum 열거타입이름 { ... } 열거 타입의 키워드는 enum이다. public enum Week {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY} // (열..
[JAVA 기초] 자바 배열 4(객체를 참조하는 배열, 배열 복사, 향상된 for문) 참조 타입 배열 기본 타입이 아닌 참조 타입의 배열은 요소의 값(리터럴)을 저장하지 않고, 객체의 번지를 저장을 한다. 예를 들어 String 배열 변수를 선언해보자. (String은 참조 타입 중 클래스에 해당) String[] strArray = new String[3]; strArray[0] = "Java"; strArray[1] = "Java"; strArray[2] = new String("java"); 위와 같이strArray 변수에 3개의 배열 객체를 만들어 대입하고 각 인덱스에 "Java" 문자열을 추가해주면 메모리에 아래 그림처럼 생성이 된다. 이때 0과 1인덱스에서는 힙 영역에 생성된 동일한 "Java" String 객체를 공유하여 참조한다. 2인덱스에서는 new연산자를 사용하여 새로운..
[JAVA 기초] 자바 배열 3 (다차원 배열) 2차원 배열 수학의 행렬과 같은 구조로 가로와 세로로 표가 만들어진다고 생각하자. int[][] scores = new int[2][3]; // 2 * 3 표 모양의 행렬 생성 -구현 방법: 실제로 자바가 표와 같은 형태로 2차원 행렬 데이터를 저장하지는 않는다. 1차원 배열이 다시 1차원 배열을 참조하는 방식으로 2차배열을 만든다. scores.length //2(배열 A의 길이) scores[0].length //3(배열 B의 길이) scores[1].length //3(배열 C의 길이) scores의 length값을 구하면 처음 행의 길이(2)를 구하게 되지만 scores[0], scores[1]의 길이는 그 행이 참조하고 있는 열의 길이(3)를 구하게 된다. 자바는 1차원 배열을 연결하여 다차원 ..
[JAVA 기초] 자바 배열 2 (명령라인에서의 실행) 명령 라인 입력 public static void main(String[] args) {...}에 String[]args가 붙어있는 이유는 자바의 args는 "명령 라인"에서 자바를 실행시킬 때 매개변수를 전달할 수 있게 하는 기능이다. main() 메소드는 String[] args 매개 변수를 통해서 명령 라인에서 입력된 데이터의 수와 입력된 데이터를 알 수 있게 된다. 이때, 데이터의 수는 args배열의 length, 입력된 데이터는 args배열의 항목 값을 말한다 소스파일 실행 시 명령 라인 매개값을 주지 않았을 경우 길이 0인 String 배열 생성 후 main() 메서드 호출한다 실행할 때 명령라인 매개 값을 주었을 경우 JDK11 이후 버전에서는 명령 라인에서 위와 같은 명령어로 확인할 수 있..
[JAVA 기초] 참조 타입과 참조 변수 2 (New 연산자, equals 연산자) String 타입 String 변수에 문자열 리터럴을 대입할새 경우 스택 영역에 변수가 선언이 되고 힙 영역에 리터럴(객체) 가 생성되어 스택 영역에 저장이 된다. 만약 같은 리터럴로 변수 값을 선언하면 힙 영역에 생성된 하나의 객체로 두 변수가 공유하여 가지게 된다. New 연산자 객체 생성 연산자 힙 영역에 새로운 String 객체를 생성 String name1 = new String("신용권"); String name2 = new String("신용권"); 문자열 리터럴과 new 연산자로 생성된 객체 비교 String name1 = "신용권"; String name2 = "신용권"; String name3 = new String("신용권"); name1 == name2 : true name1 == ..
[JAVA 기초] 참조 타입과 참조 변수(==/!=연산, NullPointerException) 기본 타입(primitive type) 8개의 기본 타입으로 이루어져 있어 정수, 실수, 문자, 논리 리터럴을 저장한다 참조 타입(reference type) 객체(object)의 번지를 참조하는 타입 배열, 열거, 클래스, 인터페이스 기본 타입 변수와 참조 타입 변수의 차이점 기본 타입과 참조 타입의 차이는 저장되는 값이 무엇인가 이다. 기본 타입으로 선언된 변수는 실제 값을 변수에 저장하지만 참조 타입은 배열, 열거, 클래스, 인터페이스를 이용해서 선언된 변수는 메모리에 번지를 값으로 갖게 되며, 즉 번지를 통해 객체를 참조한다는 뜻으로 참조 타입이라고 부른다. 기본 타입 변수 int age = 25; double price = 100.5; 참조 타입 변수 String name = "신용권"; Str..
[JAVA 기초] 자바 반복문 (for문, while문, do-while문, break, continue, label) 반복문에는 for문, while문, do-while문이 있다. 반복문은 어떤 작업을 반복적으로 실행하고 싶을 때 사용하여 제어문 처음으로 되돌아가 반복 실행하는데 이것을 루핑(looping)이라고 한다. for문 for (초기화식; 조건식; 증감식) {실행문;} 반복 횟수 알고 있을 때 사용 int sum = 0; sum = sum + 1; sum = sum + 2; sum = sum + 3; sum = sum + 4; sum = sum + 5; . . . . sum = sum + 100; System.out.println("1~100의 합:" + sum); 위와 같은 덧셈 연산을 더 간단하게 작성하기 위해 for 문을 사용한다. int sum = 0; for (int i=1; i
[JAVA 기초] 조건문 (if문, switch문) 자바 프로그램은 main() 메서드의 시작 중괄호 {에서 끝 중괄호 }까지 위에서 아래로 실행하는 흐름을 가지고 있다. 이러한 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것을 흐름 제어문 혹은 제어문이라고 한다. 제어문의 종류에는 조건문과 반복문이 있다. 조건문 조건식에 따라 다른 실행문을 실행하기 위해 사용 if문 : 조건식 결과의 true.fasle 여부에 따라 실행문 결정 switch문 : 변수의 값에 따라 실행문 결정 if문 조건식 결과에 따라 블록 실행 여부 결정 조건식에 올 수 있는 요소 ( true / false 값을 산출하는 연산식, boolean 타입 변수) 중괄호 블록은 조건식이 true가 될 때 실행 (실행할 문장 하나뿐인 경우 생략 가능 위의 조건문은 중괄호를 달아..