본문 바로가기

Programming

[Online Study 1주차] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. [학습 주제] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. [학습 목표] 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기 [학습 내용] JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM이란 무엇인가 1. JVM의 정의 - Java Virtual Machine으로, 자바를 실행하기 위한 가상 기계(컴퓨터) 2. Java의 특징 - OS에 종속적이지 않고 실행되기 위해서는 OS 위에서 Java를 실행 시킨 것이 JVM -> OS에 종속 받지 않고 CPU가 Java를 인식 및 실행할 수 있게 하는 가상 컴퓨터 컴파일 과정 - '컴파일(Compile)'이란, 개발자가 작.. 더보기
[Java] 접근 제어자(public, protected, default, private) public > protected > default > private 왼쪽부터 오른쪽으로 가면서 접근 범위가 좁혀진다. Public: 접근에 제한이 없음 Protected: 동일한 패키지 내에 존재하거나 상속된 클래스에서 접근 가능 default: 아무런 접근 제한자를 명시하지 않으면 default 값이 되며, 동일한 패키지 내에서만 접근이 가능 private: 자기 자신의 클래스 내에서만 접근 가능 이중 public과 private를 가장 많이 사용한다. 접근 제어자는 변수나 함수, 클래스에 대한 접근을 제한하여 객체가 가진 고유의 멤버 변수 값이 외부의 접근으로 인해 잘못 변경되는 것을 막을 수 있다.(캡슐화) 각 제어자의 접근 비교표를 보면, 제어자 같은 클래스 같은 패키지 같은 패키지 내의 상속 .. 더보기
[Java] static static: 정적이다. -> 클래스에 고정된 멤버로 클래스 멤버라 부름. 클래스에 고정된 멤버 -> 클래스 로더가 클래스를 로딩하면 메모리에 할당시켜 클래스 로딩이 끝나면 바로 사용 가능 전역적으로 쉽게 재사용하는 멤버나, 잘 변하지 않는 변수/메서드를 사용할 때 쓰임 -> 만들어놓고 클래스 호출이나 객체 생성을 따로 할 필요없이 바로바로 사용 가능 메모리 자원을 할당해놓고 사용 -> 너무 많이 사용하면 메모리를 많이 차지하게 되어 프로그램이 무거워짐. static 필드 사용 예시로, class Number { static int num1 = 0; // 클래스 필드 int num2 = 0; // 인스턴스 필드 } public class Main { public static void main(String.. 더보기
[Python] instance method / class method / static method https://www.daleseo.com/python-class-methods-vs-static-methods/ 메서드에서 헷갈리는 부분을 정리하기 위해 이 분의 글을 참고하였다! [파이썬] 정적(static) 메서드와 클래스(class) 메서드 Engineering Blog by Dale Seo www.daleseo.com 인스턴스 메서드(instance method) 일반적으로, 클래스 내에서 데코레이터(decorator)없이 메서드를 선언하게 되는 경우. 첫 번째 매개변수로 클래스의 인스턴스, self가 넘어오고, self를 통해 인스턴스 메서드가 인스턴스 속성(attribute)에 접근하거나 다른 인스턴스 메서드를 호출할 수 있다. 또, self를 통해 클래스 속성에 접근하거나 클래스 메서드를 .. 더보기
[Python] 헷갈리는 문법 정리2 - 람다(lambda) 함수(map(), filter(), reduce()) lambda 인자: 표현식 'lambda'는 런타임에 생성해 사용 가능한 익명 함수. 'lambda'는 쓰고 버리는 일시적인 함수로 일반적인 함수와 같이 정의해두고 쓰는 것이 아닌, 필요한 곳에서 즉시 사용하고 버릴 수 있다. f = lambda x: 2*x print(f(10)) g = lambda x, y: x + y print(g(5, 5)) 20 10 def func(n): return lambda x: x+n f = func(2) g = func(4) print(f(10)) # func(2)(10) print(g(20)) 12 24 map() map()은 두 개의 인수를 가지는 함수로, map(function, iterable, ...) 의 구조. 첫 번째 인자 function: 함수, 두 번째.. 더보기
[Python] 헷갈리는 문법 정리1 - enumerate() & zip() enumerate() enumerate() 함수는 인자의 값을 추출 할 때 인덱스를 함께 추출하는 기법. 인덱스 번호와 리스트 원소를 튜플 형태로 반환 fruit = ['apple', 'banana', 'strawberry', 'orange'] for i in enumerate(fruit): print(i) (0, 'apple') (1, 'banana') (2, 'strawberry') (3, 'orange') fruit = ['apple', 'banana', 'strawberry', 'orange'] for i, j in enumerate(fruit): print('index : {} , value : {}'.format(i,j)) index : 0 , value : apple index : 1 , v.. 더보기