목록IT/JAVA (16)
공부블로그

멱집합 알고리즘을 풀다가 발생한 예외 알게된 점 ) for-each문은 배열이나 Iterable인터페이스를 구현하는 객체만 대상이 될 수 있는데 그 이유는 내부에서 Iterator를 사용하는 형태로 변경되어 인식되기 때문이다. ArrayList의 경우 ArrayList.Itr 내부클래스를 통해 Iterator객체가 생성됨. ArrayList의 상위 클래스에 데이터의 변경사항을 카운트하는 modeCount전역변수가 존재하는데 Iterator객체가 생성될 때 modeCount값으로 expectedModecount변수를 초기화시킨다. 그리고 next()가 호출될 때마다 modeCount변수와 expectedModecount변수를 비교하고 다를경우 java.util.ConcurrentModificationExc..

배운점 프로세스와 스레드 프로세스란 실행 중인 프로그램(cup를 할당 받은 상태)이나 cup할당을 기다리는 실행 대기 상태의 프로그램을 의미한다. 프로세스는 적어도 하나의 스레드(작업단위)를 가지고 있다. 한 프로세스에서 작업을 수행하는 단위인 스레드가 하나 존재하는 것을 싱글 스레드 프로세스 여러개 있는 것을 멀티 스레드 프로세스라고 한다. 멀티 스레드 환경일 경우 1. CPU의 유휴 시간을 줄이는 등 시스템 자원을 효율적으로 이용할 수 있다. ( 한 프로그램이 실행되다가 사용자에게 입출력을 요구하는 경우 CPU는 입력이 완료될때 까지 기다린다. 이렇게 CPU가 쉬는 시간을 유휴시간(idle time)이라고 한다. 유휴 시간에 다른 스레드/ 프로세스를 실행 시켜 효율적으로 사용할 수 있도록 한다.) 2..
사이트 https://homoefficio.github.io/2019/01/31/Back-to-the-Essence-Java-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C-%EC%8B%A4%ED%96%89%EA%B9%8C%EC%A7%80-1/ Back to the Essence - Java 컴파일에서 실행까지 - (1) Back to the Essence - Java 컴파일에서 실행까지 - (1)Java 11 JVM 스펙을 기준으로 Java 소스 코드가 어떻게 컴파일되고 실행되는지 살짝 깊게 알아보자. 이번엔 1탄 컴파일 편이다. 2탄 실행 편은 여기에.. homoefficio.github.io https://choseongho93.tistory.com/296 빌드, ..

JDK: Java Development kit으로 자바 프로그램 개발에 필요한 도구를 제공한다. 예) javac- 컴파일러, javap-클래스 파일(.class)을 소스코드 (.java)으로 디스어셈블해주는 도구, java- javac가 만든 클래스파일을 해석하고 실행, java doc- 소스 코드의 주석을 자동으로 HTML문서로 만들어주는 도구 등등 JER: 실행시 필요한 API나 바이트 코드 등 필요한 구성요소를 결합한다. * JDK설치 시 자동으로 호환되는 JRE이 설치됨 JVM: OS와 독립적으로 프로그램을 실행/개발 할 수 있도록 도와주는 SW 1. JVM의 동작 과정 + JVM구조 .java 파일이 컴파일러(javac)를 통해 .class파일(바이트코드)로 변환. 실행파일이 JRE을 통해 여러..
- 해결 방법: [Run] - [ Run configurations... ] - [commod] - [Allocate console (necessary for input)]선택 * [ Run configurations... ] 선택 시 나오는 Java Application의 파일 목록은 main 메서드가 존재하는 (.class)클래스 파일만 나타남. * [Project]-[clean]=자바는 컴파일시 모든 소스코드를 빌드하지 않고 수정된 java파일과 관련 파일들만 컴파일함. 이전에 빌드했던 결과를 지우고 프로젝트를 재빌드함. 더보기 참고 사이트 https://dololak.tistory.com/63 * java.exe와 javaw.exe의 차이 java.exe와 javaw.exe는 자바 응용 프로그램 ..

평소와 같이 소스코드를 실행 중 파일을 실행만 하면 이클립스가 종료되더니 나중에는 다음과 같은 경고창이 뜸. 이곳 저곳 검색해보니 작업관리자가 강제종료했을 때 workspace에 발생하는 에러라고 함 더보기 참고 블로그 https://blog.naver.com/PostView.naver?blogId=miniii_su&logNo=222070189292&parentCategoryNo=&categoryNo=50&viewDate=&isShowPopularPosts=false&from=postView [eclipse] 가장 간단한 해결방법 java was started but returned exit code = -805306369 이클립스가 종료되면서 워크스페이스에 문제가 생기면 발생하는 에러. 방금까지만해도 ..
예외 처리 1. try-catch문 try{ //오류가 날 수있는 코드 수행문1 수행문2 수행문3 }catch(예외객체를 받는 매개변수){ //예외가 발생했을 경우 수행되는 문장 수행문A 수행문B 수행문C }finally{ //예외발생 여부와 상관없이 반드시 수행되는 문장 } try문 안에서 오류가 발생할 경우 예외와 관련된 정보가 들어 있는 예외 객체가 생성됨 catch문의 매개 변수는 예외와 같은 타입 또는 조상타입의 참조변수가 선언되어 있어야 한다. 첫번째 catch블록부터 차례대로 선언된 참조변수와 생성된 예외 객체를 instanceof 검사가 실행된다 *instanceof연산자란? A instanceof B 의 형태로 사용되며 A가 B의 인스턴스인지 확인할 수 있다. 응용해서 인스턴스의 형변환이..

오류의 종류 1. 컴파일 에러 컴파일러(javac.exe)의 역할은 기본적인 구문체크, 기계어로 번역, 코드 최적화, 생략된 코드 추가(object 상속) 이 과정에서 에러가 나는 것을 의미한다. JVM이 작동하기 전이라 클래스 파일(.class)이 생성되지 않는다. 2. 런타임 에러 JVM이 동작하는 중 발생하는 에러. 프로그램이 실행되다가 종료된다. 3. 논리적 에러 프로그래머의 작성 의도와 다르게 동작하는 경우 런타임 에러는 두 종류로 나뉠 수 있다. 에러(error) 프로그램 코드로 수습이 불가능한 심각한 오류 > 프로그램 종료 예외(exception) 프로그램 코드로 수습이 가능한 미약한 오류 예외 처리란? 실행 시 발생할 수 있는 예외에 대비한 코드를 작성해 비정상적인 종료를 막고 정상적으로 ..