본문 바로가기

항해99

23.08.14 항해 99 16기 프로그래밍 기초1 1일차

드디어 항해가 시작되었다

99일간의 항해 과연 포기하지 않고 잘할 수 있을지 걱정이다

오늘 매니저님들 면담을 했는데 코딩이 처음이란 말에 두분 다 놀라셨다

 

항해에 가입하게된 가장 큰 이유중 하나가 코딩을 몰라도 괜찮다고 이야기해서였는데

두분 다 놀라시고 걱정하는 모습을 보니 덩달아 걱정되었다
과연 나의 항해는 어떤 결말을 맞이할까...

 

오늘은 JAVA를 처음 시작했다

주석과, 메서드, 변수 종류등을 공부했다

 

매서드 어떤 프로그램이 하는 행동을 정의 (사람으로 치면 말을하다, 걷다, 뛰다 등)

 

JVM 자바의 가상환경을 만들어 주는 것

         여러 가지 기기위에 java를 실행시킬 수 있게 함

         구성하기

         1) JRE 자바 실행환경 class를 실행하는 것

         2) JDK JRE를 포함함 자바 개발 키트 javaclass로 변경해주고 디버깅 기능도있음

 

바이트코드 java 프로그램 변환코드 ~.java를 운영체제가 읽을 수 있는 코드로 자바 컴파일러가 변환한 코드

 

자바컴파일러 javaclass라는 파일로 변환해주는 것 java는 운영체제가 읽을 수 없음 class로 변환해야 운영체제가

                      읽을 수 있음

 

인터프리터 바이트코드를 기계어로 번역해줌

 

jit컴파일러 인터프리터의 효율을 높여줌

 

메모리영역 java 데이터를 저장하는 영역 윈도우로부터 jvm이 할당받은 영역

                   stack 영역 기본형 변수 와 참조형 변수(주소값) 저장됨

                   heap 영역 참조형 변수(원본값)를 위한 별도공간

 

클래스로더 바이트코드를 메모리에 저장

 

가비지 컬렉터 메모리영역에서 사용하지 않는 데이터를 주기적으로 흡수하는 청소기

 

// 주석 설명을 달아놓는 기능

 

public class Main main이라는 class를 만듬 public(접근)제어자, 공공의 라는 뜻

                               main class의 이름은 .java의 이름과 동일해야함

 

하위요소 = 메소드 public static void main(string[] args)

 소괄호 바로 앞에 있는게 메소드 이름

 static은 이 프로그램이 시작될 때 무조건 실행되는 녀석임을 표현함

 void는 메서드의 출력값의 데이터 타입, 아무것도 없다는 뜻=출력은 없다 output

 string[] 입력에 대한 데이터타입 args 변수명 아무거나해도 상관없음 매개변수 자리 input

 

main 메소드 반듯이 있어야함 자바앱은 제일 먼저 클래스의 main 메소드를 실행시키는게 JVM의 약속임

 

객체 System.out.println(“Our First Project! :)); 특징(속성, 변수), 행동(메소드)을 가지고있음

                                                                                out은 객체

                                                                                println은 행동

  

print 줄바꿈 하지 않음

 

println 줄바꿈 함

 

ln 라인

 

문자기입 “ ” 해야함 숫자 상관없음

 

변수 변할 수 있는 것 저장 공간을 선언

         선언할 때는 저장공간에 담을 값의 타입과 이름이 필요

         예) int number = 10에서

         int는 저장공간타입(접시종류), number는 저장공간 이름(접시이름), 10은 저장(할당)할 값 (담을 음식)

 

상수 변하지 않는 저장공간, 한번 할당하면 바꿀 수 없는 저장공간

         예) final int number = 10에서 final은 이후에 변할 수 없다고 명시하는 것

 

저장공간의 타입

1) 기본형

 (1) 논리형 변수 : boolean

       True(1)/False(0)만 저장

 (2) 문자형 변수 : char

       ‘A’‘1’과 같은 문자 하나만 저장

 (3) 숫자형(정수형 변수)

       byte : -128 ~ 127 범위 숫자만 저장 가능

       short (2byte) : -32,768 ~ 32,767 범위 숫자만 저장 가능

       int (4byte) : -21~21억 범위 숫자만 저장 가능

       long (8byte) : 9백억경 정도의 매우 큰 수 저장 가능 숫자 뒤에 L(접미사)을 붙여야함

 (4) 숫자형(실수형 변수) 0.123 같은 소수점 실수값을 저장 표현범위가 매우 넓어서 정수형 변수에서 담지 못할 수 있다

       float (4byte) : 3.4 * -10^38 ~ 3.4 * 10^38 숫자 뒤에 f(접미사)를 붙여야함

       double (8byte) : 1.7 * 10^308 범위를 표현

 

2) 참조형 = 주소형 : 어느 공간에 있는 주소값을 바라보고 있는 변수, 원본값의 주소값을 저장함

 (1) 문자열 변수 : string 문자형이 모였을 때 문장을 저장

 (2) 그 외 : Object, Array, List 등등 단일 저장 공간에 담을 수 없는 값을 저장

 (3) 래퍼클래스 변수 : 기본형 변수를 클래스로 감싸는 것 

      예) int number =21

      interger num = new integer(number)

      int로 선언한 number라는 변수를 new integer라는 래퍼클래스로 넣어주면

      새로운 num 이라는 integer 타입의 변수가 나오게됨

 

단위

bit 01을 표현하는 최소단위

     정수형 값은 10진수 숫자(0~10범위의 숫자)2진수(0~1범위)bit로 저장(표현)

     4 bit16진수 숫자(0~F(16)범위의 숫자)2진수(0~1범위)bit로 저장(표현)

1byte = 8bit (2의 팔제곱 만큼 표현 가능)

     숫자 변수는 bit 2진수를 10진수로 저장(표현) 0~255(28)까지 저장(표현)

 

아스키코드 문자를 저장(표현)하는 코드

                    숫자를 문자로 문자를 숫자로 매핑

                    Scanner sc = new Scanner(System.in);

                     Scanner는 실행하면 콘솔창에서 입력하라고 시킴 입력한 값을 저장 System.in 입력하는 값

                     int asciiNumber = sc.nextInt();

                     System.in에서 입력한 값을 읽는게 nextInt();이고 이것으로 읽은 값을 하나 하나를 아스키넘버로 저장

                     char ch = (char)asciiNumber 저장한 아스키넘버를 char로 바꾸는 작업 (char)은 형변환

 

문자형 기본형 문자 한개만 저장 ‘a’ 문자뒤에 \0 널문자가 없음

 

문자열 참조형 여러개의 문자를 문장형태로 저장 “a” 어디가 끝인지 \0 널문자 너어야 함

 

자동형변환 작은타입 > 큰타입 값의 손실이 없음

 

강제형변환 큰타입 > 작은타입 값의 손실이 생김