JAVA 29

241015 Java 09 - this, Java Memory Model

1. this1) 객체를 가리키는 말(객체 자신의 참조).2) 메서드의 지역변수 이름과 필드의 이름이 겹칠 때는 메서드 안에서 필드를 호출할 때 필드 앞에 this.을 붙여줘야한다.  * 자바는 블록 안에서 가까운 변수를 먼저 사용하기 때문에 필드와 지역변수의 이름이 같을 경우 지역변수만 사용한다.   2. Java Memory Model1) JVM은 OS(Operating System, 운영체제)로부터 메모리를 임시로 불러와서 자바 파일을 실행한다.2) 이 때, 메모리를 용도별로 나누어서 사용한다  * 분류 : 메서드(Method) 영역, 스택(Stack) 영역, 힙(Heap) 영역3) 변수의 데이터 타입에 따라 저장공간을 확보하고 값을 저장한다.  * short 타입은 2바이트, int 타입은 4바이..

JAVA 2024.10.15

241014 Java 08 - Method Overloading, 가변길이 인수, OOP, Class, Field, Constructor

1. Method Overloading(메서드 오버로딩)1) 클래스 내에서 같은 이름의 메서드를 여러 개 선언할 수 있다. 단, 이때 메서드의 파라미터는 달라야한다.  * 파라미터는 동일하고 리턴 타입이 다른 메서드는 오버로딩할 수 없음.     → JVM에서 메서드를 호출했을 때 어떤 결과값을 return 해야하는지 판단 불가하기 때문. [M] 메서드에 다양한 파라미터를 사용할 수 있어 효율성이 증가한다.  2. 가변길이 인수(Variable-length arguments)1) 메서드의 argument 개수가 정해져 있지 않은 경우2) 메서드를 호출할 때마다 argument 개수가 임의로 달라질 수 있는 경우3) 가변길이 인수를 갖는 메서드를 선언하는 방법(1) 메서드의 parameter 선언 부분에 ..

JAVA 2024.10.14

241011 Java 07 - Scanner, Method

1. Scanner의 여러가지 method* method(메서드) : 객체의 동작(기능)1) .nextInt() : 입력버퍼에서 공백문자(space, tab, enter)로 구분된 입력값(토큰)을 읽어서 int 타입으로 반환.2) .nextdouble() : 입력버퍼에서 토큰을 읽어서 double 타입으로 반환.3) .next() : 입력 버퍼에서 토큰을 읽어서 String 타입으로 반환.→ 위의 세가지 매서드는 읽은 값은 지우고 공백문자는 남겨둠!4) .nextline() : 입력버퍼에서 '엔터'를 만날 때까지 모든 값을 읽고 문자열을 반환.→ 반환 후 입력 버퍼의 모든 내용을 지움!5) 입력 버퍼에 필요없는 값들을 남겨두지 않기 때문에 nextline()을 사용하는 것이 좋다.6) Integer.pa..

JAVA 2024.10.11

241010 Java 06 - final 키워드, 다차원 배열

1. final 키워드: final로 선언된 대상은 값을 변경할 수 없다.(예시) final int LENGTH = 10;  2. 향상된 for문 사용 시 주의점1) for ( ①변수 선언 : ②배열 ) { 실행문; }향상된 for문 블록 안에서는 ②배열의 원소들의 값을 변경할 수 없다.왜냐하면 ②배열의 원소를 ①변수에 저장한 후에 실행문을 실행하는 방식이기 때문이다. ← 옆의 예시처럼 입력하고 실행시켰을 때,지역변수 x의 값만 변경되고,정수 배열 array의 원소들은 여전히 기본값 0 이다.  3. 다차원 배열 : 배열들을 원소로 갖는 배열1) 2차원 배열(1) 인덱스를 2개(세로(행) 인덱스, 가로(열) 인덱스) 사용하는 배열(2) 1차원 배열을 원소로 갖는 배열(3) 선언, 초기화 방법(가) 타입[..

JAVA 2024.10.10

241008 Java 05 - Eclipse 디버그, 배열, 향상된 for문

1. Eclipse에서 디버그(Debug) 사용법1) 확인하고 싶은 코드 부분에 breakpoint를 만들어준다.(1) breakpoint 만드는 법 : 확인하고 싶은 코드 행번호 더블클릭(2) breakpoint가 있는 부분부터 코드 자동실행이 멈추고 디버그 기능을 사용할 수 있다.2) 주요기능(1) breakpoint : 프로그램 실행을 잠시 멈추는 위치(2) Step Into(F5) : 다른 사람이 만든 소스코드까지 확인(3) Step Over(F6) : 내가 만든 메소드만 확인(4) Step Return(F7) : 다른 사람이 만든 소스코드에서 나오기(5) Resume : 프로그램을 다시 자동실행  2. 배열(Array)1) 특징(1) 많은 양의 데이터를 처리하기 편리한 자료구조(2) "같은" 타..

