728x90

Java (자바) 39

[Java] 변수 타입 확인하기 / 자료형 구분하기 / String int

코드를 작성하다보면, 많은 데이터를 관리하게 된다. 데이터를 생성·삭제하거나, 보내고 받기도 한다. 하나의 데이터를 다른 타입으로 변환시켜서 여러 곳에서 사용하기도 한다. 그 과정에서 종종 데이터 타입에 대한 문제를 맞이하기도 한다. 이번 포스팅에서는, 변수의 타입을 확인하는 방법에 대해 알아보자. 가장 빈번하게 타입을 혼동하는 케이스는 문자열(String)과 정수 타입(int)이다. String s = "123"; int i = 123; // 위에서 생성한 변수 출력. System.out.println(s); System.out.println(i); 문자열 변수 s와, 정수 타입 변수 i를 생성하고 출력해 보았다. 출력 결과는 다음과 같다. 분명히 다른 타입의 변수인데도, 출력된 데이터만을 볼 때는 다..

Java (자바) 2022.10.05

[Java] 배열 Array (2) - ArrayList / ArrayList 메서드

배열에 대해 알아보았던 지난 포스팅에 이어서, 배열의 진화라고 볼 수 있는 ArrayList 에 대해 알아보자.   ArrayList 시간의 흐름에 따라 기술은 계속 향상되기 마련이다. ArrayList는 기존의 배열의 단점을 극복하고,배열을 더 효율적으로 관리할 수 있도록 도와주는 '클래스'이다. 그렇다면 ArrayList는 배열의 어떠한 단점을 극복했다는 걸까?  ArrayList와 비교한 배열(Array)의 단점 ● 기존의 배열은 한 번 지정한 사이즈를 중간에 조정할 수 없었다. - 배열의 길이보다 배열의 요소가 더 많아지면 배열을 재생성해야만 했다.  ● 배열의 요소에 수정 & 삭제 등 변동이 생길 때, 관리가 필요했다. - 예를 들어, 배열의 요소를 삭제했다면 해당 인덱스 값은 비어있게 되는데,..

Java (자바) 2022.09.28

[Java] 배열 Array (1) - 배열 기초 예제 / 1차원, 2차원 배열

배열이라는 이름만 들어도 벌써 이과스러운 냄새가 난다. 하지만 코딩이라는 세계에서는 핵심적인 부분이자, 그만큼 앞으로 자주 만나게 될 문법이다. 이번 포스팅에서는 배열에 대해 알아보자. 배열 (= Array) 프로그래밍에서 배열이란, 동일한 타입의 여러 변수를 하나의 묶음으로 만들고 그것을 하나의 변수로써 다루는 것이라 말할 수 있다. 또, 배열은 차원을 가지고 있다는 특징이 있다. ● 1차원 배열의 표현 예시 i[0] i[1] i[2] i[3] i[4] ● 2차원 배열의 표현 예시 1열 2열 3열 4열 5열 1행 i[0][0] i[0][1] i[0][2] i[0][3] i[0][4] 2행 i[1][0] i[1][1] i[1][2] i[1][3] i[1][4] 위 처럼 배열을 차원으로 표현할 수 있는데,..

Java (자바) 2022.09.28

[Java] 조건문 - switch case 문 / if, switch 차이점

조건문에 대해서는 지난 if / else 문 포스팅에서 알아보았었다. [JAVA] 조건문 - if / else if / else 문 + 예외처리 조건문 주어진 조건이 참이냐 거짓이냐에 따라 다른 명령을 처리하도록 만든 수행문이다. 프로그램의 가장 기본이 되는 코드이며, 조건문만 사용해도 웬만한 프로그램의 로직을 구현해낼 수 있 oscarstory.tistory.com 하지만 if 문이 아닌 또 다른 조건문이 존재한다. 이번 포스팅에서는 switch case 문에 대해 알아보겠다. switch case 문 - 기초 주어진 조건을 기준으로 참, 거짓을 판별하여 해당 명령을 수행하는 '조건문' 의 특징으로만 보면, if 문과 크게 다를 것이 없다. 차이점이 있다면, switch case 문이 조금 더 간결해 ..

Java (자바) 2022.09.27

[Java] 접근 제한자 - public/protected/default/private

