전체 글 143

자바(java)의 이차원 배열

이차원 정수 배열 리스트 안에 리스트가 존재하는 배열을 말한다. { { 123}, {124}, {125} } 같은 형식을 말한다. 이해하기 쉽게 표처럼 행, 열을 따진다. 말로하면 어렵지만, 그냥 실물을 한번 보면 이해가 되니 읽는게 더 빠르다. public class ex64 { public static void main(String[] args) { //2차원 정수배열 // 2행 2열 // 1열 2열 COLUMN int[][] nums = { {10, 20}, //1행 ROW {30, 40} //2행 }; //행index 열index System.out.println( nums[0][0] ); System.out.println( nums[0][1] ); System.out.println( nums[1..

카테고리 없음 2023.01.23

자바(java)의 정렬 알고리즘(버블, 선택, 삽입)

정렬 알고리즘. 기초적인 방법 : 버블정렬, 선택정렬, 삽입정렬 ***Array.sort()함수는 듀얼피봇 퀵정렬이라는 방식을 사용함. 가장 빠르고 효율적이지만 너무 어려운 내용이라 그냥 넘어간다. 버블정렬 가장 비효율적이지만 만들기 쉽고 간단해서 많이 쓰인다. 인덱스 0 부터 인덱스 끝까지 대/소를 비교하고, 만약 상대가 더 크거나 작다면 자신과 데이터를 교환하는 방식. 교환하고도 계속 비교 하지만, 이때도 기준은 인덱스다. 예를 들어보자. 배열 a[ ]를 오름차순으로 정리하고 있다. a[2]의 값을 a[3], a[4] ... a[n]까지 계속 비교하는 도중, a[10]이 자신보다 더 작다는 것을 발견했다. 그럼 이어서 a[2]의 데이터와 a[10]의 데이터를 맞교환한다. 그리고 이어서 바뀐 a[2]를..

공부/java 2023.01.23

자바(java)의 열거형 표현

열거형 열거형: 함수 밖, 클래스 안에서 선언하는 형식 어떤 값을 1이나 2처럼 숫자로 정의하기보다, 문자로 값을 정의하면 가독성이 향상되는 경우 사용한다. 다만 거의 쓰이지 않는다. 예) 문자 야구게임: 0== 스크라이크 1== 볼 변경 전) if( ball == 0 ) => 스트라이크 변경 후) if( ball == Ball.Strike ) 형식 enum 열거형이름 { 상수1, 상수2, ... } //; 을 안쓴다. 순서에 맞추서 정수값이 부여된다. // 정수값 0 1 2 enum Hero { Ironman, Superman, Batman } enum SRP { Sissors, Rock, Paper } enum Ball { Strike, Ball } 열거형 타입을 정수로 출력하고 싶으면 ordinal..

공부/java 2023.01.23

자바(java)의 배열

배열(Array) 만들기 배열은 데이터 나열이 하나로 묶어 연속된 메모리 주소에 저장하는 것이다. 파이썬의 인덱스와 같은 개념. 같은 타입의 데이터를 연속된 공간에 나열한 뒤, 각 데이터에 순차적으로 인덱스를 부여해 다루기 쉽게 만든 데이터 구조다. 만약 1,2,3,4,...10의 숫자가 있다고 가정 하면, 이것을 하나 하나 새로운 변수에 할당하는 대신 10칸으로 나눠진 하나의 통에 넣는거라고 생각하면 된다. 정수형, 문자형 데이터 모두 배열형으로 표현할 수 있지만, 타입이 다른 두 데이터를 하나의 배열에 넣는 것은 불가능하다. 정수형 배열 1. 선언과 동시에 초기화. int[] arrayNum1 = { 10, 20, 30 }; System.out.println( arrayNum1[0] ); //인덱스 ..

공부/java 2023.01.23

자바(java)의 디버깅 : 인텔리제이 (intelli J)

