Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

스파르타 코딩클럽 부트캠프 (Java 문법 1장) 본문

Java

스파르타 코딩클럽 부트캠프 (Java 문법 1장)

H.S-Backend 2024. 4. 22. 16:41

개발 언어의 역사

A언어

  • 첫 개발 언어 A Programming Language의 약자
  • 1960년대 발표
핵심기능
  • 입/출력, 문맥

 

B언어

  • Bell사에서 개발한 언어
  • 1960년대 발표
핵심기능
  • A언어 기능 + 기계식 데이터 타입, 연산기능 , 메서드

 

C언어

  • B언어보다 좋은의미로 C언어
  • 1970년대 발표
핵심기능
  • B언어 기능 + 자료형 데이터 타입, 자료구조

 

자바언어 

출처: 자바
  • 어디서나 동작가능한 , 자바 커피에서 이름을 따서 만든 Java언어
  •  1990년에 발표
핵심기능 : C언어 기능 + 공통 실행환경, 클래스, 객체
출처 : 스파르타 코딩클럽

Java를 배워야 하는 이유는?

가장 많이 쓰이는 개발 언어중 하나
  1. 여러 OS에 실행이 가능하다
  2. 이해하기 쉽고 유지보수가 쉽다.
  3. 안전성이 높아서 프로그래밍 오류를 방지하고 안전하다.
  4. 대규모 앱개발이 가능하다
  5. 다양한 개발 도구와 라이브러리를 사용할 수 있다.(API)

 

JVM이란

Java Virtual Machine (자바 가상 머신)

 

가상의 기기를 만들어 준다
여러가지 기기 위에 Java 프로그램을 실행 시킬수 있는 가상머신을 만들어준다.
출처 : 스파르타 코딩클럽
  • 바이트코드 = Java프로그램 변환코드
  • 인터프리터 = Java .class 코드 해석기
  • JIT 컴파일러 = 빠른 Java.class 코드 해석기
  • 메모리 영역 = Java 데이터를 저장하는 영역
  • 클래스 로더 = Java .class 바이트 코드를 메모리 영역에 담는 운반기
  • 가비지 컬렉터 = 쓰레기 청소기

 

Java 컴파일러
내가 작성한 Java 코드들을 운영체제가 읽을 수 있는 바이트 코드로 변환하는 변환기
출처 : 스파르타 코딩클럽

JRE란 

Java Runtime Environment (자바 실행 환경)

Java의 JVM을 설치하는 방법은 JRE를 설치하는것

하지만 .class 파일만 실행이 가능하다.
 


JDK란

Java Development Kit (자바 개발 키트)

Java의 기능과 함께 Java 프로그램을 개발할 수 있는 JDK가 있다

JDK는 JRE 기능을 포함한다.

.java 파일을 .class 파일로 변환해주는 Java Compiler(Javac)기능이 있다.

코드를 디버깅 하는 jdb 기능이 있다.

 

JDK 디버깅 기능

  1. JDK의 jdb기능을 통해 실행 중인 프로그램의 코드 실행을 따라다니며 볼 수 있다.
  2. 내가 작성한 코드라인에 중단점을 설정하고 디버그 모드로 프로그램을 실행하면 
  3. 프로그램의 중단점 코드라인을 수행할 때 프로그램 흐름이 일시정지되며 변수들을 볼 수 있게 도와준다.
  4. 디버깅 = 중단점 일시정지 + 코드라인 단위 수행
출처 : 스파르타 코딩클럽

변하는것, 변하지 않는것 

출처 : 스파르타 코딩클럽
저장공간에 담을 값의 타입과 이름을 명시하여 선언한다.

값의 타입 : 저장공간(그릇)의 종류
값의 이름 : 저장공간(그릇)의 이름
int number; //number라는 이름의 int(숫자)타입의 저장공간을 선언
String name; // name이라는 이름의 String(문자열)타입의 저장공간을 선언

값의 저장 

선언과 동시에 저장 = 초기화

출처 : 스파르타 코딩클럽

선언 이후 값을 저장 = 덮어쓰기

출처 : 스파르타 코딩클럽
int number = 10; // 선언과 동시에 저장공간에 값을 저장
number = 11; //이후에 다른값을 저장공간에 저장

저장공간의 종류 (변수 타입)

저장공간은 변수와 상수로 나뉜다.
출처 : 스파르타 코딩클럽

논리형 변수 = boolean

boolean flag = true;    //boolean으로 선언하고 true값으로 초기화
flag = false;                // false 값으로도 저장할 수 있다.

문자형 변수 = char

char alphabet = 'A';  //문자 하나를 저장

정수형 변수 = byte, short, int, long

byte = -128 ~127 범위만 저장 가능
shoty (2byte)는 -32768~32,767 범위만 저장가능
int(4byte)는 -21억 ~ 21억 범위의 숫자만 저장가능
long(8byte)는 9백경 정도의 매우 큰 수를 저장가능.

