Java 37

[Java/Theory]17. AutoBoxing, Unboxing

17. AutoBoxing, Unboxing(JDK 1.5) Wraping의 번거로움을 해결한 과정. 일일이 Implicit, Explicit Casting하였지만 직접 대입해도 무관 Ex 1 : 12345int intValue = 1;ArrayList arrayList = new ArrayList(); arrayList.add(intValue); //==>autoboxingint i = arrayList.get(0); //==>autounboxingcs Ex 2 : 123456789101112131415161718public void add15(int intValue,double doubleValue,boolean boo){ //==> Autoboxing 기능 이해 :: Method add14() 비교..

Java/Theory 2016.05.31

[Java/Theory]16. Data Structure

16. Data Structure * Vector 배열에 있는 단점을 보완한 자료구조중 하나. (배열의 단점 : 관리해야 하는 Datatype은 하나뿐이다. 크기를 수정하거나 중간에 추가할 Data가 있으면 Instance를 삭제, 생성해야 되는 불편함) List라는 Interface를 구현하고 있다. => Vector는 List 자료구조중 하나이다. List에 있는 모든 Method들이 Vector에 Override되어 있다. Ex 1 : capacity() : 허용된 크기 size() : 현재 들어있는 크기 : Generic이라 부른다. 특정 DataTypea만으로 List를 관리하도록 하는 Keyword. add()에 들어갈 Argument는 Object다. 그러므로 Wrap되어 있는 Primiti..

Java/Theory 2016.05.31

[Java/Theory]15. StringBuffer, Calander, WrapperClass

15. StringBuffer, Calander, WrapperClass - StringBuffer String으로 생성된 Instance는 그 안에 있는 상태가 Immutable한 특징이 있다. 때문에 Append나 Method를 통해 상태값이 바뀐다면 매번 Instance를 생성, 삭제해야된다. 이러한 반복적인 경우를 줄이기 위한 것이 StringBuffer라는 Class다. 이 Class의 default constructor는 char의 배열이 16개로 선언된다. 이에 따라 문자를 추가, 삭제하는 Method를 통해 배열이 줄어들고 늘어나는 성질이 있어 Mutable한 특징이 있다. Precondition, Postcondition을 보고 이 둘을 활용하도록 한다. - Calander 선언부에 ab..

Java/Theory 2016.05.31

[Java/Theory]14. Object

14. Object 자바에 있는 모든 class의 Super class다. Java API에 있는 문서에 따르면 이 Class는 Heirachy가 없다. 사용자가 만든 class에도 Object가 extends 되어있고 생성자의 super method는 Object에 있는 생성자를 호출한다. Object에서 주로 사용 되는 Method는 toString, equals가 있다. Object는 String과 같은 타 Class에서 이 method들을 overriding하여 응용된다. 확장하지 않는 클래스는 묵시적으로 오브젝트가 확장되어 있다. =>toString() : 해당 클래스의 상태값을 스트링으로 반환. 이 메소드를 오버라이딩 하여 활용 가능. 스트링 변수에 값을 집어넣고 출력시 이 메소드를 참조하지 ..

Java/Theory 2016.05.31

[Java/Theory]13. null, Garbage collection

13. null, Garbage collection Reference type의 변수가 참조 되지 않은 값. 이 값을 출력하면 Object에 있는 쓰레기 값이 출력된다. 생성된 Instance에 의해 참조된 변수가 다른 Instance를 참조 하면 처음 만들어진 Instance의 참조 횟수는 하나 줄어든다. 이 참조 횟수가 0이 되면 그 Instance는 garbage가 된다. JVM 혹은 JRE는 이 garbage를 처리하는 garbage collecter가 있다. garbage를 한번에 모아 처리한다는 것을 garbage collecting, 이를 총괄하여 garbage collection이라고 한다. JRE 1.1에서는 이렇게 까지만 명시하였으나 버전이 높아지면서 메모리 관리에 효율을 증대시키고 있었다

Java/Theory 2016.05.31

[Java/Theory]12. Access Modifier

12. Access Modifier public : 자신 / 동일 Package / 상속 관계 / 그 외 영역 접근 가능 peotected : 자신 / 동일 Package / 상속 관계 / 접근 가능 default : 자신 / 동일 Package / / 접근 가능 private : 자신 / / / 접근 가능 => public, private만 주로 사용됨 * Field를 private로 정보 은닉하여 Getter, Setter를 사용한 것 처럼, class자체의 정보 은닉을 위해 class의 생성자를 private로 선언한다면 외부 class (타 class)에서 Instance 생성이 불가능하게 둘 수 있다. getInstatnce()라는 Method로 Getter를 생성하여 정보 은닉을 활용 할 수 ..

Java/Theory 2016.05.30

[Java/Theory]10. API

10. API 자바 개발자들이 유용하게 코딩하도록 Bean들을 모아둔 집합체. 자바 시스템을 제어하기 위해서 자바에서 제공하는 명령어들을 의미한다. Java SE(JDK)를 설치하면 자바 시스템을 제어하기 위한 API를 제공한다. 자바 개발자들은 자바에서 제공한 API를 이용해서 자바 애플리케이션을 만들게 된다. 패키지 java.lang.*의 클래스들도 자바에서 제공하는 API 중의 하나라고 할 수 있다. API의 내용이 설명된 Source Code에는 /** */로 주석이 설명되어 있다 https://docs.oracle.com/javase/7/docs/api/

Java/Theory 2016.05.30

[Java/Theory]09. Import

9. import Source File를 작성할 때 다른 Package의 class를 사용할 때는 포함된 Package의 이름과 같이 사용해야한다. 하지만, 매번 작성하기기 불편하다. Coding하기 전에 import문으로 사용하고자 하는 Class의 Package를 미리 명시하면 Source File에 사용되는 Class의 이름에서 Package명은 생략할 수 있다. import문의 역할은 Compiler에게 Source File에 사용된 Class의 Package에 대한 정보를 제공하는 것이다. 컴파일러는 import문을 통해 Source File에 사용된 Class들의 Package를 알아 낸 다음, 모든 Class 이름 앞에 Package 이름을 붙여 준다. import문은 Program 성능에 ..

Java/Theory 2016.05.30

[Java/Theory]08. Package

8. Package * Class들의 묶음이다. 패키지에는 Class나 Interface를 포함 시킬 수 있으며, * 서로 관련된 Class들끼리 그룹 단위로 분류하여 Class를 효율적으로 관리할 수 있다. * 동명의 Class 일지라도 서로 다른 Package에 존재하는 것이 가능하므로, 자신만의 Package 체계를 유지함으로써 다른 개발자가 개발한 Class Library의 Class와 이름이 충돌하는 것을 피할 수 있다. * 단순히 Class의 이름으로만 Class를 구분 했지만 Class의 실제 이름(Fully Qualified Class Name)은 Package의 이름을 포함한 것이다. 예를 들면, String Class의 실제 이름은 java.lang.String이다. 즉, java.la..

Java/Theory 2016.05.30