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] import와 관련하여 성능상의 차이 출처 - 자바의 정석(남궁 성 지음)클래스 이름을 지정해주는 대신 '*'을 사용하면, 컴파일러는 해당 패키지에서일치하는 클래스 이름을 찾아야 하는 수고를 더 해야 할 것이다.단지 그 뿐이다.실행 시 성능상의 차이는 전혀 없다. [Java] 변수의 종류 출처 - 자바의 정석 (남궁 성 지음)class Variables{ int iv; static int cv; void method() { int lv = 0; }} iv와 cv는 멤버변수(클래스에 소속된 변수)이고, 그 중에 iv는 멤버변수이면서 인스턴스 변수이고, cv는 멤버변수이면서 클래스 변수(static 변수, 공유변수)이다.lv 처럼 Method에 속한 변수는 지역 변수라고 한다. [Java] JVM의 피연산자 스택의 피연산자 저장 단위 출처 - 자바의 정성 (남궁 성 지음)JVM의 피연산자 스택(operand stack)이 피연산자를 4 byte 단위로 저장하기 때문에크기가 4 byte보다 작은 자료형(byte, short)의 값을 계산할 때는 4 byte로 변환하여 연산이 수행된다.그래서 오히려 int를 사용하는 것이 더 효율적이다.이 말인즉슨 short를 사용하여 2 byte 짜리 변수를 선언한다 하더라도 이 변수가 계산에 씌이는 피연산자가 될 경우JVM은 short변수를 피연산자 스택에 저장하면서 4 byte 로 저장하기 때문에 메모리 절약을 위해서 short 변수를 선언한거라면 메모리 절약에 전혀 도움이 되지 않는다.게다가 형변환까지 해야 되므로 오히려 손해이다.C언어도 이렇게 된다고... 어디서 본 것 같은데... [Java] 이름 없는 패키지 출처 - 자바의 정석(남궁 성 지음)소스파일에 자신이 속할 패키지를 지정하지 않은 클래스는 자동적으로 '이름 없는 패키지'에 속하게 된다.결국 패키지를 지정하지 않는 모든 클래스들은 같은 패키지에 속하는 샘이 된다. [Java] 클래스 변수와 인스턴스 변수의 초기화 순서 출처 - 자바의 정석(남궁 성 지음)클래스 변수의 초기화 순서 : 기본값 -> 명시적 초기화 -> 클래스 초기화 블럭인스턴스 변수의 초기화 순서 : 기본값 -> 명시적 초기화 -> 인스턴스 초기화 블럭 -> 생성자 [Java] JVM의 메모리구조 출처 - 자바의 정석 (남궁 성 지음)1. 메서드 영역(method area)프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 때, 그 클래스의 클래스 변수(class variable)도 이 영역에 함께 생성된다.2. 힙(heap)인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다. 즉, 인스턴스 변수(instance variable)들이 생성되는 공간이다.3. 호출스택(call stack 또는 execution stack)호출스택은 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 호출되면, 호출스택에 호출된 메서드를 위한 메모리가 할당되.. [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를 사.. 이전 1 다음