JAVA 2024.10.08

241007 Java 04 - break, continue, while 반복문, do-while문,

1. break와 continue1) 반복문 실행 중 break;를 만나면 break가 포함된 가장 가까운 반복문 블록을 끝낸다.  (1) 무한 반복문 실행 중에 특정 조건을 만족하면 반복을 종료시키기 위해서 사용.2) 반복문 실행 중 continue;를 만나면 continue 아래의 문장들은 실행하지 않고 그 다음 반복 과정을 계속 실행한다.  * while문은 조건식으로 다시 돌아가고, for문은 증감식으로 다시 돌아간다.2. 중첩 반복문: 반복문 안에 반복문을 사용하는 것.예)  2. while 반복문1) 형식 : while( ①조건식 ) { ②실행문 }2) 실행 흐름(1) 조건식을 평가하고 조건식이 true일 경우 실행문을 실행.(2) 실행문이 다 실행되면 조건식으로 돌아가서 다시 조건식을 평가...

JAVA 2024.10.07

241004 Java 03 - switch문, Enum, for반복문, 증가/감소연산자, 복합 할당 연산자, 지역 변수

1. switch문switch(식) {  case 값1:    실행문1;     break;  case 값2:    실행문2;    break;  ...  default:    실행문;}1) 식을 평가해서 나온 결과값와 일치하는 case의 실행문을 실행한다. 실행문은 break에서 중단되고 블록을 빠져나가게 된다.(break가 없을 경우 밑에 있는 수식들이 이어서 실행되기 때문에 꼭 break를 써줘야한다.)2) 결과값과 일치하는 case 값이 없을 경우 default문을 실행한다.(dafault 블록은 없을 수도 있음)3) switch문에서는 변수 또는 식에 정수, 문자열, enum 데이터 타입만 사용할 수 있다.4) Java 12 버전부터는 multi-case 문법을 사용 가능하다.  - multi-..

JAVA 2024.10.04

241002 Java 02 - 중첩 조건문, 삼항 연산자, Random 타입

1. 중첩 조건문조건문 안에 다른 조건문을 넣는 것도 가능하다.중첩 조건문을 활용하면 논리 연산자를 사용하여 수행해야할 연산을 논리 연산자 없이도 수행할 수 있다.  2. 삼항 연산자삼항 연산자를 활용하면 조건문을 길게 쓰지 않고도 간단하게 값을 입력할 수 있다. (조건식) ? 값 또는 연산식1 : 값 또는 연산식2 값 또는 연산식 1 : 조건식이 참일 때 연산의 결과가  됨값 또는 연산식 2 : 조건식이 거짓일 때 연산의 결과가  됨    3. Random 타입1) Random 클래스를 이용하여 난수를 생성할 수 있다.2) 정수 범위    .nextInt() : int 범위의 난수를 생성    .nextInt(bound) : 0 이상 bound 미만의 난수를 생성    .nextInt(a, b) : a..

JAVA 2024.10.02

240930 Java 01 - 변수

1. 변수(variable)1) 변수란? : 데이터를 언제든 불러올 수 있게 저장하는 저장공간 2) 선언 : 자바에서 변수를 사용하려면 반드시 변수를 선언해줘야 한다  - 선언방법 : 변수타입 변수명;  (예시) int var01;    * 변수타입에는 예약어인 데이터 타입명(키워드?)을 입력해주어야하며, 입력한 데이터 타입과 다른 데이터는 변수에 저장할 수 없다.    * 자바의 기본 데이터 타입 : 정수 타입(byte, short, int, long, char), 실수 타입(float, double), 논리 타입(boolean)    * 정수 타입이 다양한 종류가 있는 이유는 예전에 메모리가 적었던 시절에 메모리를 효율적으로 사용하기 위해서    * 변수명에는 알파벳, 숫자, _, $만 사용가능하다 ..

JAVA 2024.09.30