[TIL]W1D1

stella·2021년 8월 8일
0

[DAY1-8/2]

(1) JAVA 개발환경

  • JVM: 자바 가상머신으로 java가 실행되기 위해 필요하다.(자바 실행환경=JRE)

  • JRE: 실행환경->java 명령만 있음(실행환경만 있는것)

  • JDK :JRE와 개발툴이 합쳐진 형태->개발환경->java+javac(빌드)

JDK만 중요하게 생각하고 다른 것들이 어떤 역할인지 자세하게 몰랐는데 알게 되었다.

(2) Build Tool

  • 자동으로 빌드,실행해주는 툴

  • ex) Ant,Maven,Gradle

  • Build script: 소스는 어디에 있고 어떻게 컴파일 해야하는지에 대한 정보가 담김

  • task 들로 이루어져 있다.

예전에 Gradle으로 프로젝트를 할때 구글링을 통해 찾아보다가 Maven으로 개발한 코드를 보고 놀래며 그냥 껐었는데 내가 buildtool개념에 대해 무지했던 것 같다...

(3) IDE(통합 개발 환경)

  • Build tool을 이용하여 Gradle에 있는 task들을 한번에 해주고 프로젝트 생성을 해주는 역할

빌드 툴과 ide가 어떤 관계인지 정확하게 알게 된 것 같다.

(4) Refernce

  • 포인터와 비슷한 개념

  • java에서는 다음과 같은 값 말고는 다 Refernce 값이다

    • 8개 primitive(boolen,byte,short,long,float,double,char)
  • array는 reference 값이다

  • Call by value=> 사용되는 인자가 값을 넘겨줌 따라서 결과 값에 변화가 없음

  • Call by reference=> 사용되는 인자가 주소를 넘겨주어 주소를 참조하여 데이터 변경가능

(int a-> Call by value/ Integer b-> Call by reference)

(5) Constant Pool

String s1= "박연수" 
Sring s2="데브코스"

이런 식으로 될때마다 Sting Pool에 문자열이 쌓이게 된다.

결과적으로 += 연산이 지속될때마다 Sting Pool에 계속해서 문자열들이 쌓이게 되며 많은 메모리가 필요하다--> 비효율적이다

[그냥 궁금해서 찾아본것] String s="박연수" VSString s= new String("박연수")

  • 전자: Heap안에 s라는 객체 생성(주소값으로 참조하여 값 변경가능)

  • 후자: Constant String Pool에 "박연수"라는 리터럴이 생성

String Buffer을 사용

  • Sting Buffer은 Buffer을 만들어 놓고 문자열 연산을 진행한후 한번에 문자열을 만들어 출력한다.

(6) Git

-.gitignore을 잘 활용하기

  • 빌드 결과, 바이너리, 로컬 설정, 키/보안 관련 파일들
    +.class, .jar, build/

    예전에 ec2서버 연동과정에서 ignore에 build/ 파일을 추가하지 않아서 계속 build fail났었던 적이 있었는데 잘 활용해야겠당...

profile
뚠뚠뚠..

0개의 댓글