티스토리 뷰
개발환경 세팅
- Java (JDK 16)
- Gradle (Gradle 7.1.1)
java파일 빌드 : javac ~.java
gradle init 명령어로 통해 프로젝트를 생성한다.
Intellij에서 해당 프로젝트를 연다.
gradle tasks 명령어로 태스크 목록을 확인한다.
gradle build 명령어로 빌드한다.
gradle run 명령어로 실행한다.
gradle test
등의 명령어를 실행할 수 있다.
build.gradle을 보면 task.named('test') 라고 gradle test 관련한 코드는 있지만 나머지 두 개 관련 코드는 없다.
공통적으로 쓰이는 태스크 셋들을 plugins를 통해 추가해놓았다.(plugins { id 'application' })
초보 개발자가 알면 좋을 정보
- 코딩 컨벤션
보통 팀이나 회사나 개발 그룹에서 정해서 사용한다. -> 정하지 않은 경우 일반적인 자바 코딩 룰을 따른다.- 클래스 명은 대문자로 시작한다. (ex. class MyClass {})
- 메소드나 변수명은 소문자로 시작한다. (ex. int myVariable) -> 카멜케이스
- 인덴트를 할 때 (Tab 또는 스페이스) 를 섞어쓰지 않기
- 레퍼런스
- Java에서는 포인터 대신 레퍼런스라는 개념이 있다.
- Java에서는 alloc/free를 개발자가 일일히 신경쓰지 않아도 된다.
- Java에서는 몇 개를 빼고는 모두 레퍼런스 값이다.
- 8개 primitive형 : boolean, byte, int, short, long, float, double, char
- array는 reference로 취급한다. int는 primitive지만 int[]는 reference로 취급한다.
- Call by value / Call by reference
- 호출 시 값을 넘기는 가, 값을 저장한 주소를 넘기는 가
- Constant pool
- 한 번 String 변수가 만들어지고, 거기에 추가를 하면 새로운 String 변수가 생긴다.
- String a = "Hello World";
String b = "!";
a = a + b -> 새로운 세 번째 문자열 변수가 생긴다.
String c = "Hello World";
System.out.println(a == b); -> false 가 출력된다. - 따라서 문자열을 붙일 때에는 StringBuffer를 사용한다.
- StringBuffer sb = new StringBuffer();
sb.append("a");
sb.append("b");
- StringBuffer sb = new StringBuffer();
- StringBuilder와 StringBuffer의 차이점
- String a = "Hello World";
- 한 번 String 변수가 만들어지고, 거기에 추가를 하면 새로운 String 변수가 생긴다.
- Object
- 모든 객체의 최상위 객체이다.
- 모든 객체는 Object의 메소드를 호출할 수 있다.
- Object에 어떤 메소드가 있는지, 어떤 기능을 수행하는지 알자.
toString(), equals(), hashCode()
- Git
- git을 사용하는 것이 기본기이다.
- gitignore를 잘 활용하자.
- 깃허브에 포함되지 않아야 할 파일들이 있다면 좋지 않다.
- 빌드결과, 바이너리, 제너레이트 가능한 파일, 로컬설정, 키/보안 관련 파일들은 업로드 하면 안 된다.
- *.class, *.jar, build/ 등은 안 올려도 된다.
- gitignore.io 를 활용하자.
728x90
반응형
'프로그래머스 백엔드 1기 > Java' 카테고리의 다른 글
Java Interface (4) - 람다 표현식 (익명 메소드) (0) | 2021.08.08 |
---|---|
Java Interface (3) - 함수형 인터페이스, 익명 클래스 (0) | 2021.08.08 |
Java Interface (2) - Default Method (0) | 2021.08.07 |
Java Interface (1) - 기능 (0) | 2021.08.07 |
객체지향 with Java (0) | 2021.08.06 |
댓글