본문 바로가기

프로그래밍/java7

컴퓨터의 구조 및 프로그램 실행 과정 컴퓨터의 구조 및 프로그램 실행 과정 CPU Main Memory Hard Disk 두뇌에 해당하는 중앙처리장치(CPU) 중앙처리장치가 처리할 프로그램과 데이터를 임시로 저장하는 주기억장치(Main Memory) 프로그램과 데이터 등을 반영구적으로 저장할 수 있는 하드디스크 키보드, 모니터, 프린터 등의 주변장치로 구성 CPU ALU(Arithmetic and Logic Unit) 덧셈, 뺄셈과 같은 산술연산과 논리합, 논리곱과 같은 논리연산을 수행하는 ALU(Arithmetic and Logic Unit) 레지스터로부터 데이터를 가져와서 연산하고 그 결과 값 역시 다시 레지스터에 저장 레지스터(register) ALU가 연산을 수행할 때 그 대상이 되는 데이터를 임시로 저장하는 CPU내의 저장 공 간인.. 2019. 10. 28.
자바 메모리 구조 자바 메모리 구조 자바의 메모리 관리는 확장 가능한 방식의 응용 프로그램을 조정하기 위해 필요한 기술이다. JVM JVM은 컴퓨터가 자바 프로그램을 실행할 수 있도록하는 추상 컴퓨팅 시스템이다. JVM은 코드를 로드, 검사, 실행하고 런타임 환경을 제공한다. 이런 특징으로 자바 프로그램은 오류가 발행해도 JVM만 다운될 뿐 전체 시스템에 데미지를 주지 않는다. 플랫폼에 의존적이지 않아 모든 자바 프로그램의 구동이 가능하다. 동적할당을 프로그래머가 담당하는 C언어와 달리 JVM에서 관리한다. 구조 자바 실행 과정 1.실행 될 클래스를 메모리에 로드 후 초기화 작업을 수행 2. 메소드와 클래스 변수들을 해당 메모리 영역에 배치 3. 클래스 로드가 끝난 후 JVM은 main 메소드를 찾아 지역변수, 객체변수,.. 2019. 10. 17.
멀티 스레드 멀티 스레드(작성중) 스레드란 그동안 작성한 프로그램을 모두 하나의 스레드로 이루어진 프로세스이다. 프로세스 멀티 태스킹 동시 실행 - 시분할 기법과 같은 다양한 기법을 이용하여 '동시 실행'하는 것과 같은 효과 스레드(Thread) - 프로세스 내의 작은 실행 단위 메인 스레드 Thread 클래스 상수 static int MAX_PRIORITY static int MIN_PROIRITY static int NORM_PRORITY 생성자 Thread() Thread(String name) Thread(Runnable target) Thread(Runnable target, String name) Thread(ThreadGroup group, Runnable target, String nam.. 2019. 5. 30.
String, StringBuffer, StringBuilder 중에 어떤 것을 사용해야 하나 String, StringBuffer, StringBuilder 중에 어떤 것을 사용해야 하나 String 클래스 String 변수를 초기화할 때 리터럴로 초기화된 문자열 객체는 스택 영역에 저장되고, 생성자를 통해 초기화하면 힙 영역에 저장된다. String s1 = "java"; // 스택 String s2 = new String("java"); // 힙 영역 String 클래스의 객체는 생성된 이후 변경이 불가능한 immutable 클래스여서 문자열의 내용을 변경하는 메소드를 제공하지 않는다. String 클래스는 기본 자료형처럼 사용할 수 있다. String s1 = "java"; // 스택에 문자열 객체를 생성 리터럴로 다른 String형 변수를 사용하는 경우 하나의 리터럴이 공유된다. 리터럴을.. 2019. 5. 29.
예외처리 예외처리 예외처리(Exception) 자바 프로그램이 실행중에 오류를 만났을때 이를 처리하는 것 예외란 자바 프로그램이 실행 도중 실행을 중단할 정도의 오류는 아니지만 비정상적으로 동작하는 것을 말한다. 자바 프로그램은 예외가 발생했을때 처리하지 않으면 예외에 대한 정보를 화면에 출력하고 실행을 종료한다. Error 클래스 Exception 클래스 시스템 구조상의 문제로 발생하는 심각한 오류 프로그램의 알고리즘이나 실행 절차상의 문제로 발생하는 경미한 오류 Exception 클래스는 Throwable 클래스가 제공하는 toString(), printStackTrace() 메소드를 상속받는다. toString() 예외 객체를 String 형으로 변환 printStackTrace() 예외가 발생한 위치를 상.. 2019. 5. 26.
이제 시작이라 그런가... 자바 5의 특징이 실감나지 않는다. '자바 5'의 특징이랍니다. 자바 공부한지 이틀이 지나서 인지, 그리고 과거 자바의 어려운 시절을 건너뛴 축복 받은 세대하는 말때문인지 그이 실감나지 않네요. 1. 성능 측면 - VM 성능이 최소 20%의 성능 향상됨 - Class Data Sharing에 따른 어플리케이션 시작 시간 단축됨 - Garbage Collector 성능 향상됨 2. 개발 언어 측면 - Generics : 클래스 생성 시 리턴 타입도 지정이 가능함 : 예) class Member {} : Member member = new Member(2); - Enhanced for Loop : 배열이나 Collection을 자동 탐색하여 내용을 분해해 줌 : 예) for (String str : strs) {System.out.printl.. 2008. 4. 10.
Head First JAVA (뇌회로를 자극하는 자바 학습법) HEAD FIRST JAVA (뇌회로를 자극하는 자바 학습법) 상세보기 케이시 시에라 지음 | 한빛미디어 펴냄 객체지향 프로그래밍과 자바를 완벽하게 배울 수 있는 HEAD FIRST JAVA 개정 2판. 이 책은 스레드, 네트워크 소켓, 분산 프로그래밍에 이르기까지 JAVA에 대한 모든 것을 담고 있다. 단순히 그냥 읽기만 하는 책이 아니라 게임도 해보고, 퍼즐도 풀어보고, 미스터리도 해결해보는 등 다양한 자바 프로그래밍을 체험해 볼 수 있다. 이 책을 보는 동안 닷컴 가라앉히기 게임 및 네트워크 드럼 머신 채팅 클라이언트 같은 진짜 자바 2008. 4. 9.