책 : 이것이 자바다환경 : JDK version 8 / Eclipse (oxygen)변수(variable)✔ 변수란?데이터를 저장하는 공간.변수에 저장되는 값은 프로그램 실행 중 바뀔 수 있다.변수를 선언하면 타입에 맞는 메모리 공간이 할당되며, 하나의 값만 저장가능
print : 내용을 단순 출력printf : %d, %s 등을 쓰기위해 사용. C언어와 사용 동일println : 내용 출력 후 자동 줄 띄움(\\n)
import java.util.Scanner;
변수는 "선언위치"에 따라 전역변수와 지역변수로 나눠진다.전역변수(Global variable) : 어느 위치에서든 호출하면 사용이 가능(함수 밖에 선언하여 클래스 전체에서 사용이 가능한 변수)지역변수(Local variable) : 특정구역({ }) 내에서 생성되어
3.1 연산자 연산(operations) = 프로그램에서 데이터를 처리하여 결과 산출하는 것 연산자(operator) = 연산에 사용되는 기호나 표시 (+, -, * …) 피연산자(operand) = 연산되는 데이터 (변수 x, y, z …) 연산식(expressio
메세지 박스 아래와 같이 팝업으로 주로 사용자에게 오류나 경고 또는 짧은 메시지를 전달하는 데 사용되는 박스 ` > JOptionPane 팝업창을 띄워주는 스윙 클래스 사용자가 입력, 확인, 알림 창을 만들수 있는 클래스 -총 4가지의 메소드가 존재한다. show
기본적인 실행 흐름은 위에서부터 아래이다. 이러한 실행 흐름을 개발자가 원하는 방향으로 바꿀수 있도록 해주는 것이 흐름 제어문(=제어문)조건의 결과에 따라 블록 실행 여부가 결정된다. 중괄호 {} 블록은 여러개의 실행문을 하나로 묵기 위해 작성되는데, 실행 해야할 문장
깃발(flag) 라는 뜻 처럼 상태를 기록하고 처리 흐름을 제어하기 위한 변수처리 흐름을 제어할 때 사용해 제어 플래그(control flag)참과 거짓을 나타내주는 boolean 타입의 변수기에 토글 기능에 사용하기도 함.false와 true 뒤집기flag 값 이용하
이것이 자바다 5장 내용 中향상된 for문은 반복 실행을 하기 위해 카운터 변수와 증감식을 사용하지 않는다. 배열 및 컬렉션 항목의 개수만큼 반복하고, 자동적으로 for문을 빠져나간다.for 문이 처음 실행될 때,①배열에서 가져올 첫 번째 값이 존재하는 지 찾는다.값이
용도 : 객체화 할 때 자동 호출되어, 실행되면 초기화하는 것이 목적클래스의 생성자를 호출생성자를 사용자가 만들지 않으면 컴파일러가 기본 생성자를 자동으로 만들어 준다(→ 1개라도 명시적 생성자가 있다면 기본 생성자는 만들어지지 않는다)\-생성자를 실행시키지 않고는 클
필드를 읽고 수정하는 역할도 하지만, 다른 객체를 생성해 다양한 기능을 수행하기도 한다. 메소드는 객체 간의 데이터 전달의 수단으로 사용된다.외부로부터 매개값을 받을 수도 있고, 실행 후 어떤 값을 리턴할 수도 있다.선언부(리턴타입, 메소드이름, 매개변수선언)와 실행블
속성 안에 값을 넣고 출력하려는 것방법 1. 직접 넣기 (ex. String name = "홍길동")방법 2. 생성자 이용하기방법 3. 메소드 이용하기클래스 안 필드에 있는 것을 사용(출력)하는 방법방법 1. 바로 해당 필드를 가져와 출력한다 (ex.System.out
인스턴스 멤버와 this 인스턴스(Instance) 멤버 객체(=인스턴스) 생성한 후 사용할 수 있는 필드와 메소드를 말하는데 이들을 각각 인스턴스 필드, 인스턴스 메소드라 부른다. 인스턴스 필드와 메소드는 객체에 소속된 멤버이기 때문에 객체 없이는 사용할 수 없다.
final 필드와 상수 final 필드 최종적 이라는 뜻의 final 처럼, final 필드는 초기값이 저장되면 이것이 최종적인 값이 되어 프로그램 실행 도중에 수정할 수 없다는 것이다. final 필드의 초기값을 줄 수 있는 방법은 딱 두가지이다. -첫번째, 필드
6.13 접근 제한자 보통 main()메소드를 가지지 않은 클래스는 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스이다. 이러한 클래스를 설계할 때에는 외부에서 접근할 수 있는 멤버와 접근할 수 없는 멤버로 구분하여 필드, 생성자, 메소드를 설계하는 것이 바람
객체지향 프로그램에서 상속 : 자식(하위, 파생)클래스가 부모(상위) 클래스의 멤버를 물려받는 것 : 자식이 부모를 선택해 물려받는다상속대상: 부모의 필드와 메소드\-Child 클래스를 보면 필드값을 지정 안해줬음에도 age와 name을 사용할 수 있으며, Paren
메소드 오버라이딩: 상속된 메소드의 내용이 자식 클래스에 맞지 않을 경우, 자식 클래스에서 동일한 메소드를 재정의 하는 것을 말한다.(상속의 개념에서 부모 클래스의 메소들르 자식의 클래스로 재정의하는 것): 메소드가 오버라이딩되었다면 부모 객체의 메소드는 숨겨지기 때문
타입 변환과 다형성 다형성(多形性)은 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다. 부모의 타입에 모든 자식 객체가 대입될 수 있다. 이것을 이용하면 객체는 부품화가 가능하다 타입 변환이란 데이터 타입을 다른 데이터 타입으로 변환하는 행위
Object class 모든 클래스의 가장 최상의 클래스 모든 클래스는 Object 클래스를 상속 받는다. ∴ 모든 클래스는 Object 클래스의 메소드를 사용할 수 있고, 일부 메소드를 override해 사용할 수도 있다 (final 메소드 제외) toString
\-클래스가 여러 클래스와 관계를 맺는 경우 독립적으로 선언하는 것이 좋으나, 특정 클래스와 관계를 맺을 경우에는 관계클래스를 클래스 내부에 선언하는 것도 좋다.\-클래스 내부에 선언한 클래스\-코드의 복잡성을 줄일 수 있음\-두 클래스의 멤버들을 서로 쉽게 접근할 수
클래스의 멤버로 선언된 인터페이스를 말한다. 특히 UI 프로그래밍에서 이벤트를 처리할 목적으로 많이 활용된다중첩 인터페이스의 모습중첩 인터페이스를 구현하는 클래스호출해 확인실행모습(ex. Animal a = new Cat();)(큰 타입 - 작은 타입)인터페이스 - 구
\-익명 객체 : 이름이 없는 객체\-단독 생성 불가 : 클래스 상속하거나 인터페이스 구현해야만 생성가능\-사용 위치 : 필드나 로컬변수의 초기값, 매개변수의 매개값으로 주로 대입상속관계 : 부모-자식 / 상위-하위연결관계 : 인터페이스 - 구현클래스부모 타입으로 필
에러(error) : 컴퓨터 하드웨어의 오동작 또는 고장으로 응용프로그램 실행 오류가 발생하는 것 : 발생시 프로그램이 곧바로 종료된다. 예외(exception) : 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 오류 : 예외 처리(Exception
숫자를 문자열로 바꾸기문자열을 숫자로 바꾸기
Buffer 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역 입출력 속도 향상을 위해 버퍼 사용 BufferedReader : 버퍼를 이용한 입력 BufferedWriter : 버퍼를 이용한 출력 BufferedRe
자바 API 도큐먼트 API : Application Programming Interface : API는 라이브러리(library)라고 부르기도 하는데, 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말한다. API 도큐먼트 : 쉽게 API를 찾아 이용
참조하지 않는 배열이나 객체는 쓰레기 수집기 (Garbage Collector) 가 자동으로 힙 영역에서 소멸 시킨다. 이 쓰레기 수집기는 객체를 소멸하기 직전에 마지막으로 객체의 소멸자 (finalize())를 실행시킨다.\-> 실제 실행 결과를 보면 순서대로 소멸시
: 새로운 배열로 특정 배열을 복사하는 메소드 함수: 원본 배열에서 원하는 길이만큼 복사할 수 있어 활용도가 높다: 새로운 배열 = Arrays.copyof(복사할 배열, 복사하고픈 요소만큼의 길이: 요소의 길이가 원본배열보다 길어도 오류없이 복사할 수 있다. 빈 공간
문자열은 데어터로서 아주 많이 사용된다. 그렇기 때문에 문자열을 생성하는 방법과 추출, 비고, 찾기, 분리, 변환 등을 제공하는 메소드를 잘 익혀두어야 함.자바의 문자열은 java.lang 패키지의 String 클래스의 인스턴스로 관리된다.byte 배열을 만들어 그 번
문자열이 특정 구분자(delimiter)로 연결되어 있을 경우, 구분자를 기준으로 부분 문자열을 분리하기 위해서는String의 split() 메소드를 이용하거나java.util 패키지의 StringTokenizer 클래스를 이용할 수 있다String클래스를 보면 spl
: 문자열이 정해져 있는 형식(= 정규 표현식 : Regular Expression) 으로 구성되어 있는지 검증해야 할 때가 있다.: 예를 들어 주민등록번호, 이메일, 전화번호 등간단히 말해 숫자 기호와 반복 기호, 문자가 결합된 문자열이다. 아래 표는 정규 표현식을
프로세스(process) : 실행중인 하나의 프로그램 : 하나의 프로그램이 다중 프로세스를 만들기도 한다 (ex, 크롬창에서 탭을 두개 이상 만들었을 때) 멀티 태스킹(Multi tasking) : 두가지 이상의 작업을 동시에 처리하는 것 : 다중 작업 메인(main
Math 클래스 : java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있다. Math 클래스가 제공하는 메소드는 모두 static이므로 Math 클래스로 바로 사용 가능하다. : 아래는 Math 클래스가 제공하는 메소드를 설명한 표다
스레드 객체를 생성하고, start() 메소드를 호출하면 곧바로 스레드가 실행되는 것처럼 보이지만 사실은 실행 대기 상태가 된다(실행대기 상태란, 아직 스케줄링이 되지 않아 실행을 기다리고 있는 상태)실행 대기 상태에 있는 스레드 중 스케줄링으로 선택된 스레드가 비로서
스레드 (원시 코드)를 많이 사용하면 스레드 폭증이 일어날 수 있는데, 스레드 폭증으로 일어나는 현상은 아래와 같다. : 병렬 작업 처리가 많아지면 스레드 개수가 증가하고 : 스레드 생성과 스케줄링으로 인해 cpu가 바빠지고 : 메모리 사용량이 늘어나면서 : 애
배열의 문제점 : 저장할 수 있는 객체 수가 배열을 생성할 때 결정 -> 불특정 다수의 객체를 저장하기에는 문제가 있음 : 객체를 삭제했을 때 해당 인덱스가 비게 됨 -> 객체를 저장하려면 어디가 비어있는지 확인해야 하고 객체를 불러올 때도 어디에 있는지 하
\-List는 객체를 일렬로 늘어놓은 구조\-객체를 인덱스로 관리: = 순서 유지 가능, 중복으로 객체 저장 가능: 중간에 삭제가 있다면 뒤에서 당겨 채움: 인덱스로 객체를 검색, 삭제할 수 있는 기능이 제공\-단, 삽입 삭제가 빈번한 경우에는 사용 비추천\-null도
List는 저장 순서를 유지하지만, Set은 저장 순서가 유지되지 않는다 : 객체의 중복저장 불가 \-> 동일 값, 동등 객체의 중복 저장 x : 하나의 null은 저장 가능 : 순서가 유지되지 않기 때문에 인덱스로 꺼내올 수 없음. 그래서 사용하는 것이 이터레이터
: 키와 값으로 구성된 Entry 객체를 저장하는 구조 (키와 값은 모두 객체) : 키는 중복 불가, 값은 중복 가능 \-> 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존 값은 없어지고 새로운 값으로 대치된다. : 키로 객체들을 관리하기 때문에, 키를 매개
컬렉션 프레임 워크는 검색 기능을 강화시킨 TreeSet과 TreeMap을 제공하고 있다. 이 컬렉션들은 이진 트리(binary tree)를 이용해서 계층적 구조(Tree 구조)를 가지면서 객체를 저장한다. 이진 트리 구조 여러개의 노드가 트리 형태로 연결된 구조로,
: 타입을 파라미터로 가지는 클래스와 인터페이스 : 선언 시 클래스 또는 인터페이스 이름 뒤에 <> 부호를 붙임 : <> 사이에는 타입 파라미터가 위치 타입 파라미터 : 일반적으로 대문자 알파벳 한 문자로 표현 : 개발 코드에서는 타입 파라미터 자리에 구
람다식? 최근 들어 함수적 프로그래밍이 다시 부각되고 있는데, 병렬처리와 이벤트 지향 프로그래밍에 적합하기 때문이다. 그래서 객체 지향 프로그래밍과 함수적 프로그래밍을 혼합함으로써 더훅 효율적인 프로그래밍이 될 수 있도록 프로그램 개발 언어가 변하고 있다. 람다식 기