JAVA: 282개의 글
일반클래스는 Package member class 라고들 하며, 아래 항목에서 제외했다. 구글링해보면 클래스간에 관계나 큰 틀에서의 구조를 안잡고 나열하는 식이 많은 것 같다ㅋㅋ 1. 중첩 클래스는 왜 쓰는가? 클래스들의 논리적인 그룹을 나타낼 때 쓴다. 주로 model 객체에서 상위모델과 하위모델이 있을 때 쓰는 것 같다. (Static Nested Class 를 많이 씀) 향상된 캡슐화 좋은 가독성과 유지보수성 2. 중첩 클래스의 종류 3. 내부클래스 (Inner Class) 내부클래스로서 일반클래스 내부에 생성된다. Non-Static Nested Class 라고도 불린다. 밖에 있는 클래스는 내부클래스를 멤버변수처럼 사용할 수 있다. 사용하려면 new로 인스턴스를 만들어야한다. 내부클래스는 자신의..
1. Object 클래스 java의 모든 클래스의 최상위 부모이다. 자동으로 java.lang.Object 클래스를 상속받으므로 extends 역시 필요 없다. 2. 주요 메소드 반환형메소드명설명 boolean equals(Object o) 객체 간에 동일여부를 나타냄 int hashCode() 객체의 해쉬값 String toString() 객체를 string으로 나타냄, 기본적으로 클래스명@16진수hashCode값 Object clone() 객체를 복사해서 리턴 void finalize() 객체가 GC처리 되기전에 호출 Class getClass() 객체의 runtime class를 리턴 instanceof 연산자와 getClass() : instanceof 연산자는 상위 부모클래스에도 true가 된다..
1. apache commons 가 뭔가? 2002년 9월에 처음 만들어졌으며, 자바관련 공통 컴포넌트 개발을 위한 프로젝트의 모임 크게 3가지의 분류가 있다. Commons Proper : 서로 재사용 가능하도록 개발 및 활용이 가능한 프로젝트들의 모임, 외부 라이브러리의 사용이 거의 없어 아파치 소프트웨어 외부의 변경에 영향을 받지 않고 내부적으로 안정적으로 개발 Commons Sandbox : 아직 Proper 단계로 올라가지 못한 단계의 프로젝트들을 모아놓은 공간 Commons Dormant : 거의 활동이 없이 정지된 프로젝트들의 목록 2. 우리가 자주사용하는 프로젝트들? Commons Proper 에서 내 기준 자주 본 것들을 정리해보자. LANG : java.lang 패키지의 기능을 확장하여..
참조문서 http://d2.naver.com/helloworld/645609 https://docs.oracle.com/javase/8/docs/api/java/time/package-frame.html http://jekalmin.tistory.com/entry/%EC%9E%90%EB%B0%94-18-%EB%82%A0%EC%A7%9C-%EC%A0%95%EB%A6%AC jdk 1.8 부터 날짜 API 가 좋아졌다고 한다. java.util.Date 와 Calendar 를 사용했을 때도 크게 불편한 건 못느꼈지만(불편했다고하면 0부터 시작한다는거?ㅋㅋ) 새로운 java.time 패키지를 알아보자. 1. 이전 방식의 문제들(util.Date, util.Calendar) 찾아보니까 문제가 많군..? 복잡한 날..
참조문서 : https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html 1. enum 이란? enumeration의 앞글자로 열거라는 뜻이다. JDK 1.5 부터 관련이 있는 상수들의 집합을 사용할 때 enum을 사용한다. enum은 완전한 클래스이다. 그 이전에는 열거형 상수를 선언하려면 다음과 같이 했다. 클래스 내에 final static 로 변수 선언 interface 에 상수선언 기존방식의 문제 한 클래스에 final static 으로 다 선언하자니 네임충돌 발생할 수도 있고, 복잡함 인터페이스를 사용하면 위 문제는 해결되나, 타입안정성이 떨어짐 (컴파일 때 형검사를 하지 않으므로 오류발생 소지) enum의 장점 코드가 단순해지고, 가독성이 짱..
1. 서블릿이란? HTTP protocol 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속하여 개발하며, Servlet은 컨테이너에 의해서 실행되고 관리된다. HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다. 서블릿은 외부 요청마다 프로세스보다 가벼운 스레드로써 응답한다. 2. JSP와 서블릿의 차이점 JSP : HTML 문서 안에 java 코드를 포함하고 있다. MVC에서 View 역할 서블릿 : 자바 코드 안에 HTML을 포함하고 있다. 주로 MVC에서 컨트롤러 역할 3. 서블릿 컨테이너(톰캣 등)란? HTTP 요청을 받아서 Servlet을 실행하고 생명주기를 관리하는 역할을 한다. servlet과 웹서버가 통신할 수 있는 방법을 제공 멀티 스레..
1. static 이란? 객체마다 데이터를 가지고 있는데, 이걸 공유해야 할 상황에 static을 쓴다. 여러 객체의 메소드들이 동시에 접근, 수정할 수 있는 전역변수같은 느낌이다. static 키워드를 사용한 변수를 클래스 변수라고 한다. 즉 객체가 아닌 클래스의 변수이기 때문에 new로 객체를 안만들었어도 사용이 가능하다. ex. System.out.println(Test.count); 2. 메모리 상 위치 클래스 변수는 JVM Runtime Data Area에서 Method area 에 들어간다. 여기서 클래스는 Method area에, 객체는 heap에 올라간다. static이 붙으면 클래스의 시그니처?같은 것들이 메모리 상에 로딩되면서 같이 올라가는 것이다. 따라서 아래에서 설명할 static ..
1. 접근제어자의 종류 현재 클래스 동일 패키지 상속받은 하위클래스 모든 클래스 public O O O O protected O O O X private O X X X (default) O O X X public : 모든 외부에서 직접 접근하거나 호출 가능 protected : 현재 클래스와 동일 패키지이거나 다른 패키지이더라도 상속 시에는 접근하거나 호출 가능 private : 현재 클래스 밖에서는 사용X (default) : 현재 클래스와 동일한 패키지 내에서만 접근하거나 호출 가능, 뭐 안붙이면 이거다. 2. 주로 어디다 쓰는가 클래스는 public 과 default만 선택가능하다. 필드는 다 쓸 수 있지만 보통 private로 한다. 완벽한 상수는 public static을 주로 사용한다. 메소드..
1. 생성자란? 객체를 생성할 때 init하는 것이다. 생성자는 오로지 클래스에서 객체를 생성(new)할 때만 사용된다. 몇가지 특징으로는 생성자의 이름은 클래스명과 동일하고, 리턴 타입이 없다. 2. 기본 생성자 생성자를 따로 정의하지 않고 클래스를 만들더라도, 객체는 만들어진다. 이것은 컴파일러가 default 생성자를 끼워넣었기 때문이다. // Test.java public class Test { public static void main(String[] args) { System.out.println("hello world"); } } // javap -c Test.class C:\Users\sjh836\Desktop>javap Test.class Compiled from "Test.java" p..
참조문서 : https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html 1. 예외처리란? Exception Handling 이라고 하며, 잘못된 하나로 인해 전체 시스템이 무너지는 결과를 방지하기 위한 기술적인 처리이다. java에서는 예외와 에러도 객체로 처리한다. 예외가 주로 발생하는 원인 사용자의 잘못된 데이터 입력 잘못된 연산 개발자가 로직을 잘못 작성 하드웨어, 네트워크 오작동 시스템 과부하 2. Throwable 클래스 (클릭하면 크게 보인다..) Throwable 클래스는 예외처리를 할 수 있는 최상위 클래스이다. Exception과 Error는 Throwable의 상속을 받는다. 유명한 것들만 정리해보았으며, 실제로 더 많다. i..