728x90
더 자바 리플렉션(2)
더 자바 2022. 4. 4. 18:45

인프런에 있는 백기선님의 더 자바, 코드를 조작하는 다양한 방법 을 보고 정리하는 글입니다. 리플렉션을 이용한 클래스 정보 수정 및 실행 전 글에서 정리했던 클래스 정보를 불러오는 것을 이용해서 클래스 정보 수정을 해보겠다. 일단 다양한 접근제어자를 가진 필드와 메소드들을 만든다. Book.java public class Book { public static String A = "A"; private String B = "B"; public Book() { } public Book(String b){ B = b; } public void c() { System.out.println("C"); } public int sum(int left,int right) { return left+right; } } 이..

더자바 리플렉션 (1)
더 자바 2022. 4. 1. 15:55

인프런에 있는 백기선님의 더 자바, 코드를 조작하는 다양한 방법 을 보고 정리하는 글입니다. 리플렉션 리플렉션으로 알아볼 수 있는 것들 일단 maven 프로젝트를 생성한다. App 클래스가 있는 패키지 경로에 Book을 생성. Book에 접근제한자를 다양하게 선언해본다. Book.java public class Book { private static String B = "BOOK"; private static final String C = "BOOK"; private String a = "a"; public String d = "d"; protected String e = "e"; public Book() {} public Book(String a, String d, String e) { this.a =..

더 자바 바이트코드 조작
더 자바 2022. 3. 31. 10:30

백기선님의 더 자바 강의를 듣고 정리한 글입니다. 코드 커버리지 코드커버리지란 무엇일까? 내가 작성한 테스트 코드가 내 코드를 얼만큼 커버하고 있냐는 뜻이다. 테스트 코드가 얼만큼 내가 만든 코드를 검사하는지 확인하는 것이다. 커버리지가 높으면 높을 수록 내 테스트 코드가 내가 짠 코드에서 나오는 모든 경우를 커버한다고 생각이 든다. 코드 커버리지는 어떻게 측정? 코드 커버리지를 확인하기 위해 JaCoCo 플러그인을 사용해 보도록 하겠다. 일단 Maven 프로젝트를 생성 해주고 자바 버전은 11로 하도록 한다. 프로젝트 생성이 완료되었으면 클래스를 만들어서 몇줄 작성해본다. Moim.java public class Moim { int maxNumberOfAttendees; int numberOfEnrol..

더 자바 JVM
더 자바 2022. 3. 31. 09:49

인프런의 백기선님의 강의 정리용입니다. JAVA... JAVA 란? 프로그래밍 언어 JDK에 들어있는 자바 컴파일러를 사용하여 바이트코드로 컴파일 할 수 있다. JVM(Java Virtual Machine) 자바 가상머신으로 .class(바이트 코드) 를 OS에 맞는 코드로 변환 JVM 구조 JVM 구조 중에 중요한 것은 힙영역과 메서드 영역이다 힙, 메서드는 공유 자원 , 나머지는 쓰레드 개념이다. 클래스 로더 시스템 로딩 : 클래스를 로딩... 로딩 완료시 링크를 함. 링크 1) Verify: .class 파일 형식이 유요한지 검증 2) Prepare: 클래스 변수(static 변수) 와 기본값에 필요한 메모리 3) Resolve : 심볼릭 메모리 레퍼런스를 메소드 영역에 있는 실제 레퍼런스로 교체한..

728x90