public class Main {

    public static void main(String[] args) {
      byte byteNumber = 127;
      short shortNumber = -32767;
      int intNumber = 214783847;
      long longNumber = 123543346454L;
    }

 

정수형 리터럴 구분값 (리터럴 = 데이터 값)
int와 long의 데이터 를 구분하기위해 숫자뒤 L을 붙인다. (접미사)


실수형 변수 : flaot, double

실수는 표현범위가 넓어 정수형 변수에서 담지 못할 수 있다.

 
float(4byte) = 3.4 * 10^38 ~ 3.4 * 10&38(long보다 크다) 범위만 저장가능
double(8byte) = 1.7 * -10^308 ~ 1.7* 10^308(long보다 크다) 범위만 저장가능

 

float이 long보다 더 넓은 범위를 표현하는 이유

출처 : 스파르타 코딩클럽
부동 이라는 의미를 갖고 소수점이 움직인다는 의미의 부동 소수점 방식으로 숫자를 저장한다
부동 소수점 방식 : 가수와 지수를 구분해서 저장 및 값을들 곱한 값을 표현 하는 방식
출처 : 스파르타 코딩클럽

 

float과 double의 데이터값(리터럴)을 구분하기위해서 담을 숫자 뒤에 f를 붙인다.(접미사)

 

float은 소수점 7자리, double은 16자리까지 표현가능하다.

문자열 변수 : String
그외 : Object, Array, List

 

박싱과 언방식

 

박싱

기본타입에서 래퍼클래스 변수로 변수를 감싸는 것
 

언방식

래퍼 클래스 변수를 기본 타입 변수로 가져오는 것.

public class Main {

    public static void main(String[] args) {
        // 박싱 VS 언박싱

        // 박싱
        // Integer 래퍼 클래스 num 에 21 의 값을 저장
        int number = 21;
        Integer num = number;

        // 언박싱
        int n = num.intValue(); // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줍니다.
    }


}
기본 타입래퍼 클래스
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

 


아스키 코드 표

출처 : 스파르타 코딩클럽
숫자를 문자로 매핑 (int = > char) 해서 표현한다.

숫자에서 문자로

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int asciiNumber = sc.nextInt();
        char ch =(char)asciiNumber;

        System.out.println(ch);
    }  //100을 입력하면
}      //아스키코드의 해당 문자값이 출력되어 나온다 

문자에서 숫자로

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        char letter = sc.next().charAt(0);
        int asciiNumber = (int)letter;

        System.out.println(asciiNumber);
    }   //A를 입력하면 
}       //해당하는 문자의 숫자코드가 출력되어 나온다.

문자와 문자열이란

문자는  문자 한개만 저장
char alphabet = 'A';
문자열은 문자 여러개를 문장형태로 저장
String message = "Hello world";

 
문자와 달리 문자열은 문장끝에 \0(널문자)가 저장된다.


참조형변수는 주소값을 저장하는 주소형변수이다.

 
기본형 변수는 원본 값이 Stack 영역에 있다.-> Stack영역은 정적으로 할당된 메모리 영역이다.
참조형 변수는 원본 값이 Heap 영역에 있다.-> Heap영역은 동적으로 할당도니 메모리 영역이다.


입 출력

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       String input = sc.nextLine();

        System.out.println("입력값 : " + input);
    } //Scanner 객체를 new명령어로 생성
}     //sc(Scanner)의 .next();를 실행하면 input변수에 입력한 글자가 출력
      //입력값 : input

 

형변환의 이해

변수를 문자로 숫자로
숫자에서 문자로 
또는 문자에서 문자로 등등
 

변환을 하고싶은 값으로 변경하는 과정

1이 10에 저장될수는 있지만 10이 1에 저장될 수 없다.

 

자동 타입 형변환 과 강제 형변환

작은타입에서 큰타입으로 변경하는것은 자동으로 가능하다.
큰타입에서 작은타입으로 변경하는것은 강제로 해야한다.

 
 
 
https://hs-backend.tistory.com/17

Java 1장(with 자바의 정석)

자바(Java)란 ?프로그래밍 언어 (Programing language) 컴퓨터 프로그램(애플리케이션)을 만드는데 사용한다 실행환경(JRE) + 개발도구(JDK) + 라이브러리(API)라이브러리를 사용하면 쉽고 빠르게 어플리케

hs-backend.tistory.com

 
https://hs-backend.tistory.com/23

Java 1장(with 이것이 자바다)

프로그래밍 언어란 컴퓨터가 이해할 수 있는 언어 (Machine Language) 기계어는 0과 1로 이루어진 이진 코드 프로그래밍 언어는 고급언어와 저급 언어로 구분된다. 고급언어 컴퓨터와 대화 할수 있도

hs-backend.tistory.com

 

반응형