이번 포스팅에서는 자바의 접근 제한자에 대해 공부해보자. 코드의 제일 첫 부분으로 시작하는 녀석이고, 자바의 제일 기초적인 내용 중 하나인데 그동안 제대로 모른채 사용하고 있었을지도 모른다. 접근 제한자란? 말 그대로, 접근을 제한해 주는 역할을 한다. 클래스를 다른 패키지에서 사용하지 못하게 하거나, 생성자를 호출하지 못하게 하는 등 적절한 기준에 부합하도록 접근을 제한한다. '접근 제어자' 또는 '접근 지정자' 라고 불리기도 한다. 클래스, 생성자, 메서드, 변수 등 모든 요소에 사용한다. (지역 변수에는 사용할 수 없다) 어느 기준까지 접근을 제한할 것인지 정해주며, 각각의 접근 제한자마다 그 기준이 상이하다. 접근 제한자를 왜 사용하는가? 자바, 즉 객체 지향 언어의 핵심 요소 중 하나인 '캡슐화..

Java (자바) 2022.07.09

[Java] Thread (3) - 스레드 정지, 멈춤, 제어 / stop(), interrupt()

지난 포스팅에서, 스레드의 개념과 멀티 스레드의 사용법까지 공부해 보았다. 이번 시간에는, 동작 중인 스레드를 정지시키는 방법에 대해 포스팅한다. 짧은 시간 진행되는 스레드가 아닌, 특정 조건이 이루어질 때까지 지속되는 스레드의 경우가 있을 것이다. 특정 조건에 부합할 때마다, 스레드를 죽였다 살렸다 할 줄 알아야 된다는 말이다. 자신이 작성한 코드를 제어할 줄 모른다는 게, 얼마나 부끄러운 일인가. 그렇기에 우리는 스레드를 통제할 수 있어야 한다. stop() 메서드 지난 포스팅에서 사용하였던 예제를 그대로 사용하겠다. Play.java 코드를 간단하게 요약하자면, 1을 입력하면 스레드가 stop() 되도록 작성하였다. 하지만..? 코드에 줄이 그어져 있는 것을 확인할 수 있다. 그렇다... stop(..

Java (자바) 2022.07.08

[Java] Thread (2) - 스레드 사용 예제 : 타이머 구현 / isAlive() 메서드

지난 포스팅에 이어서 이번 시간에는, 멀티 스레드를 직접 사용해보며 공부해 볼 것이다. 자바에서 스레드를 생성하는 방법에는 2가지가 있다. 1. Thread 클래스를 상속받아서 사용 2. Runnable 인터페이스를 구현해서 사용 · 왜 2가지 방식으로 나눠서 사용할까? 자바에서는 단일 상속만을 허용하기 때문이다. 이미 다른 클래스를 상속받고 있는 클래스에서는 Thread 클래스를 상속받지 못한다. 그럴 때에는 Runnable 인터페이스에서 스레드를 구현해야 할 것이다. 두 가지 방식이지만, 스레드를 작성하는 방법은 동일하다. 스레드를 사용하고 싶은 내용을 run() 메서드 안에 작성해야 한다. 본인은 Thread 클래스를 상속받아서 타이머 기능을 하는 스레드를 만들어 보겠다. 먼저 두개의 클래스를 생성..

Java (자바) 2022.07.08

[Java] Thread (1) - 스레드란 무엇인가?

우리는 여러가지 흐름 속에 살고 있다. 프로그램 또한 마찬가지로, 그들만의 흐름이 있다. 이번 포스팅에서는 스레드의 기초적인 개념을 공부해보자. 스레드란? 사전적 의미로는 '실, 가닥, 흐름' 등 이다. 인터넷 용어로서는, '프로그램 내에서 실행되는 흐름의 단위' 라고 할 수 있다. 우리가 사용하는 모든 프로그램에는 최소 한 개의 흐름이 작업을 수행한다. 즉, 최소 한 개의 스레드가 존재한다. 일반적으로 한 개의 프로세스는 한 가지 일을 한다. 하지만 스레드를 다룰 줄 안다면, 한 개의 프로세스가 두 개 이상의 일을 동시에 할 수 있게 된다. *프로세스 : 실행중인, 동작하고 있는 프로그램 싱글 스레드, 멀티 스레드 싱글 스레드는, 말 그대로 단일 스레드이다. 한 개의 프로세스에 한 개의 스레드가 존재한..

Java (자바) 2022.07.08
728x90