자바 16

[JAVA] 6. StringBuffer vs StringBuilder

String은 immutable(불변의)한 객체다. String 문자열을 더하면 새로운 String 객체가 생성되고, 기존 객체는 버려진다. 그러므로, 계속 하나의 String을 만들어 계속 더하는 작업을 한다면, 계속 쓰레기를 만들게 된다. ex1) String text = "Hello"; text = text + " world"; //첫번째 text 객체는 쓰레기가 된다. 자바의 가비지 컬렉션이 계속 일을 하게끔 되므로 성능저하를 일으킨다. 이런 단점을 보완하기 위해서 나온 클래스가 StringBuffer와 StringBuilder다. 이 둘의 간단한 차이점은, StringBuffer Stringbuilder Thread Safe win lose Speed lose win ex2) StringBuil..

Java 2021.04.29

[JAVA] 5. 일부 완성되어 있는 abstract 클래스

abstract클래스에 대해 결론부터 말하자면, 설계 -> 개발 프로세스 단계에서 설계 단계를 interface 선언. 개발 단계를 해당 class 및 Impl구현이라고 했을 때, 설계와 실제 개발 사이의 중간 단계를 위한 예약어라고 볼 수 있다. 인터페이스를 선언하다 보니, 어떤 메소드는 미리 만들어 놓아도 문제가 없지만 해당 클래스를 다 만들기엔 애매하다. 그래서, 아주 공통적인 기능을 미리 구현해 놓으면 많은 도움이 되기 때문에 abstract클래스를 만든다. ex) public interface MemberManager { public boolean addMember(MemberDTO member); } public class MemberManagerImpl implements MemberMana..

Java 2021.04.29

[JAVA] 4. Static의 쓰임새와 Static 블록

Static은 객체를 생성하지 않아도 메소드를 호출할 수 있는 마법의 메소드. ------------------------------------------------------------------------ ex) public class ReferenceStatic { public static void main(String args[]) { ReferenceStatic.staticMethod(); //객체 생성 없이 바로 메소드 호출 } public static void staticMethod() { //static 메소드 선언 System.out.println("This is a staticMethod."); } } ----------------------------------------------..

Java 2021.04.29

[JAVA] 3. 오버로딩(overloading) vs 오버라이딩(overriding)

오버로딩(overloading) - 확장 public void print(String stringData) {} public void print(int intData, String stringData) {} - 두 메소드처럼 이름만 같고, 매개 변수가 다른 것이 오버로딩. - "같은 역할을 하는 메소드는 같은 메소드 이름을 가져야 한다. 다만, 전달하는 매개변수의 타입과 갯수는 여러가지이므로 매개변수 선언만 다르게 한다." 오버라이딩(overriding) - 덮어 씀 (부모 클래스의 기능은 무시하고 자식 클래스에서 덮어 씀) - 자식 클래스에서 부모 클래스에 있는 메소드와 동일하게 선언하는 것을 "메소드 overriding"이라 함. - overriding된 메소드는 부모 클래스와 동일한 리턴 타입을 가..

Java 2021.04.29

[JAVA] 2. 자바의 변수 종류는 총 4가지

개념 지역 변수 (local variables) - 중괄호 내에서 선언된 변수 - 메소드 안이든 밖이든 중괄호만 있으면 됨.. 매개 변수 (parameters) - 메소드에 넘겨주는 변수 인스턴스 변수 (instance variables) - 메소드 밖에, 클래스 안에 선언된 변수. - 앞에 static이라는 예약어가 없어야 함. 클래스 변수 (class variables) - 메소드 밖에, 클래스 안에 선언된 변수 중에서 static 예약어가 있는 변수 생명 주기 1. 지역 변수는 선언된 중괄호 내에서만 유효함. 2. 매개 변수는 메소드 호출 시 시작되고 끝나면 소멸됨. 3. 인스턴스 변수는 객체가 생성될 때 생명이 시작되고, 그 객체를 참조하고 있는 다른 객체가 없으면 소멸됨. 4. 클래스 변수는 클..

Java 2021.04.29

[JAVA] 1. 자바 파일 컴파일 과정

*** 자바의 신(이상민 저)을 공부한 내용 중에 기억해야 할 개념들을 정리해 놓은 글 입니다.*** *자바 컴파일 및 실행 절차 1. .java라는 확장자로 되어 있는 소스를 컴파일하면, 2. .class라는 확장자를 가진 파일이 생성되어 디스크에 저장됨. ------------------------------------------------------------------------- 이 .class 파일은 바이너리 파일로 되어 있기 때문에 에디터에서 열어도 보기 힘듦. javac.exe(Windows) 또는 javac(Mac)이라는 프로그램이 컴파일러 역할을 수행. ------------------------------------------------------------------------- 4..

Java 2021.04.29