Language/Java

다형성 : 하나의 메서드나 클래스가 있을 때, 그것이 다양한 방법으로 동작하는것 자바는 오버로딩과 오버라이딩을 통해서 다형성을 지원한다. 오버로딩(Overloading) 같은 이름의 메서드 여러개를 가지면서, 매개변수의 유형과 개수를 다르게 사용하는것 오버라이딩(Overriding) 상위 클래스(부모클래스)가 가지고 있는 메서드를, 하위클래스(자식 클래스)가 재정의 해서 사용하는 것. ▶오버로딩(Overloading) 같은이름의 메서드를 여러개 정의하고 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있도록 하는 방식이다. //오버로딩 예제 public class Test { public void overloadingTest(){ System.out.println("매개변수 없지롱"..
▶JVM이 무엇인가? Java Virtual Machine 자바프로그램 실행환경을 만들어주는 SW JVM은 JRE(Java Runtime Enviorment)에 포함되어 있고, JRE는 JDK(Java Development Kit)에 포함되어 있음. ▶ JVM을 사용하는 이유 JVM을 사용하면 하나의 바이트코드(.class)로 모든 플랫폼에서 동작 가능함 바이트코드는 사람이 쓰는 자바코드와 컴퓨터가 읽는 기계어의 중간단계임. Java는 플랫폼에 종속적이지는 않지만, JVM은 플랫폼에 종속적이다. ▶ 자바 프로그램의 실행과정 자바로 개발된 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당한다. 자바컴파일러(javac)가 자바소스코드(.java)를 자바 바이트코드(.class)로 컴파일한다. Class ..
▶GC란 무엇인가? GC는 자바의 메모리 관리 방법 중 하나이다. JVM의 Heap영역에서 동적으로 할당했던 메모리 영역 중 필요없게 된 메모리 영역을 주기적으로 삭제하는 프로세스이다. C/C++에서는 이러한 GC가 없기 때문에 개발자가 수동으로 메모리 할당과 해제를 일일히 해줘야한다. 이러한 언어를 Unmanaged 언어라고 한다. 반대로 자바같이 GC가 알아서 메모리를 관리해주는 언어를 Managed 언어라고 한다. 따라서, GC가 탑재되어 있는 JVM을 사용하는 Java는 메모리 관리를 다 해주기 때문에 개발자 입장에서는 메모리 관리, 메모리 누수(Memory Leak)문제에 대해 신경을 덜 써도 된다는 장점이 있다. 하지만 단점도 있는데, 개발자가 메모리가 언제 해제되는지 정확하게 알 수 없다. ..
▶자바 프로그래밍을 공부하는 이유 많고 많은 언어 중에 자바를 왜 공부해야 할까? 자바는 백엔드에서 가장 많이 쓰이는 언어이기 때문이다.(Spring Boot) Node.js, Next.js 등 자바스크립트 언어를 기반으로 한 백엔드도 요즘 매우 많지만 자바스크립트보다 자바의 역사가 더 오래되었고 안정성도 더 뛰어나기 때문에 대기업에서 많이 채택한다. ▶자바 언어의 특징 객체지향 언어 자바는 느리지만, 버전업이 되면서 다른 언어들의 장점들을 흡수하고 있다. 람다(Lambda) : 함수형 프로그래밍 Stream API : 람다 표현식과 메서드 참조 등의 기능과 결합해서 매우 복잡하고 어려운 데이터 처리 작업을 쉽게 조회하고 필터링하고 변환하고 처리할 수 있도록 한다. 병렬프로그래밍 : 여려개의 CPU코어에..
LearningStudy
'Language/Java' 카테고리의 글 목록