JAVA이야기

2844 단어 TILJavaJava

Coding Convention

  • 코딩 컨벤션은 읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약이다.
  • 코딩 컨벤션을 준수하면 가독성이 좋아지고, 성능에 영향을 주거나 오류를 발생시키는 잠재적 위험 요소를 줄여준다.
  • 팀이나 회사, 개발 그룹에서 정해서 사용하지만 안 정하는 경우에 일반적인 자바 코딩 룰을 따른다.

Data type

  1. Primitive type

    총 8가지의 기본형 타입(Primitive type)을 미리 정의하여 제공한다.

    실제 값을 저장하는 공간으로 스택(Stack) 메모리에 저장된다.

  2. Reference type

    자바에서는 포인터 대신 Reference라는 개념이 존재한다.

    값이 저장되어 있는 곳의 주소값을 저장하는 공간으로 힙(Heap) 메모리에 저장된다.

StringBuffer와 StringBuilder

자바는 문자열을 사용할 수 있도록 String 클래스를 제공하는데 String을 사용할 때 문자열을 생성자의 매개변수로 하여 생성하는 방식과 이미 생성된 문자열 상수를 가리키는 방식이 있다.

String str1 = new String("abc"); // 생성자의 매개변수로 문자열 생성
String str2 = "test"; // 문자열 상수를 가리키는 방식
String str3 = "test";

new 예약어를 사용하여 객체를 사용하는 경우 "abc" 문자열을 위한 메모리가 할당되고 새로운 객체가 생성된다.

하지만 생성자를 이용하지 않고 바로 문자열 상수를 가리키는 경우에는 기존에 만들어져 있던 "test"라는 문자열 상수의 메모리 주소를 가리키게 된다.

"test"와 같이 프로그램에서 사용되는 상수 값을 저장하는 공간을 constant pool 이라고 한다.

프로그램을 만들다 보면 문자열을 변경하거나 연결해야 할 때가 많기 때문에 내부의 문자열이 변경되지 않는 String 클래스보다 StringBuffer와 StringBuilder 클래스를 활용하는 것이 좋다.

  • StringBuffer 클래스는 문자열이 안전하게 변경되도록 보장하지만(스레드 동기화의 안전성), StringBuilder 클래스는 보장되지 않는다.
  • 프로그램에서 따로 스레드를 생성하는 멀티스레드 프로그램이 아니라면 StringBuilder를 사용하는 것이 실행 속도가 더 빠르다.
  • 결국, 두 클래스의 차이는 여러 작업이 동시에 문자열을 변경하려 할 때 문자열이 안전하게 변경되도록 보장해 주는가 그렇지 않은가의 차이

Object

모든 객체의 최상위 객체, 모든 객체에는 Object의 메소드를 호출할 수 있다.

object methods

Git

  1. .gitignore잘 활용하기
    • 포함되지 않아야 할 파일들이 잔뜩 있다면, 감점요소.
    • 빌드결과. 바이너리. 제너레이트 가능한 파일들. 로컬설정. 키/보안관련 파일들
    • .class, *.jar, build/
  2. 명령어로 익힐 필요없이 Tool 을 사용해도 된다.

좋은 웹페이지 즐겨찾기