MacOS m1 openjdk 설치하기
2023. 9. 17. 19:30
프로그래밍 언어/Java
맥북 m1 에서 openjdk 를 설치하는 과정에 대해서 정리해보려고 한다. brew openjdk 버전 확인 brew 를 통해 설치할 수 있는 openjdk 버전 확인하기 $ brew search openjdk ==> Formulae openjdk openjdk@11 openjdk@17 openjdk@8 openj9 openvdb brew 를 통해 openjdk 설치하기 나는 openjdk 17 버전을 설치하려고 한다. $ brew install openjdk@17 java version 확인하기 openjdk 를 설치하고나서 java 의 버전을 확인하려는데 다음과 같이 메시지가 나왔다. $ /usr/libexec/java_home -V The operation couldn’t be completed...
Java 상속 관계 클래스 생성자 호출 순서 정리
2021. 7. 23. 20:48
프로그래밍 언어/Java
상속관계에서 객체 생성시 생성자의 호출 순서를 간단한 예제를 통해 알아보았다. 예제에서는 다음과 같이 3개의 클래스를 만들었다. SuperClass SubClass SsubClass 순서로 실행되는 것을 확인할 수 있었다. 정리해보면 [호출 순서] SsubClass -> SubClass -> SuperClass [실행 순서] SuperClass -> SubClass -> SsubClass
Java 캡슐화 (Encapsulation) 개념 정리
2021. 7. 23. 20:20
프로그래밍 언어/Java
캡슐화 (Encapsulation) 연관된 목적을 가지는 변수와 함수를 하나의 클래스로 묶어 외부에서 쉽게 접근하지 못하도록 은닉하는 것이다. 캡슐화는 중요한 데이터를 쉽게 바꾸지 못하도록 할 때 사용한다. 캡슐화를 하는 가장 큰 이유는 정보 은닉에 있다. 캡슐화를 통해 외부에서 내부의 정보에 접근하거나 변경할 수 없게 직접적인 접근을 막고 객체가 제공하는 필드와 메소드를 통해서만 접근이 가능하다. 이렇게 접근을 제한함으로써 유지보수나 확장 시 오류의 범위를 최소화할 수 있고 객체 내의 정보 손상과 오용을 방지하고 데이터가 변경되어도 다른 객체에 영향을 주지 않아 독립성이 좋다. 캡슐화는 접근제어자를 통해 이루어진다. * 자바의 접근 제어자 public : 접근 제한 없음 protected: 동일한 패키..
Java 상속(inheritance) 기본 개념 정리
2021. 7. 19. 19:07
프로그래밍 언어/Java
Java 상속 (inheritance) 자바에는 상속이라는 개념이 있다. 조금 더 자세하게 말해보면, 부모의 것을 자식에게 물려주는 것처럼 자바에는 부모 클래스(상위 클래스)와 자식 클래스(하위 클래스) 가 있다. 자식 클래스는 부모 클래스를 선택해서 그 부모 클래스의 멤버를 상속받아 그대로 쓸 수 있게 된다. 그럼 상속을 왜 하는 거지? 이미 만들어져 있는 클래스를 재사용할 수 있기 때문에 효율적이고 중복된 코드가 줄어들어 코드가 간결해진다. 그리고 공통적인 기능을 부모 클래스에 추가해주면 상속받은 여러 개의 자식 클래스에서 사용이 가능하기 때문에 확장성 또한 용이하다. 다시 말해, 유지보수가 쉬워지고 확장성이 용이해지고 재사용이 가능해지고 코드가 간결해지며 시간을 단축할 수 있다. 상속에 대해 몇 가..
Java this 의미와 사용법
2021. 7. 17. 20:03
프로그래밍 언어/Java
자바 this 자바에서 this 는 인스턴스 자기 자신을 가리키는 키워드이다. this 를 통해 클래스 메소드 및 생성자에서 자기 자신의 데이터를 업데이트하거나 조작할 수 있다. this 는 클래스를 기반으로 생성된 인스턴스를 가리키는 참조 라는 것이다. 여기서 중요한 부분은 인스턴트를 가리키는 참조와 인스턴스 자체는 다르다는 점이다. this 의 특징 객체 자신의 대한 참조값을 가진다. ( 자기 자신을 가리킨다.) 메소드 내에서만 사용된다. 객체 자신을 메소드에 전달하거나 리턴하기 위해 사용된다. 객체 생성자 내에서 사용할 경우, 다른 생성자를 호출한다. 매개 변수와 객체 자신이 가지고 있는 변수의 이름이 같은 경우 이를 구분하기 위해 자신의 변수에 this를 사용한다. static 메소드에서는 사용할..
Java 가상 머신 (JVM, Java Virtual Machine)
2021. 7. 17. 18:48
프로그래밍 언어/Java
자바 가상 머신 (JVM, Java Virtual Machine) 시스템 메모리를 관리하면서 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공한다. JVM 은 다른 프로그램을 실행시키는 것이 목적인 프로그램이다. 자바는 완전한 기계어가 아니라 바이트 코드이기 때문에 이를 해석하고 실행할 수 있는 가상 운영체제가 필요하다. 이런 역할을 해주는 것이 JVM 이다. JVM 의 2가지 기본 기능 - 자바 프로그램이 어느 기기 또는 어느 운영체제 상에서도 실행될 수 있게 하는 것. 즉, 한 번 작성해 어디에서나 실행한다는 원칙 - 프로그램 메모리를 관리하고 최적화 하는 것 JVM 에 대한 정의 JVM 에 대한 정의는 다음과 같이 나누어진다. - 기술적 정의 : JVM 은 코드를 실행하고 해당 코드에 대..
Java 기본 타입 (Primitive Type)과 참조 타입(Reference Type)
2021. 7. 17. 18:34
프로그래밍 언어/Java
기본 타입 (Primitive Type) 기본 데이터 타입은 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입을 말한다. 정수 타입 : byte, char, short, int, long 실수 타입 : float, double 논리 타입 : boolean 종류 기본 타입 타입 크기(byte) 정수 byte 1 byte char 2byte short 2byte int 4byte long 8byte 실수 float 4byte double 8byte 논리 boolean 1byte 참조 타입(Reference Type) 참조 타입이란 객체의 번지를 참조하는 타입이다. 배열, 열거, 클래스, 인터페이스 타입을 말한다. 기본 타입과 참조 타입의 차이는 저장되는 값이 무엇인가의 차이다. 기본 타입은 실제 값을 ..
Java 래퍼 클래스 (Wrapper Class)
2021. 7. 17. 18:22
프로그래밍 언어/Java
래퍼 클래스 (Wrapper Class) 자바의 자료형은 기본 타입(primitive type)과 참조 타입(reference type) 으로 나누어진다. 기본 타입은 정수, 실수, 문자, 논리 리터럴을 저장하는 타입이다. 참조 타입은 배열, 열거, 클래스, 인터페이스 등 객체의 위치를 참조하는 타입니다. 기본 타입 : byte, short, char, int, long, float, double, boolean 참조 타입 : class, interface, ... 래퍼 클래스란 8개의 기본 타입에 해당하는 데이터를 객체로 표현하기 위해 포장해주는 클래스라고 한다. 각각의 타입에 해당하는 데이터를 인수로 전달받아 해당 값을 가지는 객체로 만들어준다. 래퍼 클래스는 모두 java,lang 패키지에 포함되어..