본문 바로가기
728x90
반응형

study116

JVM의 메모리 구조 이번 시간에는 JVM의 메모리 구조에 대해 알아볼까 합니다. JVM(java virtual machine)은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고, 이를 용도에 따라 여러 영역으로 관리합니다. 이번 레터에서는 구조적인 측면보다는 실행되는 과정에서 JVM이 시스템의 메모리 리소스를 관리하는 방법에 대해 좀 더 무게를 두고 알아보겠습니다. JVM의 구조를 도식화하면 위와 같이 생겼습니다. 1. 메서드 영역 : 프로그램 실행 중 클래스가 사용되면, 그 클래스의 *.class 파일을 읽고 분석하여, 그 클래스에 대한 정보를 저장합니다. 클래스 변수도 이 영역에 생성됩니다. 2. 힙(Heap): 프로그램 실행 중 생성되는 인스턴스와 인스턴스 변수는 모두 힙에 생성됩니다. 3. 호출스택(Ca.. 2021. 8. 21. 15:14
자바 Java 메서드 (3) – 메서드의 호출 이번 시간에는 작성한 메서드를 호출하여 사용하는 방법에 대해 알아볼까 합니다. 메서드에 선언된 매개 변수가 있는지 없는지에 따라, 메서드 호출은 이와 같이 두 가지 방식으로 나뉩니다. 계산기를 호출하는 예제를 통해 메서드가 호출되는 방식에 대해 더 구체적으로 알아보겠습니다. public class Main { public static void main(String[] args) { Calculator mycal = new Calculator(); mycal.power(); System.out.println("계산기가 켜졌습니다."); long result1 = mycal.add(5,3); long result2 = mycal.subtract(5,3); long result3 = mycal.multiply.. 2021. 8. 20. 19:09
자바Java 메서드 (2) – return 이번 시간에는 메서드가 값을 return하는 방법에 대해 알아볼까 합니다. 예제 코드를 함께 보면서 진행하겠습니다. class ReturnTest { public static void main(String[] args) { ReturnTest r = new ReturnTest(); int result = r.add1(3,5); System.out.println(result); int[] result2 = {0}; //배열을 생성하고 result2 배열 0번지 값 초기화 r.add2(3,5,result2); System.out.println(result2[0]); int result3 = r.max(3,5); System.out.println(result3); } int add1 (int a, int b).. 2021. 8. 19. 19:04
자바Java 메서드 (1) – 정의와 구조 오늘은 먼저 메서드의 정의와 구조에 대해 알아보겠습니다. 프로그램을 새로 짜거나 수정할 때, 반복되는 내용을 계속 치고 있는 경우를 한번쯤은 겪어보신 적이 있을 텐데요. (물론 제가 멍청해서 그런 것일 수도 있어요) 이런 현상을 해결하기 위해 만든 개념이 ‘메서드’입니다. 메서드는 어떤 작업을 수행하기 위한 명령문의 집합입니다. 어떤 값을 입력받아 처리하고 결과를 반환합니다. (값을 입력받지 않기도 하고, 결과를 반환하지 않기도 합니다만, 그 부분은 5편쯤에서 더 자세히 소개해드릴게요.) 과일을 믹서기에 넣고 갈면 과일 주스라는 결과물이 나옵니다. 믹서기에 넣는 과일을 메서드에 입력되는 매개변수에, 과일 주스를 리턴값에 대입해보자면, 메서드는 과일 주스를 만들어 준 믹서기 같은 존재겠지요. 아래의 예제 .. 2021. 8. 18. 18:09
자바 Java 선언 위치에 따른 변수의 종류 package study; class Variables { int iv; //instance variable static int cv; //class variable void method() { int lv = 0; //local variable } } /* 코드와 텍스트를 함께 봐 주세요! */ 위 코드의 3가지 변수 중 iv는 인스턴스 변수로, 인스턴스가 생성될 때 지정됩니다. 인스턴스마다 다른 값을 가질 수 있으므로, 필요에 따라 값을 새롭게 지정할 수 있습니다. 반면 클래스 변수 cv는 고정된 값으로, 이 클래스를 통해 인스턴스화된 객체들이 공통된 변수를 공유하게 됩니다. 그래서 클래스 변수는 공유 변수라고도 부릅니다. 한편 lv는 지역 변수로 메서드 안에서만 사용이 가능합니다. 다시 말해, 메서.. 2021. 8. 17. 18:50
자바Java 인스턴스의 생성과 사용 -prologue- 신입사원 시절 사내 기반기술 테크레터 약 20편 정도?를 3개 시즌에 걸쳐 준비하여 배포한 적이 있다. 그때 배포한 내용을 문제되지 않을 선에서 적절히 편집 및 재구성하였다. 시즌1. 자바 시즌2. 자료구조 시즌3. Oracle tuning - 인데 시즌3은 대외비 내용이 많아서 아카이빙 못해둘지도 --------------------------------------------------------------------------------------------------------------------- 첫 주제로, 자바 인스턴스의 생성과 사용에 대한 내용을 정리해 보았습니다. /* 아래 코드와 텍스트를 함께 봐 주세요! */ class Tv { //속성 String color; b.. 2021. 8. 16. 13:38
스프링 빌드가 안 돼요! 인텔리제이 설치 완료. 이게 고수들은 그렇게 좋아하는 에디터라는데 회사에서는 그 뭐시냐..RSA라고... 이클립스+WAS 기반의 희한한 구글링해도 나오지도 않는 툴을 사용하고 있다. 그리고 강의가 Java11 (11..이요..? 동공지진. 학교 다닐 때 설치한 버전이 8이었나 10이었나 그랬던 거 같은데) 기반이라 자바도 새로운 버전으로 설치 완료 여전히 내 컴퓨터는 대학생 때 산 그램이다. 노트북 외에는 모두 애플 디바이스(폰 패드 워치) 사용 중이고, 맥북이 그렇게 간지가 난다는데 현실적으로 컴 2대는 아직 무리다. 듣다보니 친절하게도 강사님의 강의 자료에 터미널을 윈도우에서도 사용할 수 있다고 나와있어서 Git bash 설치 완료. 사실 sftp 서버와 각종 솔루션들을 많이 쓰고, 보안 권한 등의 .. 2021. 8. 15. 17:30
스프링 인터넷 강의 수강 신청 완료 스프링 인터넷 강의 수강 신청했다. 회사와 인프런이 제휴가 돼서 공짜로 들을 수 있을때 뭐라도 들어봐야지 않겠어? 는 올해 도무지 오프라인 교육기관의 비대면교육 수강신청할 스케줄 여력이 안 돼서..도 있고. 사실 개발자는 맞지만, 웹개발자는 아니고, 컴퓨터공학 전공도 아니고 자바와 데이터베이스, 웹개발 아주 조금 배운걸로 어쩌다가 재수좋게 취업이 돼서 알고리즘 테스트 한번 제대로 본 적 없는 진짜 운 좋은데 아무것도 모르는 애. 어쩌면 지금까지 물경력만 쌓아왔을지도 모르는... 그게 바로 나. 현재 사용하고 있는 기술이 엄청 엄청 오래된 레거시 기술이다. 들어도 아무도 모르는 구닥다리 기술... 실제 업무에서 중요도가 현업 업무에 대한 백그라운드 지식 >> 기술 이지만 그래도 나름대로 IT회사 다녔고 개.. 2021. 8. 15. 17:14
728x90
반응형