반응형

JAVA/Study 8

[Java] 문자열로 된 수식 계산하기

원문 출처 - http://unikys.tistory.com/226​자바 1.6 이상에서는 Javascript 엔진을 이용하여 문자열로 된 수식 계산이 가능하다고 한다.(자바스크립트의 eval 함수와 같은 기능의 함수가 있다.)import javax.scrit.ScriptEngineManager;import javax.script.ScriptEngine;public class Test{ public static void main(String[] args) throws Exception { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("JavaScript"); String fo..

JAVA/Study 2024.12.18

[Java] JVM의 피연산자 스택의 피연산자 저장 단위

출처 - 자바의 정성 (남궁 성 지음)​JVM의 피연산자 스택(operand stack)이 피연산자를 4 byte 단위로 저장하기 때문에​크기가 4 byte보다 작은 자료형(byte, short)의 값을 계산할 때는 4 byte로 변환하여 연산이 수행된다.​그래서 오히려 int를 사용하는 것이 더 효율적이다.​​​이 말인즉슨 short를 사용하여 2 byte 짜리 변수를 선언한다 하더라도 이 변수가 계산에 씌이는 피연산자가 될 경우​JVM은 short변수를 피연산자 스택에 저장하면서 4 byte 로 저장하기 때문에 메모리 절약을 위해서 short 변수를 선언한거라면 메모리 절약에 전혀 도움이 되지 않는다.​게다가 형변환까지 해야 되므로 오히려 손해이다.​C언어도 이렇게 된다고... 어디서 본 것 같은데...

JAVA/Study 2024.12.16

[Java] JVM의 메모리구조

출처 - 자바의 정석 (남궁 성 지음)​1. 메서드 영역(method area)프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 때, 그 클래스의 클래스 변수(class variable)도 이 영역에 함께 생성된다.​2. 힙(heap)인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다. 즉, 인스턴스 변수(instance variable)들이 생성되는 공간이다.​3. 호출스택(call stack 또는 execution stack)호출스택은 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 호출되면, 호출스택에 호출된 메서드를 위한 메모리가 할당되..

JAVA/Study 2024.12.16

[Java] this 참조변수

출처 - 자바의 정석 (남궁 성 지음) class Car{private String color;private String gearType;private int door; Car(String color, String gearType, int door) { this.color = color; this.gearType = gearType; this.door = door; }} 위의 코드에서처럼 생성자의 매개변수(지역변수)의 변수명과 인스턴스 변수명이 동일하면​this.으로 인스턴스 변수와 매개변수를 구분지어 준다.​this.color = color; 대신 color = color;으로 하면 둘 다 매개변수(지역변수)로 간주된다.​​​this는 참조변수로 인스턴스 자신을 가리킨다. 따라서, this를 사..

JAVA/Study 2024.12.16
반응형