# 간단한 Hello application 예시 - 대소문자 구분- 주석, public class, main(), System.out.printIn() 주석(comment) /**/ 여러 줄 주석/** */ javac을 이용한 api 문서 설명이 자동적으로 생성됨// 한 줄 주석 클래스 정의public class Hello{...}- 클래스 이름 첫글자는 대문자로!- public class 는 파일에 최대 1개만 존재- 파일이름 → Hello.java (퍼블릭클래스이름.java) main(){...}- main()함수는 코드실행의 시작점이다- 메소드 형식 public static void main(String[] args){...} 출력System.out- 표준출력을 담당하는 객체- 사용 : System..
#1 Java 플랫폼 (Java Platform) 플랫폼이란? 프로그램 실행을 위한 하드웨어와 소프트웨어가 결합된 환경Java 플랫폼은 Java 프로그램의 개발과 실행을 위한 환경이다 → 순수한 소프트웨어 플랫폼!운영체제에 맞는 Java플랫폼 설치! → 운영체제 위에 자바플랫폼 필수로 설치해주고, 그 위에 자바프로그램을 실행 #2 Java 플랫폼 구성 Java 플랫폼 = Java VM + Java API Java VM(Java Virtual Machine, Java 가상머신)Java 프로그램 실행환경을 제공함 → 구동엔진실행에 필요한 사항을 관리 → 특히, 메모리 정리 자동으로 수행(가비지컬렉션) Java API (Java Application Programming Interface)Java 기본 구성단..
#1 Java 언어 특징C/C++ 언어와 유사하지만, Java는 단순플랫폼에 독립적 => 아키텍처에 중립적완전한 객체지향 언어다웹 / 네트워크 프로그래밍이 용이(어렵지 않고 매우 쉽다)엄격한 자료형의 검사예외처리 기능 제공 => 오류가 발생해도 어느정도 정상복구 해줘서 정상 실행 가능하도록 해줌멀티스레딩 지원 #2 Java 프로그램 실행자바소스 파일(Hello.java) → 컴파일링(Compiler) → 자바 바이트코드(Hello.class) 생성 → 자바 가상머신(Java VM, Java Virtual Machine)에서 자바 바이트코드 실행됨 → 브라우저에서 실행( >java Hello) 자바소스 프로그램 (확장자 .java)바이트코드 (확장자 .class)- Java 소스를 컴파일 한 결과물- Ja..
for무언가를 주고 받는(맞바꾸는) 그림교환하는 그림 I'm waiting for you.나는 너를 기다리고 있다.너(you)에 대한 댓가(for)는 기다림(waiting)너(you)를 만나려고 기다림(waiting)과 맞바꾼(for) 느낌 A dollar for a slice of pizza피자에 대한 댓가(교환)로 1달러1달러를 피자와 교환한 것 This is for you.이건 너를 위한거야.이것(this)은 너(you)와 맞바꿈(for) => for는 교환하는 그림 I've been waiting for 3 hours.나는 3시간동안 기다려왔다.나는 기다려왔다 3시간이라는 댓가(교환)를 치루고 for + 시간그 시간을 내가 맞바꾸는(교환하는) 것 for + 돈돈을 지불해서 무언가와 맞바꾸는(교환하..
to향해서 목적지까지 도달 하는 느낌(한쪽 방향으로) 일방 통행하는 그림 5 minutes to start시작 5분 전이다.시작 5분 남았다. 10 to 11 o'clock10분이 11시를 향한다.11시를 향해서 10분11시 10분 전 How can I get to subway station?to : 목적지를 향해 도달하는 느낌get : 움직여서 이동하는 그림 come with me나랑 (같이) 가자come : 가까이 다가오는 그림with: 함께 움직이는 느낌 come to me나한테 와상대방이 나를 향해서 옴 I have to go.나 가야해have : 무언가를 소유해서 동작하는 그림to : (목적) 방향성 가짐 => 강한의지, 당위성 [출처] 유투브 영알남
of전체의 부분, 일부 라는 느낌어떤 정해진 것에서 일부를 꺼내는 것 I think of you.너(너의 전체의 일부)를 생각하다 10th of September9월 10일. 한달은 30일로 구성. 30일 중 10번째오는 날 out of service영업 안함out : 나가버린 느낌 This back door of the building is out of use.건물 전체의 일부인 뒷문 사용의 일부가 나가버렸다 => 뒷문 못 쓴다 [출처] 유투브 영알남
순환알고리즘의 성능은 '점화식'으로 구한다 # 순환(recursion, 재귀)알고리즘의 수행과정에서 자기자신의 알고리즘을 다시 수행하는 형태 예) 이진탐색의 수행시간을 구할 때의 점화식은,T(n) = T(n/2) + O(1), T(1) = c1 즉, 점화식 T(n)은 n/2개의 데이터를 처리하는 시간 T(n/2)과 상수시간 O(1)을 더한다.
알고리즘의 '효율성 분석'을 위해, 알고리즘 수행에 필요한 컴퓨터 자원의 양을 측정- 메모리의 양(정적공간+동적공간) 계산 => 공간복잡도(space complexity)- 수행시간 => 시간복잡도(time complexity) => 수행시간을 통해 시간복잡도를 구하고 효율적인 알고리즘인지 분석한다.! # 시간복잡도(time complexity) 알고리즘을 프로그램으로 구현 => 컴퓨터에서 실행시켜 실제 수행시간을 측정하지만, 일반적이지 않다!(컴퓨터의 속도나 사용한 프로그래밍언어, 프로그램 작성법, 컴파일러의 효율성 등에 종속적) 그렇다면 시간복잡도란 무엇? 알고리즘이 수행하는 기본적인 연산의 횟수를 합한 것 ★★★ 시간복잡도에 영향을 미치는 요인 2가지① 입력으로 제공되는 데이터 크기 => 입력크기②..
#1 최대값 찾기 25 15 35 60 45 80 55 75 알고리즘 1 : 값들을 하나씩 모두 비교해가면서 최대값 찾기 알고리즘 2 : 토너먼트 방식 어떤 것이 효율적? => 몇 번의 비교연산을 해야 하는가? #2 "뒤섞인" 카드에서 원하는 카드 찾기 데이터 찾기 => 탐색 A 4 5 7 10 J K 순차적으로 왼쪽부터 하나씩 비교하며 탐색한다 => 순차탐색(Sequential search) 10 5 A J 7 K . ∴ 6번 뒤집어서 K 발견 #3 "순서대로 나열"된 카드에서 10 찾기 A45710JK 7 . . . 임의로 정 중앙에 있는 카드를 하나 뒤집어 본다 => 이진탐색(Binary search)순서대로 나열 되었으니까 뽑은 7번 카드 기준으로 오른쪽 카드만 확인한다 7 J 남은 오른쪽 카드 ..