Language/Java 14

Java

Java의 특징 - 배우기 쉬운 객체지향 언어 - 자동 메모리 관리(GC가 메모리를 알아서 정리해준다) - 멀티 쓰레드 지원 - 풍부한 라이버리로 쉽게 개발 가능 - ★ 운영체제에 독립적(JVM) 2021.06.11 - [Language/Java] - JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 class 자바 프로그램의 단위. 자바 프로그램은 클래스들로 구성 class 클래스 이름 { /* 모든 문장은 클래스의 []안에 있어야 한다. */ } ' { '는 클래스의 시작 ' } '는 클래스의 끝 main 메서드 자바 프로그램의 시작점이다. 이 메서드 없이 실행 불가 class 클래스 이름 { public static void main(String[] args) { //main 메서드의 시작 /*..

Language/Java 2021.06.21

JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가

1. JVM이란 ? 자바 가상 머신(Java Virtual Machine)은 컴퓨터가 자바 프로그램을 실행할 수 있도록 도와준다. JVM은 자바 바이트코드를 실행할 수 있는 주체이다. C/C++ 는 컴파일 플랫폼이(운영체제 + CPU 아키텍처) 다를 경우, 프로그램이 동작하지 않는다. 동일한 플랫폼에서 컴파일과 실행한다면 프로그램은 아무 이상 없이 동작하겠지만, ⚠︎ 플랫폼이 달라질 경우, 타깃 플랫폼에서 프로그램이 동작하지 않는다. (예를 들면 윈도우에서 돌게 컴파일한 건 맥이나 리눅스에서 안 돌아가는 것) ➡︎ 그래서 이를 크로스 컴파일(타깃 플랫폼에 맞춰 컴파일하는 것)로 해결했다. 자바는 네트워크에 연결된 모든 디바이스에서 작동하는 것이 목적이었다. 디바이스마다 운영체제나 하드웨어가 다르기 때문에..

Language/Java 2021.06.11

static import

☞ 자바 클래스의 static 메소드는 클래스에 대한 인스턴스의 생성없이 메소드를 사용할 수 있다. 따라서 코드가 간결해지고 특정 클래스의 static 멤버를 자주 사용할 때 편리하지만 남용하면 독이 될 수 있기 때문에 주의해야 한다. 예를 들어 어떤 조건이 참인지 아닌지 검증하는 org.assertj.core.api.Assertions 라이브러리의 assertThat() 는 다음과 같이 사용된다. Assertions.assertThat(discount).isEqualTo(1000); Assertions에서 "option + enter" 누르면(인텔리제이) "Add on-demand static import for ~ " 나오는데 클릭해주면 코드가 간결해지면서 상단에 import static이 생긴다. ..

Language/Java 2021.06.05

01) Map 이란 Map은 키-값 쌍으로 이루어져 있는 자료구조이다. (예를 들면 "홍길동의 전화번호"에서 "홍길동"을 키로 생각하고 "전화번호"를 값으로 생각할 수 있다.) 대부분의 데이터는 이름과 전화번호의 관계처럼 어떤 연관성을 가지고 있는데, 이를 쉽게 표현할 수 있는 자료형이 키-값을 가지는 HashMap이다. Map은 순서를 따지지 않기 때문에 List처럼 특성 위치의 데이터를 가져다가 사용할 수 없다. 대신 키를 알고 있다면 그 키를 통해 값을 가져오는 방법을 사용한다. // map을 생성하는 문법 Map map = new Hashmap(); ✔︎ List와 Set과의 다른 점은 key로 쓰일 타입과 value로 쓰일 타입 두 가지를 모두 명시해야 한다는 것이다. Map과 HashMap의 ..

Language/Java 2021.04.29

메소드

01) main 메소드 public class HelloJava { public static void main(String[] args) { System.out.println("Hello, Java"); } } 02) main 메소드의 구조 1. public static : 여기서는 다루지 않고, 지금은 일단 메소드 앞에 "public static"을 적어야 한다고 기억하자 ! 2. void : 메소드가 되돌려 주는 값, 즉 반환값의 자료형을 명시한다. (void는 메소드가 아무 값도 되돌려주지 않을 때 사용) 3. main : 메소드의 이름이다. 4. (String[] args) : 메소드가 받을 수 있는 입력값을 정의한 것이다. 입력값을 필요로 하지 않는 메소드는 이를 생략할 수 있으며, 필요에 따라..

