반응형

final 키워드

작성 계기

근래에 안드로이드 개발을 단기로 하게 되면서 전세계에서는 많이 사용하지만, 내 입장에서는 실무 개발을 해본적이 없는 JAVA로 개발을 해야 했기 때문에 기초적이지만, 기록으로 남긴다.

final의 기본 개념

final 변수

  • 한번만 초기화가 가능함.
    C/C++ 에서는 const 키워드와 성격이 거의 비슷하나 사용 방식은 차이가 있음.

    final 메서드

  • 해당 메서드를 Overide를 하거나 숨길 수 없음.
    아직 JAVA 경험이 많이 없어서 일 수 있으나, 실제로 사용된 코드를 본적은 없음

    final 클래스

  • 더 이상 상속이 불가능함.
    대표적인 사례로 java.lang.System, java.lang.String 등 있다(C++의 경우 String을 상속받아서 확장해서 사용하는 경우가 많음.)

final을 써야 하는 예시

magic number(상수)

어떤 소프트웨어를 개발을 해도 쉽게 직면하는 고민이다. 코드 유지보수와 높은 성능의 소프트웨어가 되기 위해서 magic number를 적절한 혹은 특정 namespzce 에 넣을 때 static과 함께 사용된다.

public class ConstVal {
    final static int powerCode = 0xFF;
    ...
}

익명 클래스

익명 클래스에서 변수를 참조할 때, 자신을 생성한 지역 클래스의 변수를 참조할 경우 사용. 이는 익명 클래스의 인스턴스가 살아 있으나 해당 인스턴스가 참조한 변수가 메모리상 없어지는 것을 방지하기 위해서 정해진 규칙이라 한다.

대부분은 지역 클래스라는 용어를 사용하다 보니 이해를 바로 못 하는 경우가 많은 듯 하다. 실제로 익명 클래스가 인스턴스를 만드는 시점은 지역 클래스의 메서드내에서 코드 실행중에 생성이 된다.

문제는 메서드내의 임시로 선언하고 사용한 변수들은 메서드 실행이 종료가 되면, 후에 GC에 의해서 메모리상에서 제거가 되는데, 이 때 메서드 내에서 생성된 익명 클래스의 인스턴스는 그대로 유지가 된다. 이 때 만약 이 인스턴스가 메모리에서 제거된 변수를 참조하면, 문제가 발생할 수 밖에 없다. 이 때 final 키워드를 사용하면, 해당 변수는 별도로 저장을 하기 때문에 제거가 되지는 않는다고 한다.(람다식에서도 유효한지는 차후 조사해서 추가를 해야 할 듯함.)

참조자료

반응형
반응형

Linux CentOS 7 : Open JAVA 설치하기

알게된 배경

 일반적으로 Linux를 사용할 경우 서버 구축을 하게 되는 경우가 많은데, 특히 웹 서버의 경우 JAVA기반의 웹 앱을 사용하는 경우가 많다. 따라서 JAVA의 설치는 거의 필수라 볼 수 있다.

 JAVA는 ORACLE JAVA와 OPEN JAVA 2가지가 존재한다. 과거에는 안정적인 성능을 위해서는 ORACLE JAVA를 추천을 많이 했었으나 요즘에는 성능차이가 적다. 특히 CetnOS의 경우 open JAVA가 기본 설치 JAVA이다.

 또한 서버에서는 주로 실행을 하기 때문에 JRE만 설치되어 있는 경우도 있기 때문에 이러한 점을 확인해야 한다.


JDK 버전확인

rpm(패키지 관리자)로 jdk 항목을 먼저 확인한다. 또한 jre를 키워드로 입력하여 확인을 할 수 있다.

rpm -qa | grep jdk


저장소 패키지 목록 확인

 yum을 사용하여 설치가능한 항목을 살펴보자. 만약 이미 설치되어 있는 버전과 버전 차이가 없다면, JDK 삭제와 설치를 할 필요가 없다.

yum list java*jdk-devel


JDK 삭제

 앞에서 확인한 항목의 버전이 낮을 경우 삭제한다. 이글이 작성된 시기에는 jdk-1.8까지 나왔으며, 기본적으로는 jdk-1.7이 설치되어 있다. 최신버전을 설치하기 위해 yum remove 명령어를 사용하여 삭제하자.

yum remove java-1.7.0-openjdk-*


JDK 설치

저장소 패키지 목록이 확인한 패키지를 설치하면 된다. 패키지 이름이 길기 때문에 오타에 주의 하거나 "*"를 이용해서 작성하도록 하자. 기본적으로 JDK는 JRE에 의존하기 때문에 JDK를 설치하면, JRE도 설치가 된다.

yum install java-1.8.0-open*.x86_64


JDK 설치 확인

 버전확인 명령어를 실행해서 정상적으로 설치되었는지 확인하면 된다.

java -version
javac -version


참고자료

제타위키 : jdk 목록확인과 설치

블로그 : jdk 제거하기


반응형

+ Recent posts