Java 관련/Java
![[Java] 배열(Array)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FHC8R6%2FbtrgV7iV37Z%2FAAAAAAAAAAAAAAAAAAAAAM6zcompR_tmiOrFzv7zfMlrXzlggzZQMqf492BpEZYY%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Dy7K%252Fq8lQY0AnBbahMUKFjoisCBk%253D)
[Java] 배열(Array)
배열(Array)이란 같은 타입의 여러 값을 효과적으로 관리하기 위해서 사용하는데요. 배열을 알아보기 전에 메모리 구조부터 알아볼게요. 자바는 JVM(자바 가상 머신)을 통해 모든 프로그램이 실행됩니다. 즉, JVM은 자바 코드를 실행시키기 위한 가상의 기계라고 볼 수 있는데요. 자바로 작성된 모든 프로그램은 자바 가상 머신에서만 실행이 될 수 있습니다. 자바 프로그램을 실행시키기 위해서는 JVM이 반드시 설치가 되어있어야 하죠. 자바 프로그램이 실행되면 JVM은 운영 체제로부터 해당 프로그램을 수행할 수 있도록 메모리를 할당받습니다. 각 메모리의 영역은 static 영역, stack 영역, heap 영역으로 구분하고 있습니다. 먼저 static 영역에는 자바 프로그램에서 사용되는 클래스에 대한 정보와 ..
![[Java] Scanner()](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbPi2Rr%2FbtrgUn7Doo3%2FAAAAAAAAAAAAAAAAAAAAAJLQxQZnWU_eE-kpESnjGIPjdTmiDshkEkQo3AgLLXfu%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DL91AJmVr0884ItCXycYqY2gVx4s%253D)
[Java] Scanner()
저희가 코드를 입력하고 컴파일하여 콘솔 창에 출력하는 과정을 계속했었는데요. 지금까지는 콘솔 창은 출력만 되고 입력이 되지 않았습니다. 하지만 콘솔 창에 입력을 받을 수도 있는데요. 이걸 가능하게 하는 것이 바로 Scanner입니다. Scanner를 사용하여 입력받을 수가 있는데 간단한 예제를 한번 볼까요? Scanner sc = new Scanner(System.in); System.out.println("숫자를 입력해주세요"); int a = sc.nextInt(); System.out.println("입력받은 a의 값 : " + a); sc.close(); 이런 형태로 사용됩니다. Scanner sc = new Scanner(System.in); 먼저 이 부분은 Scanner를 사용할 거라고 알..
![[Java] for문, 별찍기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FejVyrh%2FbtrgVSzHHS1%2FAAAAAAAAAAAAAAAAAAAAAEEu1MVDV14eKADoXAeq94FOKX-6nudsq7HEbBaY27np%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Dd3u5pZ3e%252BXJNmhq7A3Y2CoPmOrc%253D)
[Java] for문, 별찍기
for문을 이용해서 다음과 같이 *을 출력하세요 //문제1. int num = 1; int xSum = 0; for(int i = 1; i
![[Java] 제어문 - 반복문(for 문)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcoyHNn%2FbtrgVOjuPEx%2FAAAAAAAAAAAAAAAAAAAAAKk20rPznKLN3urJz4iNuzAqVjF-RvioYf4MARfKl4Vx%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DCfuZKYSzNz9hPHFCscTqKiznWns%253D)
[Java] 제어문 - 반복문(for 문)
1. for 문 for(초기값; 조건식; 증감식) { 명령; } for 문의 기본 형태는 다음과 같습니다. 먼저 초깃값을 읽고 조건식이 참인지 아닌지를 판단하여 참일 경우 명령을 수행합니다. 명령 수행 후 증감식을 통해 값을 증가하거나 감소하고 다시 조건을 봅니다. 이러한 과정을 거짓일 때까지 과정 한 후 거짓이면 해당 문법에서 빠져나오게 되는 과정입니다. 잘 이해가 안 가신다고요? 코드로 확인해보겠습니다. for(int i = 1; i
![[Java] 제어문 - 반복문(while 문)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fs7dpl%2FbtrgWDosV83%2FAAAAAAAAAAAAAAAAAAAAALbzjEKqrOVuhttsSltinMvExhdP1k0fWwYuepTOV_GN%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252BLzwLXRTz%252BEWXzk5TS9O1lf4dgI%253D)
[Java] 제어문 - 반복문(while 문)
반복문은 코드 내에서 똑같은 명령을 일정 횟수만큼 반복시키기 위해 사용하는 명령인데요. 프로그램이 처리하는 대부분은 반복문이라고 할 정도로 많이 사용한다고 해요. 1. while 문 초기값; while(조건식) { 명령; //증감식; } while 문은 조건식을 보고 명령을 수행하게 됩니다. while 문은 문법상 반드시 써야 하는 건 아니지만 증감식이 없기 때문에 조건문이 참이라면 무한 루프를 돌게 되겠지요. 그래서 보통 명령 다음에 증감식을 써줍니다. //초기값 int i = 1; //조건식 while(i
![[Java] 제어문 - 조건문(switch 문)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FSsGO2%2FbtrgVSfkQLa%2FAAAAAAAAAAAAAAAAAAAAADSrgyKGQUpY3hPVNLccDvqEO9qSOmICihXG2ZzeYwdU%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DbwBAh30eplOj4eSeGKsHQUf4G0s%253D)
[Java] 제어문 - 조건문(switch 문)
switch 문 switch 문도 if 문처럼 조건을 보고 해당 조건이 참일 경우 명령을 수행하는 조건문인데요. 사용방법이 조금 달라요. if 문은 조건이 참인지 아닌지 판별을 하고 명령을 수행했다면 switch 문은 조건에 맞는 위치로 바로 점프를 해서 맞는 명령만 수행을 합니다. 컴파일러가 최적화를 쉽게 할 수 있어서 속도가 빠른 편입니다. 하지만 조건식이 들어가는 게 아니라 조건 값이 들어갑니다. switch (조건 값) { case 값1: 조건 값이 값1 일때 명령문; break; case 값2: 조건 값이 값2 일때 명령문; break; ... default: 조건 값이 모든 case에 해당하지 않을 때 명령문; break; } 기본 형태는 다음과 같습니다. case의 값이 조건 값에 맞는 값이..
![[Java] 제어문 - 조건문(if 문)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FmAFeI%2FbtrgTFtYRw0%2FAAAAAAAAAAAAAAAAAAAAAGrsL_pl8d1N3DDgb3FkVp3yHN3O5nLYOxUf_rnGMHxS%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D2Mqsr60Y15%252FQtJo6SgYRgT3nKA8%253D)
[Java] 제어문 - 조건문(if 문)
제어문은 원하는 결과를 출력시키기 위해서 프로그램의 순차적인 흐름을 제어해야 합니다. 이때 사용하는 명령어를 제어문이라고 하는데요. 제어문에는 조건 문과 반복문이 있습니다. 이런 제어문은 클래스와 메소드와 마찬가지로 ' { ', ' } '중괄호로 범위가 묶어있습니다. 이러한 영역을 블록(block)이라고 합니다. 제어문, 그중에서도 조건문에는 if 문과 switch 문이 있는데요. 이번 포스팅에서는 if 문을 알아보겠습니다. 1. if 문 if(조건) { 명령; } if 문의 기본 형태는 다음과 같은데요. (조건)을 가장 먼저 확인하고 조건이 참이면 아래 명령을 수행합니다. 하지만 거짓일 때는 명령을 수행하지 않고 if 문밖으로 바로 나와버려요. 그림으로 표현하면 다음과 같습니다. 조건을 먼저 확인하..
![[Java] 자바 연산자(Operator)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fqm4ca%2FbtrgYlAJPmG%2FAAAAAAAAAAAAAAAAAAAAAPBZl8r_DyJTz4I00UZ6L4CO8DJ6gdSonKyDLGjnzbEK%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D1AdwuEdfNXKjw88OT6WVs7M6fIs%253D)
[Java] 자바 연산자(Operator)
자바에서는 우리가 흔히 사용하는 사칙연산 외에도 다른 연산이 존재합니다. 크게 보면 이러한 사칙연산을 포함한 산술연산자, 대입을 위한 대입 연산자, 다양한 문법에 사용 가능한 증감 연산자, 변수들의 비교를 위한 비교연산자, 참 거짓을 판단하는 논리연산자, 비트 단위 연산의 비트 연산자 등이 있습니다. 이런 다양한 연산자들을 조금 자세히 볼까요? 1. 산술연산자 산술연산자는 우리가 알고 있는 사칙연산( +, -, *, /) 외에도 % 연산이 존재합니다. 또한 다른 연산자에도 산술연산이 많이 포함되어 있으며 가장 많이 쓰는 연산자라고 할 수 있습니다. 연산을 할 때 두 개 이상의 연산자가 들어갈 수도 있겠죠? 산술연산자 설명 + 왼쪽의 피연산자에 오른쪽 피연산자를 더합니다. - 왼쪽의 피연산자에 오른쪽 ..
![[Java] 형 변환(Type Casting) - TypeToType](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FFPdQU%2FbtrgQAe7xu4%2FAAAAAAAAAAAAAAAAAAAAADba0ATqqzhHPnGZbZy28BRQd5O-HNIhfdl5P6S0Q9OS%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DyGwGOxhQ1avr4FG9gi%252FAnjljAls%253D)
[Java] 형 변환(Type Casting) - TypeToType
형 변환이란 변수가 가지고 있는 타입을 다른 타입으로 바꾸는 것을 말합니다. 자바에서는 boolean형을 제외하고는 기본 타입 간의 타입을 자유롭게 변환시킬 수 있는데요. 기본적으로 연산을 할 때 같은 타입이어야 연산이 가능합니다. 하지만 byte에서 int로 형 변환을 할 때는 메모리에 할당받은 크기가 작은 것에서 큰 것으로의 변환은 생략 가능합니다. 컴파일 할 때 자동으로 형 변환이 된다고 해야 할까요? 하지만 메모리에 할당받은 크기가 큰 타입에서 작은 타입으로의 타입 변환은 데이터의 손실이 발생하게 됩니다. 즉, 에러가 발생하게 됩니다. 형 변환에는 크게 두 가지 종류가 있습니다. 묵시적 형 변환과 명시적 형 변환인데요. 코드와 함께 자세하게 알아보겠습니다. 1. 묵시적 형 변환 묵시적 형 변환..
![[Java] 자바에서 여러가지 타입(Type)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FulFDB%2FbtrgJX8rvoD%2FAAAAAAAAAAAAAAAAAAAAAGdtsPFRiWpTQPfMHXKDjBeph1Ie0nsDOXTWGybYeEri%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D7PrMpukCiMtMTudm%252BM2lANjo8So%253D)
[Java] 자바에서 여러가지 타입(Type)
public static void main(String[] args){ int i = 2020; int j = 12; int k = 26; System.out.println(i + "." + j + "." + l); } 위의 코드에서 int i = 2020; 의 형태로 변수가 선언되어 있습니다. 이런 필드의 기본 형태는 Type 변수 = 값; 입니다. 이런 type과 변수에 대해서 자세히 살펴보겠습니다. 1. 변수 변수(variable)는 값을 저장하기 위해 할당받은 메모리 공간입니다. 즉, 데이터(data)를 저장할 수 있는 메모리 공간입니다. 또한 번수에 저장되어 있는 데이터는 재정의 하여 값을 바꿀 수 있습니다. 또한 변수를 선언하는 기본 형태는 타입(type) 변수(variable) = 값(l..