Language/Java 2021.04.28

파일 읽고 쓰기

텍스트 파일의 내용 출력하기 FileInputStream : 파일로부터 데이터를 읽어서 이것을 입력소스로 사용할 수 있게 해주는 타입 하지만 문제가 하나 발생한다. try의 중괄호 블럭 안에 FileInputStream이 선언되어 있으므로 중괄호 블록안에서만 FileInputStream을 사용할 수 있게 된다. 그렇게 된다면 중괄호 블럭 안에 모든 코드를 다 넣어야한다. 따라서 FileInputStream을 블럭 바깥에서 쓰기 위해 선언문을 바깥으로 옮겨준다. 완성 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class FileInput { public static ..

Language/Java 2021.04.02

숫자 맞추기 게임 만들기

숫자 맞추기 게임 만들기 1) 난수 생성 임의의 숫자를 생성하는 방법 Random random = new Random(); int randomNumber = random.nextInt(256); //임의의 숫자 범위 2) 지연 시간 추가하기 지연 시간을 추가하는 코드 Thread.sleep(1000); // 지연 시간(1/1000초 단위) 1/1000초 단위의 시간으로 1000을 입력하면 1초를 쉬게 되는 것임. 예제 이렇게 Thread.sleep 코드를 입력하면 sleep에 빨간 줄이 뜨는 것을 볼 수 있다. alt + enter를 누르면 어떻게 해결할 것인지에 대해 팝업으로 보여준다. 두 번째의 "Surround with try/catch"를 누르면 try-catch블록이 자동으로 만들어지게 된다. ..

Language/Java 2021.03.31

배열

배열 1) 배열의 선언 요일들을 하나씩 변수로 표현하기 위해 하나하나 선언하고 사용한다는 것은 귀찮은 일이다. 이런 불편함을 해소하기 위해 자바의 배열을 사용한다. 배열이란 같은 자료형들이 모인 목록과 비슷한 개념이다. type[] array = {value1, value2, ..., valueN}; 자료형 뒤에 대괄호를 달게 되면 이 자료형의 배열을 사용하겠다 라는 의미가 된다! 2) 배열의 요소에 접근하기 public class ArrayExample { public static void main(String[] args) { String[] days = {"월", "화", "수", "목", "금", "토", "일"}; System.out.println(days[0]); System.out.print..

Language/Java 2021.03.31

반복문

for문 for (초기값; 종료조건; 증가) { 실행할 코드 } * 종료 조건 : 실행 조건이라고 볼 수 있다. 이 부분이 참인 동안 실행(반복)을 한다는 의미이다. * 증가 : 반복문이 1회 반복했을 때 실행되는 코드이다. 예제 public class ForExample { public static void main(String[] args) { for (int i = 0; i < 10; i = i + 1) { System.out.println("현재 반복 횟수: " + i); } } } 중첩 for문 예제 (구구단) public class GuGuClass { public static void main(String[] args) { for (int i = 2; i < 10; i++) { for (in..

Language/Java 2021.03.30

조건문

if if (condition is true) { do something } // ( ) 안에는 boolean 값이 들어가게된다. 참인지 거짓인지에 해당하는 값 else if문의 조건이 거짓일 경우 동작 if (condition is true) { do something } else { do something } public class IfHungry { public static void main(String[] args) { int money = 700; if (money >= 800) { System.out.println("빵 맛있어 ! "); } else { System.out.println("돈이 모자라요 ㅠㅠ "); } } } else if if (condition is true) { do so..

Language/Java 2021.01.30