본문 바로가기

전체 글199

쓰레드 쓰레드란 무엇인가?) 프로세스 : 사용하는 프로그램을 뜻함(이클립스,인텔리제이,크롬브라우저 .. 등등) 쓰레드 : 프로세스 내에서 작업을 수행하는 일꾼 싱글 쓰레드 프로세스 -> 동작하는 프로그램에 일꾼이 1명인것 멀티 쓰레드 프로세스 -> 동작하는 프로그램에 일꾼이 여러명인 것 멀티 쓰레드의 장단점) 장점 : 하나의 새로운 프로세스를 생성하는 것보다 쓰레드를 하나더 생성하는 것이 더 적은 비용이 듬 -> 공장(프로세스)을 새로 만들어서 일꾼(쓰레드)을 고용하는 것보다 하나의 공장에 여러명의 일꾼(쓰레드)을 고용하는 것과 같은 이치임 단점 : 교착상태(Dead-Lock)를 주의해야됨 교착상태(Dead-Lock) 란? ) - A와 B가 있을때 A는 B가 사용중인 리소스를 점유하려고 B의 Lock(잠금)이 .. 2021. 3. 4.
타입 지정시 연산 속도 요구사항) 1. -10,000 ≤ A, B ≤ 10,000 (제한범위) 2. 두수를 입력받아서 A와B의 합을 출력하는 코드 작성 Scanner sc = new Scanner(System.in); short a = sc.nextShort(); short b = sc.nextShort(); System.out.println(a+b); 메모리 공간을 가지고 본다면 short 타입을 쓰는게 좋을수도 있지만 32bit의 CPU를 쓴다고 하면 워드가 4byte 이므로 short(2byte),byte(1byte)형 변수를 사용한다고 하면 CPU가 한번에 처리 할 수 있는 데이터 크기에 맞춰서 구조를 바꾸(맞는 사실인가?)기 때문에 이러한 부수적인 시간이 걸리게 되고 int형(4byte) 변수를 사용해서 연산을 한것보.. 2021. 2. 26.
자바 스터디(예외) 목차 Exception(예외)와 에러의 차이 예외 계층 구조 예외처리 사용법 사용자 정의 예외 처리 방법 Exception(예외)와 에러의 차이 프로그램을 사용하던 도중 프로그램이 비정상적으로 종료되는 현상을 에러 또는 오류라고 한다. 에러는 두 가지로 나뉘는데 컴파일 에러(컴파일 과정에서 일어나는 것)와 런타임 에러(컴파일이 문제없이 실행되고 실행 과정에서 일어나는 것)로 나누어진다. 런타임 에러) 1. 에러는 메모리부족 스택오버플로우 같이 하드웨어적인 시스템 상의 문제에서 발생하는 에러이다. 2. 예외는 컴퓨터 상의 에러가 아닌 개발자의 잘못된 코딩으로 인한 또는 사용자의 잘못된 조작으로 인해 발생하는 것이다. 예외가 발생할 경우 에러와 같이 프로그램이 종료되지만 예외처리를 통해 프로그램이 종료되지 .. 2021. 2. 24.
디버거 사용하기 버그(bug) : 프로그램이 동작하는데 있어서 소스코드상에 문제가 되는 것들 디버깅 : 문제가 되는 버그(오류)를 잡는 행위 디버거 : 디버깅을 할때 사용하는 도구 벌레모양의 도구를 디버거라고 하며 디버거를 사용시 얻을 수 있는 큰 장점은 코드를 한줄씩 실행시킴으로써 해당 코드의 상태를 하나씩 체크하면서 문제가 되는 버그(오류)를 찾아내기가 편하다. 용어) 멈추고 싶은 지점 : 브레이크 포인트 step over : 코드 한줄씩 실행 2021. 2. 21.
자바 2주차 스터디 프리미티브 타입의 종류와 값의 범위 자바에서는 기본형(원시) 타입이라고 불리는 프리미티브(Primitive) 총 8가지 타입이 존재한다. (String의 경우 기본타입이 아님) (JVM Runtime Data Area 영역중 Stack 영역에 값이 저장된다) 원시 타입의 종류) 참조타입 기본타입을 제외한 나머지 모든 타입을 참조타입(new를 통해 객체를 생성하여 데이터가 생성된 주소를 가리킴)이라고 한다. String a = "Hello"; String b = "Hello"; String(문자열)은 new를 생성하지 않고 쓰지만 내부적으로는 스택에 있는 a와b의 변수가 heap영역의 "Hello"라는 데이터가 있는 주소를 가리키고 있다.(만약 문자열 리터럴이 동일하다면 a와b의 변수는 같은 주소를 참조하.. 2021. 2. 18.
자바 1주차 스터디 목차 JVM란 무엇인가? 컴파일하는 방법 바이트코드란 무엇인가? JIT컴파일러란 무엇이며 어떻게 동작하는가 JVM 구성요소 JDK와 JRE 차이 JVM란 무엇인가? 정의 : 자바로 만들어진 프로그램(바이트코드로 컴파일된)을 실행할수 있는 자바가상머신 실행흐름) 자바로 작성한 소스파일(.java)은 자바 컴파일러를 통해 .class 확장자를 가지는 바이트코드로 컴파일이 되며 JVM은 컴파일된 .class 파일을 해당 운영체제에 맞춰서 기계어로 번역을 함 ※ JDK에 있는 자바 컴파일러는 JVM이 이해할 수 있는 바이트코드로 변환을 해주는 컴파일러임 기계어로 번역하는 컴파일러와는 다른 컴파일러임 JVM 특징) - JVM은 바이트코드를 기계어로 번역해 실행을 하는데 자바소스를 컴파일해서 만든 바이트코드 뿐만아.. 2021. 2. 16.