본문 바로가기

분류 전체보기

(593)
[남궁성 '자바의 정석'] 112~131강 ※ 이 글은 남궁성 저자의 '자바의 정석' 112~131강을 수강한 후 정리한 내용입니다. 1. 래퍼(Wrapper) 클래스 8개의 기본형을 객체로 다뤄야할 때 사용하는 클래스. 객체지향 언어인 자바에서 객체가 아닌 기본형을 사용하는 이유는 성능 때문. 2. Number 클래스 Long => 10^19 Double => 10^308 BigInteger => Long보다 더 큰 정수 BigDecimal => Double보다 더 큰 실수 3. 오토박싱 & 언박싱 오토박싱: 기본형 -> 래퍼클래스 언박싱: 래퍼클래스 -> 기본형 JDK 1.5 이전에는 기본형과 참조형간의 연산이 불가능했었다 4. java.util.Date 클래스 1995년 말 JDK 1.0 버전부터 사용했기 때문에 Date 메서드는 거의 de..
[남궁성 '자바의 정석'] 94~111강 ※ 이 글은 남궁성 저자의 '자바의 정석' 94~111강을 수강한 후 정리한 내용입니다. 1. 내부 클래스의 장점 1) 내부 클래스에서 외부 클래스의 멤버들에 쉽게 접근할 수 있다. 2) 코드의 복잡성을 줄일 수 있다. (캡슐화) 2. JDK 1.8부터는 final 키워드를 생략해도 값이 안 바뀌면 컴파일러가 상수 취급한다. 원래 JDK 1.8 이전의 자바에서 외부 클래스의 지역 변수는 final이 붙은 변수(상수)만 접근 가능했다. 그래서 final 키워드를 생략하면 무조건 에러가 났었는데 JDK 1.8 이후에는 해당 변수가 한번도 변하지 않으면 에러가 나지 않는다. (JAVA가 알아서 final 취급하도록 변경됐기 때문) 3. 상수는 따로 관리하고 있어서 함수를 빠져나가도 메모리에 상수가 남아있다. ..
권력은 나쁜 게 아니다 (feat. 권력의 원리 - 줄리 바틸라나, 티치아나 카시아로) 힘 그 자체는 선하지도 악하지도 않다. 이를 어떤 식으로 행사하느냐는 전적으로 우리 자신에게 달려 있다. 내가 권력이라는 단어를 들으면 함께 생각나는 단어들이 비선 실세, 배후 세력, 부패, 더러움 등등 부정적인 내용들이 대부분이었다. 그래서 은연 중에 힘을 행사하고 권력을 원하는 모습은 나쁘다고 생각했을지도 모르겠다. 하지만 책 “권력의 원리”에서는 나의 색안경을 벗겨주어 힘이라는 개념의 본질을 보게 해 준 책이었다. 책에서 말하는 힘의 본질은 다음과 같다. 힘은 그 누구도 소유할 수 없다. 상대방에 대한 나의 힘은 상대방이 무엇을 원하고 필요로 하는지, 그것에 대한 접근을 내가 통제할 수 있는지에 좌우된다. 반대의 경우도 마찬가지다. 내가 가치 있게 여기는 것을 상대방이 얼마나 통제할 수 있느냐에 따..
[남궁성 '자바의 정석'] 76~93강 ※ 이 글은 남궁성 저자의 '자바의 정석' 76~93강을 수강한 후 정리한 내용입니다. 1. java.lang 패키지의 클래스는 import하지 않고도 사용할 수 있다. 2. 객체지향에서는 다형성이 거의 원탑으로 중요하다. 3. instanceof 연산자는 참조변수의 형변환 가능여부 확인에 사용한다. 형변환 가능하면 true를 리턴함. 형변환 전에는 반드시 instanceof로 형변환 가능한지 확인하고 진행하자. 4. 다형성 장점 1) 다형적 매개변수 : 부모 매개변수로 여러 자식 매개변수를 받을 수 있음 2) 하나의 배열에 여러 종류 객체 저장 가능 5. 인터페이스는 추상 메서드의 집합 (프로그래밍 관점) 인터페이스: 인스턴스 변수를 가질 수 없고 추상 메서드'만' 모아놓음 (JDK 1.8 이전까지는...
[남궁성 '자바의 정석'] 61~75강 ※ 이 글은 남궁성 저자의 '자바의 정석' 61~75강을 수강한 후 정리한 내용입니다. 1. static 메소드(클래스 메서드)는 일반적으로 사용하던 인스턴스 메서드와 다르다. 1) 객체 생성없이 '클래스이름.메서드이름()'으로 호출 2) 인스턴스 멤버(instance variable, instance method)와 관련없는 작업을 하는 메서드 3) 메서드 내에서 인스턴스 변수 사용 불가 2. 생성자에서 다른 생성자 호출시 "첫 줄"에서만 사용 가능. 안그럼 에러난다. 그리고 생성자에서 다른 생성자를 호출하려면 함수이름 대신 this()로 호출해야 한다. 참조변수 this랑은 전혀 다르니까 연관짓지 마라. 3. 프로그래밍은 설계 90 + 코딩 10 설계는 그리기이다. 그리기를 많이 해봐야 잘 그릴 수 ..
[남궁성 '자바의 정석'] 31~60강 ※ 이 글은 남궁성 저자의 '자바의 정석' 31강 ~ 60강을 수강한 후 정리한 내용입니다. 1. switch-case 문에서 case문의 값은 정수, 상수(문자 포함), 문자열만 가능하다. 2. 중첩 반복문의 바깥쪽 반복문에 이름(라벨)을 붙여주면 중첩 반복문 내부에서 break, continue 로 중첩 반복문을 한번에 빠져나갈 수 있다. 실제론 사용 안 함. 3. 배열은 기본적으로 0으로 초기화된다. 4. String 클래스의 내용은 변경될 수 없다. (Read Only) 복사가 일어날 뿐이다. 5. 자주쓰는 Arrays 함수 Arrays.toString(arr); // 1 차원 배열 Arrays.deepToString(arrDimentional); // 다차원 배열 Arrays.equals(arr..
[남궁성 '자바의 정석'] 16~30강 ※ 이 글은 남궁성 저자의 '자바의 정석' 16~30강을 수강한 후 정리한 내용입니다. 1. JAVA에서도 C 스타일의 출력이 가능하다. System.out.printf()를 쓰면 C 스타일로 출력이 가능하다. 2. 문자열 비교에는 == 대신 equals()를 사용해야 한다. ex) String str1 = "abc"; String str2 = "abc"; System.out.println(str1==str2); // true System.out.println(str1.equals(str2)); // true String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1==str2); // false Sys..
[남궁성 '자바의 정석'] 1~15강 ※ 이 글은 남궁성 저자의 '자바의 정석' 1~15강을 수강한 후 정리한 내용입니다. 1. 자바의 버전 자바의 버전은 크게 SE, ME, EE 로 나누어져 있다. SE는 Standard Edition의 약자로 일반적인 프로그래밍을 위해 사용하는 JAVA 버전이다. ME는 Micro Edition의 약자로 모바일, 소형기기 프로그래밍을 위한 JAVA 버전이다. EE는 Enterprise Edition의 약자로 대기업 등에서 규모가 있는 프로그래밍을 위한 JAVA 버전이다. 자바의 주요 버전은 JDK 1.0 -> J2SE 1.2 -> J2SE 5.0 -> Java SE 8 -> ... 과 같이 Major 번호가 3씩 증가한다. 자바는 그동안 안정성을 이유로 버전 출시를 신중히 해왔지만, 타 언어들의 변화 속..