객체지향 프로그래밍 언어OS에 독립적이다다양한 기종의 컴퓨터와 운영체제가 있는 인터넷 환경에 적합한 언어다)자동 메모리 관리자바로 작성된 프로그램이 실행시 가비지 컬렉터가 자동으로 메모리를 관리해준다.풍부한 클래스 라이브러리 Java API네트워크 관련 프로그램을 쉽게
Java Virtual Machine의 줄임말로 자바 실행을 위한 가상기계가상 기계 : 소프트웨어로 구현된 하드웨어가상 컴퓨터 : 소프트웨어로 구현된 컴퓨터자바로 작성된 어플리케이션은 모두 JVM(가상 컴퓨터)에서만 실행되기 때문에 자바어플리케이션 실행을 위해서 반드시
Hello.java라는 파일을 메모장으로 작성 한다.자바 컴파일러를 이용해서 Hello.class 파일을 생성한다.자바의 모든 코드는 반드시 클래스 안에 존재해야 하고 관련된 코드끼리 별도의 클래스를 구성한다클래스들이 모두 모여서 하나의 Java 어플리케이션을 이룬다
System.out.print("3+5");화면에""안의 내용을 문자열로 출력 출력 : 3+5 System.out.println("3+5");화면에""안의 내용을 문자열로 출력하고 줄바꿈 함 출력 : 3+5 System.out.print(3+5);( ) 안에 3+5
두 변수의 값을 서로 바꿀때는 변수는 한개의 값만 저장할 수 있기 때문에 임시로 저장할 변수가 하나 더 필요하다.임시 변수 tmp를 만들어 변수x에 저장된 값을 대입하고 변수x에 변수y에 저장된 값을 대입한다.변수 y에 변수 tmp에 저장된(변수x에 초기에 저장되있던)
데이터의 종류에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것기본형실제 값이 저장된다종류논리형boolean(1byte)true, false 만 표현할 수 있으면 됨문자형char(2byte)유니코드를 사용한다정수형byte(1byte)byte의 크기가 1bytes
숫자를 문자로 변환 숫자에
특정 용도로 사용하기 위해서 자바에서 미리 예약되어 있는 명령으로 변수나 클래스, 메소드명으로 사용할 수 없는 단어abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultifdogotodoubleimpl
System.out.print("3+5");화면에""안의 내용을 문자열로 출력 출력 : 3+5 System.out.println("3+5");화면에""안의 내용을 문자열로 출력하고 줄바꿈 함 출력 : 3+5 System.out.print(3+5);( ) 안에 3+5

//Scanner 클래스를 사용하기 위해 추가 import java.util.Scanner; //Scanner 클래스의 객체를 생성 Scanner scanner = new Scanner(System.in); // 입력받은 내용을 input에 저장 String in

