JAVA/[JAVA]
JVM의 메모리 구조
아래의 글은 '자바의 정석'에 있는 '3.7 JVM의 메모리 구조'를 보고 정리한 것이다. 1.JVM의 메모리 할당 응용프로그램 실행 - JVM이 시스템으로 부터 메모리 할당 받음-JVM이 이 메모리를 영역을 나누어 관리 2.JVM의 메모리 구조 크게 method area, call stack, heap으로 나누어 진다. 1.메서드 영역(method area) 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class) 를 읽어서 메서드 영역에 저장한다. 이 때 그 클래스와 클래스 변수도 같이 저장된다. 2.힙(heap) 인스턴스가 생성되는 공간, 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다. 즉 인스턴스 변수들이 생성되는 공간 3.호출스택(call stac..
배열.clone()
java에서 배열을 복제 할 때 clone을 사용해야한다. 다음 예제를 보자. public class Test { public static void main(String[] args) { //a의 원소들을 b로 복사하려고 시도 int[] a = {1,2,3,5,47,8,6}; int[] b = a; //b의 원소만 바꾸기 b[1] =4; //출력 System.out.print("배열 a 의 원소: "); for (int i = 0; i
equals()와 == 의 차이점
처음에는 둘의 차이를 잘 모르다가 자바의 정석 책을 보며 공부하던 중 관련된 내용이 나와 이곳에 공유한다. 자바에는 두가지 종류의 자료형이 있다. 기본형 변수와 참조형 변수 우리가 생각했을 때 String, int,boolean 과 같은 자료형은 모두 다 비슷한 자료형이라고 생각할 수 있지만, 사실 String 은 클래스 이다. 이 개념이 조금 헷갈릴 경우 구글에 검색해보길 추천드린다. 간단하게 설명하자면, java의 기본형 변수 java의 참조형 변수 1.boolean 2.char 3.byte 4.short 5.int 6.long 7.float 8.double Integet, Boolean, String 등 아주 쉽게 설명하면, 참조형 변수는 클래스다. 우리가 클래스 타입의 변수를 선언할 때와 비슷하다..
replace 와 replaceAll (String에서 숫자만 제거하기)
replace와 replaceAll 모두 String에서 특정 문자를 치환 해주는 함수이다. .replace() 사용 public class test{ public static void main(String[] args){ String test = "hello1 w1orld2"; test = test.replace("1",""); System.out.println(test); } } 결과: "hello world2" .replaceAll() 사용 public class test{ public static void main(String[] args){ String test = "hello1 w1orld2"; test = test.replaceAll("1",""); System.out.println(test..
ArrayList 안에 ArrayList담기
Subject : ArrayList안에 ArrayList 넣는 방법. Import import java.util.ArrayList; 문제 피타고라스 정리를 이용해서 각변의 길이의 합이 20이하이면서 각변의 길이가 정수인 모든 직각삼각형의 모든 변을 구하여라. 나의 풀이 import java.util.ArrayList; public class Book { public static void main(String[] args) { ArrayList answerList = new ArrayList(); for (int a= 1; a