본문 바로가기

반응형

2024/12

(202)
[C] 최대 공약수 구하는 함수 (유클리드 알고리즘) int get_gcd(int u, int v){ int temp = 0; while(u) { if(u  유클리드 알고리즘 GCD(280, 30) = GCD(250, 30)                        = GCD(220, 30)                          = GCD(190, 30) ... 이런 식으로 큰 수에서 작은수를 계속해서 빼 나간다.                          = GCD(40, 30)                          = GCD(10, 30)      // 이렇게 앞의 수가 뒤의 수보다 작아지면 두 수를 교환                          = GCD(30, 10) ... 다시 반복해서 빼 나간다.                ..
[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)호출스택은 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 호출되면, 호출스택에 호출된 메서드를 위한 메모리가 할당되..

반응형