연산자연산을 수행하는 기호종류산술 연산자 : 사칙연산과 나머지 연산\+ ,- ,\* ,/ ,% ,<< , >>나눗셈 연산자 ( / )정수형 피연산자를 0으로 나누면 에러가 발생한다두 피연산자가 모두 int일 경우 연산결과 역시 int타입이다.( 10 / 4
조건식과 블럭( 괄호 { } )으로 이루어져 있다블럭 내에 문장이 하나 일뿐일 때는 괄호를 생략할 수 있다 조건식에는 조건 연산자를 사용해야 한다if문 안에 if문을 중첩으로 사용할 수 있다
if문과 달리 하나의 조건식으로 많은경우의 수를 처리할 수 있다switch문의 조건식의 결과값과 case문의 값은 반드시 정수나 문자열이여야한다case문의 값은 중복되면 안된다. ( 실수나 변수는 사용할 수 없다 상수는 가능 )
소수점 첫째자리에서 반올림한 값을 구할 때원하는 소수점 자리에서 반올림한 값을 구할 때y = Math.round(x \* 1000)/1000.0; 에서 1000.0으로 나누는 이유 ?1000으로 나눌시에는 두 피연산자가 모두 int라 값이 int로 나와서 3이 나온다.
작업이 반복적으로 수행되도록 할 때 사용 된다반복 횟수를 알고 있을 때 주로 사용하는 반복문초기화한 이후에 조건식이 true일 경우는 코드가 실행되고 증감식으로 이동 또다시 조건식으로 가서 true일 경우 코드 실행후 증감식이 반복되며 조건식이 false일 경우 반복문
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 > ### 선언 방법 변수타입 [ ] 배열명 = new 변수타입 [ 배열 길이( 저장가능한 공간의 수 ) ] 저장공간이 연속적으로 배치되어 있다 >

int\[]\[] table = new int\[6]\[3]int \[]\[] arr; arr = new int\[행갯수]\[열갯수];int\[]\[] arr = new int\[행갯수]\[열갯수];int arr \[]\[] = new int\[행갯수]\[열갯수];
toString() : 일차원 배열의 모든 요소를 문자열로 편하게 출력할 수 있다deepToString() : 2차원 이상의 배열에서도 사용가능하다equals() : 두 일차원 배열에 저장된 모든 요소를 비교해서 같은 true, 다르면 false 반환deepEquals
기존 프로그래밍 언어에 새로운 규칙을 추가한 언어코드 간에 서로 관계를 맺어주어 유기적으로 프로그램을 구성하는 것이 가능해졌다.코드의 재사용성이 높다.기존의 코드를 이용하여 작성할 수 있다코드의 관리가 쉽다.코드간의 관계를 이용해 쉽게 코드를 변경할 수 있다.3.신뢰성
정의 : 객체를 정의해 놓은 것용도 : 객체를 생성하는데 사용한다정의 : 실존하는것 ( 사물(유형)이나 개념(무형) )용도 : 객체가 가지고 있는 기능,속성에 따라 다르다여러개의 속성과 여러개의 기능으로 이루어져 있으며 이들을 객체의 멤버라고 한다. 속성 ( 객체가 T
class Hello2 { }class Hello3 { }//파일의 이름이 "Hello2.java"나 "Hello3.java" 둘 다 가능
인스턴스 변수안에 static을 붙이면 된다클래스 변수의 저장공간을 모든 인스턴스가 공유하게 되기 때문에 인스턴스들이 공통적인 값을 가진다인스턴스를 생성하지 않아도 언제든지 사용할 수 있다.클래스 영역에 선언되고 인스턴스를 생성할 때 만들어진다.인스턴스마다 별도의 저장
메서드를 사용할때 입력과 출력에 대해서만 알면되고 내부적으로 어떻게 진행이 되는지 몰라도 되기 때문에 블랙박스라고도 한다반환타입, 메서드 이름, 매개변수선언 으로 이루어져 있다.int(반환타입) add(메서드 이름) (int x, int y)(매개변수 선언)두개의 정수
생성자도 메서드 중 하나이며 인스턴스를 만드는 역할은 연산자 new 가 하는 것이고 생성자는 인스턴스 변수 초기화에 사용되는 것이다.생성자의 이름은 클래스의 이름과 같고 리턴 값이 없다( void가 원래 붙어야하지만 생략가능)클래스에는 반드시 하나이상의 생성자가 있어야
멤버변수( 인스턴스 변수, 클래스 변수 )초기화를 하지 않아도 자료형에 맞는 기본값을 초기화가 된다.지역변수사용하기 전에 반드시 초기화해야 한다.변수를 선언과 동시에 초기화 하는 것 가장 기본적이고 간단한 방법복잡한 초기화 작업에는 초기화 블럭이나 생성자 사용int x
코드를 공통적으로 관리할 수 있다. ( 코드의 양이 적어진다, 관리가 용이하다 )extends를 사용하여 상속한다.자손 클래스는 조상 클래스의 모든 멤버를 상속받는다(생성자, 초기화 블럭 제외)자손 클래스의 멤버수는 조상의 멤버수와 같거나 더 많다.
따로 상속을 받지 않는 모든 클래스는 자동적으로 object클래스를 상속받는다.class M{...}을 class M extends Object{...}로 컴파일러가 변경한다.object클래스를 상속받기 때문에 object클래스에 정의된 멤버들을 사용할 수 있다.
한 클래스 내에서 같은 이름의 메서드가 있더라도 매개변수의 개수나 타입이 다르면 메서드를 정의 할 수 있다.1\. 메서드의 이름이 같아야 함2\. 매개변수의 개수 또는 타입이 달라야 한다.3\. 반환 타입은 관계없다.매개변수에 의해서만 구별이 될 수 있기 때문에 매개변
자손 클래스에서 조상 클래스로부터 상속받은 멤버를 가리킬 때 사용하는 참조변수상속받은 맴버와 자신의 멤버의 이름이 같을 때 super를 붙여서 구별한다.조상의 생성자를 호출 클래스 자신에 선언된 변수는 자신의 생성자가 초기화를 하도록 작성하는 것이 좋다
클래스들의 묶음으로 같은 디렉토리에 있다.클래스의 실제 이름은 패키지명을 포함하고 있다String 클래스의 실제 이름은 java.lang.Stringjava디렉토리에 있는 lang 디렉토리에 포함된 String.class파일서로 관련된 클래스들끼리 그룹 단위로 묶어서
import (패키지명.클래스명); : 해당 패키지 안에 해당 클래스를 사용import(패키지명).\*; 해당 패키지 안에 있는 모든 클래스를 사용를 아래로사용시 클래스명을 생략할 수 있다.특정 클래스의 static 멤버를 자주 사용할 때 편리하다.를
클래스, 변수, 메서드 선언부에 사용되어 부가적인 의미를 부여멤버나 클래스에 사용되며 접근할 수 있는 영역을 제한한다.외부로부터 데이터를 보호하기 위해 사용내부적으로 사용되는 부분을 감추기 위해서public : 접근 제한이 없다protected : 같은 패키지, 다른
여러 가지 형태를 가질 수 있는 능력조상클래스 타입의 참조변수로 자손클래스를 인스턴스를 생성할 수 있다조상 클래스에 있는 멤버만 사용할 수 있다.
참조형의 형변환은 저장된 값, 주소값이 변환되는 것은 아님자식클래스타입에서 조상클래스타입조상클래스타입에서 자식클래스타입예제
참조변수가 피연산자로 형변환이 가능하면 true 아니면 false
미완성 클래스인스턴스 생성 불가추상 메서드를 포함하고 있는 클래스조상 클래스로서 중요한 의미를 갖는다. 어느 정도 틀을 갖춘 상태에서 새로운 클래스를 작성할 때 도움이 된다.추상 클래스를 통해서 여러 객체를 배열로 생성할 수도 있다.선언부만 작성하고 구현부는 작성하지
일종의 추상클래스지만 추상클래스보다 추상화 정도가 높아서 오직 추상메서드와 상수만 멤버로 가질 수 있다.추상클래스가 미완성 설계도라면 인터페이스는 틀외에는 아무것도 없는 기본 설계도로 다른 클래스 작성에 도움을 줄 목적으로 작성된다.모든 멤버변수는 public stat
인터페이스에 메서드를 추가하는 경우는 인터페이스를 구현하는 모든 클래스들이 추가된 매서드를 구현해야 하기 때문에 매우 해야할 일이 늘어나기 때문에작성 : public default void methos1(){}추상메서드 대신 default 메서드를 선언하면 인터페이스를
클래스 내부에 선언된 클래스두 클래스가 긴밀하게 관계되어 있기 때문두 클래스의 멤버들 간에 쉽게 접근할 수 있다. ( 장점 )외부에 불필요한 클래스를 감춰 복잡성을 줄일 수 있다. ( 장점 )내부 클래스는 외부 클래스를 제외하고는 잘 사용되지 않는 것이여야 한다.인스턴
Object 클래스 : 클래스들의 최고 조상이기에 Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능하다그래서 import문 없이도 String, System 클래스를 사용할 수 있었다.
문자열을 저장하고 이를 다루는데 필요한 메서드를 제공하는 클래스final클래스기에 조상클래스가 될 수 없으며 char \[] 에 문자열이 저장된다.( 생성후에는 읽어 올 수만 있고 변경할 수는 없다. )\+ 연산자로 문자열이 결합하는 경우는 새로운 String 인스턴스
문자열 편집을 위한 버퍼를 가지고 있어 생성할 때 버퍼의 크기를 정해준다. 문자열이 버퍼의 길이를 넘길 경우 버퍼의 길이를 늘려주는 작업이 수행되어 효율이 떨어지니 처음에 넉넉히 잡아주는게 좋다 ( default는 16 )StringBuffer append(String
기본형을 객체로 다뤄야 하는 경우에 사용한다.( ex. 매개변수로 객체를 요구할 때, 객체간의 비교를 할 때 )
int i = new Integer("100").intValue();int i2 = Integer.parseInt("100"); // 반환타입이 기본형Integer i3 = Integer.valueOf("100"); // 반환타입이 래퍼 클래스 static int pa