대부분의 IDE에서는 디버깅 기능을 지원한다. 코드의 실행에 따라 변수의 변화와 값의 변화를 차근차근 단계적으로 보여줘서, 오류 또는 잘못된 값이 나오게 된 원인을 쉽게 파악할수 있게 해주는 기능이다. public class ex49 { public static void main(String[] args) { //런타임 디버깅 사용법 //*반복문에서 코드의 흐름을 파악하거나, 변수의 값을 //확인하는 용도로 사용. //*print문만으로 전체 맥락을 파악하기 어려울때 사용. //실행 > 디버그 (Shift + F9) 기능 이용 //Break Point(중단점)을 설정한다. CTRL + F8 //스텝오버(F8) : 다음 줄로 이동 //스텝인투(F7) : 함수 안으로 이동 //다시시작(F9) : 계속해서 진..

카테고리 없음 2023.01.23

자바(java)의 반복문: for, while

반복문에는 for문과 whil문이 존재한다. 둘 사이에 큰 차이는 없으며, 다만 반복 횟수를 정하기 위한 변수 선언을 반복문 안에서 하느냐, 밖에서 하느냐 정도만 다르다. 상황에 따라 편한걸 사용하면 된다. for문 형식: for( 변수 초기화; 조건문; 증감 ) { 반복되는 수행문 } 변수 초기화 -> 조건문(true) -> 수행문 -> 증감 -> 조건문(true) -> 수행문-> 증감 -> .... -> 조건문 (false) -> 빠져나옴. 이런 과정으로 이뤄진다. 조건에 따라서 무한 루프에 걸리기도 하니 주의하자. 무한 반복문을 원한다면 for(;;) 과 같이 입력값이 없는 반복문을 만들면 된다. public class ex38 { public static void main(String[] args..

공부/java 2023.01.23

자바(java)의 난수(랜덤수) 출력

임의의 수(난수, 랜덤수) 출력하기 랜덤수를 출력하는데는 2가지 방법이 존재한다. 1. 외부 라이브러리에서 Random클래스를 사용하기 import java.util.Random; public class ex34 { public static void main(String[] args) { Random rand = new Random(); //객체생성 int randomInt = rand.nextInt( 10 ); //0~9사이의 정수 System.out.println( randomInt ); (사용할 클래스 명) (매개변수 이름) = new (사용할 클래스명)() 이어서 매개변수 이름.nextInt( n ) 과 같은 식으로 사용한다. 이때 괄호안에 생성되는 정수는 0~(n-1) 중에 무작위로 생성된다. ..

공부/java 2023.01.23

자바(java)의 조건문(1)

조건문 if문, switch문 프로그램을 짤때 핵심이 되는 문장 구조 true/ false 조건에 따라 선택적 실행이 가능하다. if문 형식 (패턴) : if (조건절) { 조건절이 true일때 실행되는 수행문 } 하나의 영역(scope), 블럭(block)은 중괄호로 나타낸다. 반드시 들여쓰기(4칸) 사용. public class ex31 { public static void main(String[] args) { //조건문 if문 switch문 //조건문 : true/false 조건에 따라서 선택적인 실행을 할수있음. // 형식(패턴) // if ( 조건절-비교,논리연산자로 이루어진 절 ) { // 조건절이 true일 수행되는 수행문1 // 수행문2.. // } int i = 20; if( i == ..

공부/java 2023.01.23

자바(java)의 연산(1)

연산 우선 순위 사칙 연산에서 곱셈, 나눗셈이 덧셈, 뺄셈보다 우선 순위가 높듯이, 프로그램 연산에도 우선 순위가 존재한다. 그 순위는 다음과 같다. 단항 연산자 (++, --, !, ~) 비교 연산자 (, >) 논리 연산자 (&&, ||, &, |, ^) 이항 연산자 (+, -, *, /, %) 삼항 연산자 (>, :) 대입 연산자 (=, +=, -=, *=, /=) public class ex15 { public static void main(String[] args) { // 연산자 // 연산자 우선순위 : 같은 줄에서 먼저 처리되는 순서 // 예) int i = 3 * 2 + 10 / 5; //출력값 8 // 단항연산자 - 우선순위 높음 // 이항연산자 // 삼항연산자 // 대입연산자 - 우선수위..

공부/java 2023.01.23

자바(java)의 버퍼 메모리

버퍼 메모리란, 앞선 코드를 처리하느라 밀린 뒷 코드들을 일시적으로 저장하는 공간이다. 이해를 쉽게 하기 위해 비유를 들어보자. 인기 있는 식당에 가면 자리가 만석일 경우, 대기표를 주면서 준비된 의자에 앉아서 자리가 날때까지 기다리게 한다. 자바 프로그램도 마찬가지다. 먼저 온 손님(데이터)으로 인해 나중에 온 손님의 주문을 처리할 수 없을때, 버퍼 메모리(의자)에 데이터를 대기시키고 나중에 실행한다. 덕분에 데이터 손실이 일어나지 않고, 밀린 요청사항(코드)를 모두 처리할수 있다. 임시 저장소라는 측면에서 캐시 메모리와 하는 일이 비슷하지만, 캐시는 빠른 처리를 위해 자주 쓰이는 데이터를 보관하는 공간이고, 버퍼는 데이터 유실이 일어나지 않도록 보관하는 공간이라는 차이점이 존재한다.

공부/java 2023.01.23