본문 바로가기

반응형

분류 전체보기

(121)
[JAVA] 재귀함수 - Stack overflow 오류 재귀 함수 사용에는 스택 오버플로우(stack overflow)를 주의해야한다. 상기와 같이 오류가뜨는 이유는 n이 멈추지않고 -1, -2, -3...n까지 무한대로 실행되어 컴퓨터의 메모리에 한개가 있기때문에 스택 오버플로우의 문제가 발생하게 된다. 이 문제를 해결하기 위해서는 if문을 사용하여 n을 1까지만 수행하게 해주면 된다. (하기 코드 추가) if (n === 1) { return 1; }
[JAVA] 조건문 if, Switch 조건문 말 그대로 코드 실행에 대해 조건을 추가하여 각 조건에 해당하는 각 코드 실행을 시키는 명령 기능을 가진 제어문이다. 조건문 if " 만약(if) 조건식이 참(true)이면 괄호({}) 안의 문장들을 수행해라 " if (조건식) { // 조건식이 참일 경우 수행될 코드 작성 } 괄호는{} 탭(Tab)을 통한 들여쓰기로 내부에 묶어둔 문장들을 조금 더 가독성 좋게 해주는 것이 좋다. -> 단축키 ctrl + shift + F (ctrl + A)+(ctrl + I) 조건문 if 활용 문제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package class04; import java.util.Scanner;..
[JAVA] 입력 Scanner 입력문 입력에는 Scanner 클래스를 이용 자바에는 제공되는 Scanner문을 import 해준다. 1 2 3 4 5 6 import java.util.Scanner; // Scanner 클래스를 import해준다 Scanner sc = new Scanner(System.in) // Scanner 객체를 생성 int a = sc.nextInt(); // 정수 입력 받기 String str = sc.nextLine(); // 문자열 입력 받기 cs (System.in)은 키보드와 연결된 자바의 표준 입력 스트림이다. Scanner의 메서드 타입 설명 next() 입력된 값을 문자열로 리턴 nextInt() 입력된 값을 정수형으로 리턴 nextDouble() 입력된 값을 실수형으로 리턴 nextLine()..
[동영상 시청] JVM의 Garbage Collector 참고 동영상 https://www.youtube.com/watch?v=vZRmCbl871I JVM(Java Virtual Machine) 운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램 메모리 관리, Garbage Collector 수행 Garbage Collector 동적으로 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능 Stack : 정적으로 할당한 메모리 영역 원시 타입의 데이터가 값과 함께 할당, Heap영역에 생성된 Object 타입의 데이터의 참조 값 할당 Heap : 동적으로 할당한 메모리 영역 (개발자영역) 모든 Object 타입의 데이타가 할당, Heap 영역의 Object를 가리키는 참조 변수가 Stack에 할당 Garbage Collector 과정 G..
[동영상 시청] 알고리즘과 시간복잡도 참고 동영상 https://www.youtube.com/watch?v=IEH3YA2Nn4Q 알고리즘 어떤 목적을 달성하거나 결과물을 만들어내기 위해 거쳐야 하는 일련의 과정 가는 루트는 다양하며 여러가지 상황에 따른 알고리즘은 모두 다르다. 따라서 시간복잡도가 가장 낮은 알고리즘을 선택하여 사용한다. 시간복잡도 문제를 해결하는데 걸리는 시간과 입력의 함수관계 -> 알고리즘을 푸는 시간을 나타냄 시간 복잡도가 낮은 알고리즘이 좋은 알고리즘
[동영상 시청] 빌드와 배포 참고 동영상 https://www.youtube.com/watch?v=6SvUZqbU37E 컴파일 작성한 소스 코드를 바이너리 코드로 변환하는 과정 작성한 소스코드를 컴퓨터가 이해할 수 있는 기계언어로 바꿔주는 작업! 빌드 소스 코드를 실행 가능한 소프트웨어 산출물로 만드는 일련의 과정 링크 여러 개로 분리된 소스 코드들을 컴파일한 결과물들에서 최종 실행 가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해 주는 작업 빌드 도구 소스 코드를 컴파일, 테스트, 점적 분석 등을 실시하며 실행 가능한 애플리케이션으로 자동 생성하는 프로그램 계속해서 늘어나는 라이브러리의 자동 추가 및 관리 라이브러리의 버전을 자동으로 동기화 빌드도구, 빌드자동화가 필요한 이유 빌드 프로세스를 일관성있게 유지시키기 위해서 빌드..
[JAVA] 연산자의 종류와 우선순위 연산자 우선순위 연산자 우선순위 종류 연산자 1 최우선 연산자 [], () 2 단항 연산자 (항이 하나인 연산자) !, -, +, ++, -- 3 산술 연산자 +, -, *, /, % 4 쉬프트 연산자 >>> 5 비교 연산자 , a : 10 2 --> a++은 후위증감이기 때문에 c:10값을 먼저 대입해주고 그러고나서 a에 +1을 한값인 a : 11이 된다. 3 --> ++a은 전위증감이기에 먼저 진행하게되어 a에 +1 해주어 a : 12, d : 12가 된다 1 2 3 4 5 6 7 8 9 int a=10; int c=a++; // 후위 증감연산자의 우선순위는 매우낮음! int d=++a; // 전위 증감연산자의 우선순위는 매우높음! // ++a; int d=a; System.out.println("a..
[JAVA] 변수 (개념, 데이터타입, 형변환) 변수(Variable)란? 변수는 프로그램의 처리 과정에서 데이터를 담아둘 수 있는 메모리의 공간을 의미합니다. 하나의 변수에는 하나의 값만 저장할 수 있고 이 값을 변경할 수 있기 때문에 변할 수 있는 값, 즉 변수라고 부릅니다. 데이터 타입(Data type) 데이터에는 정수, 실수, 문자, 논리(참 또는 거짓) 등이 있는데 각각의 데이터를 담을 수 있는 변수의 종류가 다릅니다. 그래서 데이터 타입으로 어떤 데이터를 담는 변수인지 표시합니다. 형변환 (Casting) 말 그대로 변수나 상수의 데이터 타입을 다른 타입으로 바꾸는 것을 의미합니다. 자동형변환 -> 연산 시 컴파일로가 자동으로 수행하는 타입 변환을 가리키며 사용자가 강제로 타입 변환을 하지 않는 경우를 의미합니다. 1 2 3 4 5 6 7..

반응형