0. 자바는 관습에 의해 구축된게 굉장히 많은 언어이다. 이렇게 하면 이렇게 이해할거야~ 라고 가정하는게 많다.
1. 클래스 이름의 첫글자는 대문자, 메소드명은 반드시 소문자로 시작해야한다
- 특히 라이브러리를 가져올경우, 이 대소문자 구분 패턴에 의존해서 만들어 진게 꽤 많다.
2. 의미있는 이름쓰기
-> 코딩테스트를 할 경우 n,k등 이름을 지정해주면 그냥 그대로 쓰는게 디버깅할때 편하다
3. 메인함수에서 코드 짤일은 거의 없다
-> 코테에서도 마찬가지, 함수 만들어서 코딩을 해버릇 하는게 좋다
4. 코테에서 println 쓸일은 거의 없다.
-> 백준에서 print만 쓰고, 값을 확인하는 등 보조로도 사용안한다
5. 코테에서 확인하기 위해 프린트 찍은건 지우거나 주석처리를 반드시 해줄것!
6. 변수 선언과 입력은 동시에 하는게좋다
-> ex) int n = sc.nextInt();
7. 반복문에서 한번쓰는 변수는 반복문 안에 선언하고 버려지도록 하는게 좋음. 그러나 반복문 안에서 선언해주기.
-> 쓰는 변수는 최대한 가깝게 쓸것
8. 스캐너 sc 만들때 변수명 sc는 바람직 하지않으니 풀네임 쓰는게 되도록 좋다 : scanner로!
-> Scanner 대신 var scanner= ... 이런식으로 var 넣어서 선언해줘도 됨.
9. import에서 안쓰는건 정리해주자
10. 코테에서는 귀찮으니 import java.util.*; 로 사용한다.
11. 변수는 사용하는곳 가깝게, 끊어서 선언해주는게 좋음. : 디버깅할때 편하다
12. 자바에서 변수 첫글자를 대문자로 쓰는경우는 없다
13. 자바에서 변수명에 _ 안씀.. call_ch말고 callCh 이런식으로 사용한다.
14. 스페이스 잘 맞출것 : int a= 10;, int a = 10; -> 이런거 통일시켜주자
15. 입력값은 왠만하면 직접 안바꾸는게 좋음. 왜냐면 나중에 입력값과 비교하는 게 있을 수 있기 때문이다
-> 그러니 입력값은 다른 변수를 선언한 다음 거기에 저장해서 쓰자!
16. for(var cur : str.toCharArray()) -> string을 char의 배열로 바꾸는 거임.
-> 자바는 String 타입인 변수를 ==으로 비교 못함!ㅠㅠ
17. tmp는 뭔지 유추하지 못해서 피해야하는 변수명임
18. char top = stack.peek(); -> peek()은 스택 제일 위의 값을 pop하지 않고 가져옴.
-> 그래서 peek으로 가져와서 비교하고 지우는게 좋다. 왜냐면 뽑았다 다시 넣는 상황이 있을수 있기때문에(큐인경우 정말 곤란)
19. if문은 조건에 굳이 ==true를 안써도 됨. 왜냐면 조건이 true여야만 실행이 되서
-> if(n.contains(tmp)) : true면 실행
-> if(!n.contains(tmp)) : 이건false일 경우 실행
20. 프로그래머스에서 실제 코딩테스트를 많이봄
21. 입력받는게 복잡해서 보통 클래스를 새로 선언해서 입력 받는 클래스로 기능을 나눠서 씀.
22. 변수이름이 복수인경우 배열이거나 리스트인 경우가 많음. 단수면 int같은걸 씀
-> 예를들면count, counts차이!
23. nowArray = nowArray%currentCount;
-> 자주쓰는 테크닉임!! 나머지에 따라 배열 순서 초과시처음으로 돌아가는거!!
24. arraylist는 배열을 이용해서 리스트를 구현
-> list는 인터페이스임.. 인터페이스는 다른 종류를 같은 부류로 혼합해서 쓸 수 잇는거임(list = 개, arraylist =포메)
25. 큐는 Queue<> user = new ArrayDeque<>(); 로 선언가능; 어레이 데큐는 배열 큐임
26. int head = user.poll(); 첫번쨰 값 가져옴
27. 배열은 remove 가 없다.. 그래서 지울 위치 뒤에있는걸 앞으로 한칸씩 땡겨와야함;
28. 자바는 런타임에 클래스를 추가하는 기능이 많다. 그래서 객체를 new로 생성할 수 없는 경우가 많아서 팩토리 패턴을 많이 사용한다
29. 하나의 소스파일엔 하나의 클래스만 들어가는게 정석이다
30. 소스코드의 파일명과 클래스명이 일치해야한다
'Develop > Java' 카테고리의 다른 글
[IntelliJ] Gradle - Lombok 설치방법 (Macbook) (0) | 2023.03.27 |
---|---|
[IntelliJ]Java build system 및 프로젝트 빌드 하는 방법 (0) | 2023.03.19 |
JAVA 디자인 패턴 (0) | 2023.03.19 |
java 기본 구조 (0) | 2022.10.09 |
java 설치 및 실습환경 구성 (0) | 2022.10.09 |