Java 43

[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

[Java/Theory]07. 상속

7. 상속 - Constructor * 객체지향의 특징중 하나인 '객체는 서로 다른 상태를 가지고 있다'는 Constructor라는 Method에 접목된다. * 처음부터 설정된 값으로 똑같은 Instance들을 생성하고 각자만의 특징을 갖게 만든다면, 일일이 Instance의 속성을 바꿔야하기 때문에 코드의 효율성이 떨어지는 것은 물론 객체지향에 어긋난다. * 그러므로 처음에 Instance를 생성할 때, Constructor를 통하여 각자만의 상태로 Instance를 초기화 함으로서, * '객체는 서로 다른 상태를 가지고 있다'라는 특징을 보여주고 있다. * Constructor는 메모리에 Class를 적재하는 역할을 하고 있다. - super, this, super(), this() * super, ..

Java/Theory 2016.05.30

[Java/Theory]06. OOP

6. OOP(Object Oriented Programming) * OOP는 현실세계에 존재하는 것을 시스템으로 표현하는 방법론이다. * 현실세계의 모든 것을 객체라는 것으로 추상화 하여 프로그램상으로 반영하는 방식이다. * 각 객체간의 통신(Message)을 통해서 결과를 처리하는 방식이다. * 객체지향의 기본적인 원리로는 Abstraction, Encapsulation, Modularity 그리고 Hierarchy가 있다. * 이 원리들은 Object, Class, Polymorphism, Relationships라는 개념들에 적용하게 된다. * 이들이 지원하는 언어(Java, C++, C#)를 Object Oriented Programming Language라 부르며, Object Oriented ..

Java/Theory 2016.05.30

[Java/Theory]05. Reference

5. Reference 5-1. Reference Datatype의 키워드 1. new 해당 Datatype의 사이즈를 결정하는 동적 할당 키워드. A a = new A(); 의미 : new라는 키워드를 통해 class A를 메모리에 적재하여 instance를 생성한다. 변수 a는 생성된 인스턴스의 주소를 참조한다. 위의 경우 A라는 클래스를 instance화 하였다. 2. . Reference에서 관계를 참조하는 키워드 5-2. Call by value, Call by reference 1. Call by value. 값을 복사해서 함수에 넘겨주는 방식. 원본의 값이 변경될 가능성이 없다는 특징을 가지고 있지만, 값을 넘겨 줄때마다 고비용, 복사손실 문제가 발생하는 단점도 있다. Ex 1 : 1234 ..

Java/Theory 2016.05.30

[Java/Theory]04. Operator, Condition, Array

4. Operator, Condition, Array - + 정수형이나 실수형은 Datatype에 따라 Casting을 하며 혹은 하지 않고 더하는데 연산의 의미를 두지만 문자형의 경우 이 연산자를 Append라 부른다. System.out.println("aaa" + 1);의 경우 1이 문자형으로 Cast된다. - Shift, Bit Operator 자바는 인간과 친숙한 HLL(High Level Language)다. C계열의 언어는 컴퓨터와 친숙한 LLL(Low Level Language)이다. Shift, Bit는 Binary Operation이므로 LLL에 해당된다. 따라서 자바에서는 Shift, Bit연산은 사용할 수 있으나 자주 사용하지 않는다. - Condition if나 while안에 조건..

Java/Theory 2016.05.30