728x90
[변수] -데이터타입 출력 int intType = 100; double doubleType = 150.5; System.out.println(StringType); System.out.println(intType); System.out.println(doubleType); System.out.println(StringType); -final 키워드-> 상수 정의 public class Main { final static double PI = 3.141592; //final 상수 선언 public static void main(String[] args) { int r = 30; System.out.println(r*r*PI); } -데이터 범위 넘어선 오버플로우의 개념 이해 public class Mai..
ch14. 입출력 스트림 14-1. 입출력 스트림 (기본 스트림) 📌 자바는 ‘스트림’을 통해 직접 ‘데이터’를 입출력한다. ‘스트림’: 단일 방향, 연속적으로 흘러가는 것 [입출력 스트림의 종류] : java.io 패키지는 多 종류의 스트림 제공 ‘바이트’ 기반 스트림 : 바이너리 데이터 입출력 스트림 출력 최상위 클래스 : OutputStream 입력 최상위 클래스 : InputStream ‘문자’ 기반 스트림 : 문자 데이터 입출력 스트림 출력 최상위 클래스 : Writer 입력 최상위 클래스 : Reader 📗[바이트 ‘출력’ 스트림] : OutputStream : 바이트 기반 출력 스트림의 최상위 클래스, 추상 클래스 : OutputStream 클래스 -> 모든 바이트 기반 출력 스트림의 기본 ..
ch13. 컬렉션 프레임워크 13-1. 컬렉션 프레임워크 [컬렉션 프레임워크] : 자료구조 개념 이용하여 객체들을 효율적으로 관리하고자 java.util 패키지에서 제공하는 인터페이스, 구현 클래스들을 총칭함 : 인터페이스(사용 방법 정의) + 구현 클래스(실체) = 컬렉션 인테페이스 (List/Set/Map) + 컬렉션 클래스(구현 클래스) 🟩[List 컬렉션] : List 인터페이스 : 객체들을 인덱스로 관리 : 저장 용량 자동 증가, 자동 인덱스 부여 : 객체 자체를 저장 X 객체의 번지를 참조 O 객체 저장 순서 유지 객체 중복 저장 O null 저장 O [List 컬렉션 메소드] 객체 추가 맨 끝에 객체 추가 : add(객체); 지정 인덱스에 객체 추가 : add(인덱스, 객체); 지정 인덱스 ..
ch12. 스레드 12-1. 멀티 스레드 [프로세스] : 운영체제에서 실행 중인 하나의 애플리케이션 : 운영체제로부터 메모리 할당받아 애플리케이션 실행 단일 프로세스 : 하나의 애플리케이션 내부, 단 하나의 프로세스 멀티 프로세스 : 하나의 애플리케이션 내부, 多 프로세스 [스레드] : 하나의 작업 실행에 필요한 하나의 코드 실행 흐름 : 멀티 스레드 생성 -> 병렬로 실행 -> 멀티 태스킹 수행 O 싱글 스레드 ; 하나의 프로세스 내부, 단 하나의 메인 스레드 멀티 스레드 : 하나의 프로세스 내부, 메인 스레드 1개 + 여러 개의 작업 스레드 들 [멀티 프로세스 VS 멀티 스레드 비교] 🟨멀티 프로세스 : 독립적 실행 : 각 프로세스가 운영체제에서 자신의 메모리를 할당받아 실행하므로 각 프로세스는 서로..
11-1. java.lang 패키지 [java.lang 패키지] : 자바 프로그램의 기본 클래스 담고 있는 패키지 ( import 없이 사용 O) [자바 API 도큐먼트] API : Application Programming Interface **개발에 자주 사용되는 클래스,인터페이스 모음 라이브러리** -8버전 : 전체 자바 표준 API를 패키지별로 정리 -11버전 : 전체 자바 표준 API를 모듈별로 정리 : 이클립스로 접근 시. 클래스이름 드래그 -> f1키 누르면 자동으로 API 도큐먼트 Help 뷰 -> 링크 클릭 [API 도큐먼트 읽기] 최상단 SUMMARY : 해당 클래스 내에 선언된 멤버의 종류 나열 클래스의 선언부 확인 -final / abstract 클래스 키워드 확인 -extends ..
ch10. 예외 처리 10-1. 예외 클래스 📌 Error : 하드웨어적 문제 Exception : 프로그램 실행 도중 발생 문제 [예외와 예외클래스] 2가지 일반 예외 : 컴파일러 체크 예외 : 컴파일러가 해당 예외처리코드 존재 여부 검사 O 실행 예외 : 컴파일러 넌 체크 예외 : 컴파일러가 검사X : JVM 은 예외를 클래스로 관리 : JVM 은 실행 도중 예외 발생 시 -> 해당 예외클래스로 객체 생성 : 모든 예외 클래스는 jaca.lang.Exception클래스를 상속받음 [실행 예외 종류] 1) NullPointerException 🟨 java.lang.NullPotinterException 예외 발생 : null값 갖는 참조 변수로 객체 접근 시도할 때 발생 2) ArrayIndexOutO..
ch09. 중첩 클래스와 중첩 인터페이스 09-1. 중첩 클래스와 중첩 인터페이스 📌 클래스들은 서로 긴밀한 관계를 맺고 상호작용을 하지만, 특정 클래스와 긴밀한 관계를 맺는 경우, 클래스 내부에 선언을 해준다. ➡️인스턴스 멤버 : 객체 생성없이 사용 불가능한 멤버 ( 객체마다 소속되는 멤버) ➡️정적 멤버 : 객체 생성없이도 사용 가능한 멤버 ( 클래스에 고정된 멤버) , 클래스로 바로 접근해서 사용 O [중첩 클래스] : Nested 네스티드 클래스 중첩 클래스 : 클래스 내부에 선언한 클래스 → 클래스 내부에 에 따라 → 선언된 위치에 따라 ◾ : 바깥 클래스 블록 내부에 클래스의 멤버로서 선언된 중첩 클래스 : 바이트 코드 이름 : 바깥 $ 멤버.class ✅인스턴스 멤버 클래스 : 바깥 객체가..
ch08. 인터페이스 08-1. 인터페이스 [인터페이스] : 개발코드와 객체 사이를 잇는 접점 역할 : 개발코드가 인터페이스의 추상 메소드 호출하면 // 인터페이스는 구현 객체의 재정의된 실체 메소드 호출하여 객체 실행 : 인터페이스로 매개하면 개발 코드 수정 없이 -> 다양한 객체들로 변경하며 사용 가능 [인터페이스 선언] : interface 키워드 public interface 인터페이스이름 { } : 인터페이스 구성멤버: 상수필드와 추상메소드 **** [public static final] 타입 상수이름 = 값; //생략해도 컴파일 과정에서 자동으로 붙음 //인터페이스 상수는 반드시 선언과 동시에 초기값 지정 **** [public abstract] 리턴타입 메소드이름(매개변수); //선언부만 작..
ch07. 상속 07-1. 상속 [클래스 상속] : 자식이 부모 클래스를 선택해서 부모 클래스의 필드와 메소드를 상속받는다. [상속 특징] 1) 다중 상속 불가능. extends 뒤에는 오직 하나의 부모클래스만 온다 2) 부모 클래스의 private 필드, 메소드 : 상속 제외 3) 다른 패키지에 존재하는 부모 클래스의 default 필드.메소드 : 상속 제외 [부모 생성자 호출] : 상속 이루어진 자식 클래스에서 자식 객체 생성 시 내부적으로 부모 객체가 먼저 생성되고, 자식 객체가 생성된다. : 생성자를 호출해야 객체가 생성된다. : 자식 객체 생성을 선언하면 부모 객체 생성을 먼저 하기 위해 자식 생성자의 맨 첫줄에서 부모 생성자 호출된다. **** : 컴파일러가 자식 생성자 첫줄에 super();..
ch06. 클래스 06-1. 객체 지향 프로그래밍과 클래스 [객체] : 자신의 속성을 가지고 있으면서 식별 가능한 것 : 객체는 속성과 동작으로 구성 (속성 = 필드, 동작 = 메소드) [객체 간의 상호작용] : 객체는 각각 독립적으로 존재하면서 다른 객체와 상호작용하며 동작함 : 객체 간 상호작용 = 객체 간의 메소드 호출 : 객체 상호작용 수단 = 메소드 : 매개값을 주고 메소드 호출한 뒤 메소드가 반환값을 이용하는 구조 : 즉, 매개값과 리턴값을 통해서 데이터를 주고받으며 상호작용 [객체 간의 관계] -집합 관계 : 부품 객체가 하나의 완성품 객체에 포함 되는 관계 -사용 관계 : 객체 간 상호작용하는 관계 -상속 관계 : 상위 부모 객체기반, 하위 자식 객체 생성 관계 [객체와 클래스] : 설계도..
ch05. 참조 타입 05-1. 참조 타입과 참조 변수 💡 자바의 데이터 타입: 기본 타입, 참조 타입 [기본 타입과 참조 타입] : ‘저장되는 값’이 다르다. 기본 타입 변수: 변수에 실제 값을 저장 참조 타입 변수: 변수에 객체의 번지를 저장하고, 번지를 통해 객체를 참조 [메모리 사용 영역] : JVM은 운영체제에서 할당받은 메모리 영역을 세부 영역으로 구분 메소드 영역 (모든 스레드가 공유) : JVM 시작할 때 생성 : 코드에서 사용되는 클래스(.class)들을 클래스 로더로 읽어서 클래스 별로 정적 필드, 상수, 메소드 코드, 생성자 코드 분류 저장 힙 영역 (객체와 배열 생성) : 여기에 생성된 객체와 배열은 스택영역 변수나 다른 객체의 필드에서 참조한다. : 만약 참조하는 변수, 필드 없으..
ch04. 흐름 제어문 (조건문과 반복문) 04-1. 조건문 : if문, switch문 🟦조건문 [if문] : 조건식의 결과값 (T or F)에 따라 블록 실행 여부 결정 [if-else문] : 조건식의 결과값이 T이면 if문 블록을, F이면 else문 블록 실행 [if-else if-else문] : 조건식 여러 개인 경우 사용 : else if문 사용은 제한 없음 : 여러 조건식 중 T값 갖는 블록 내부를 실행하고, 모든 조건식이 F이면 else문 실행 **Math.random()메소드** : 기본적으로 0.0
ch03. 연산자 03-1. 연산자와 연산식 [연산자] 산술 연산자 -> 산출 결과값 (숫자 타입) 논리, 비교 연산자 -> 산출 결과값 (boolean타입) 즉, T or F 연산식이 값 대신 사용되는 경우 int result = x + y; 연산식이 피연산자로 사용되는 경우 boolean result = (x + y) 연산 방향 따짐(2) 단, 대입 연산자 : 왼 오 방향으로 연산 수행** 우선순위가 다른 연산자의 연산식산술 > 비교 > 논리 > 대입 (2) 괄호() 사용해서 우선 처리할 연산식 묶어줌 (사용多) **(1) 연산자 우선순위..
ch02. 변수와 타입 02-1. 변수 [변수] 변수 : 값을 저장할 수 있는 메모리의 특정 공간에 붙이는 이름 -> 선언하면 공간을 갖고, 값을 저장하면 해당 변수 공간에 실질 값 저장된다. [변수 선언] : 메모리 해당 공간에 어떤 타입의 데이터를 저장할 것인지, 저장 공간의 타입과 이름을 선언 [변수 값 저장] : 대입 연산자를 사용해서, 앞서 선언으로 할당해놓은 메모리 공간 변수에 값을 저장. : 자바는 변수 값이 저장되지 않은 상태에서는 변수 생성이 안 된다. : 최초로 변수에 값이 저장되는 ‘변수 초기화’ 이후, 실질적으로 변수가 생성된다. [변수 사용] : 변수에 저장된 변수값을 이용해서 출력문이나 연산식을 수행하는 것. : 변수는 또 다른 변수에 대입하여 ‘값 복사’할 수 있다. [변수 사..
ch01. 자바 시작하기 1-1. 프로그래밍 언어와 JAVA [프로그래밍 과정] 💡 : 프로그래밍 언어 -> 소스코드 파일 작성-> 컴파일 -> 기계어 번역 -> 컴퓨터가 실행 [프로그래밍 언어] Java : 임베디드/웹/안드로이드/소프트웨어 개발 분야 C/C++ : 하드웨어 장치 제어 및 임베디드 sw분야 C++/C#: 데스크탑 앱, ASPNET기반 웹 sw분야 파이썬: 빅데이터 분석 및 머신러닝 sw분야 [자바 특징] 1) 모든 운영체제에서 실행 가능 2) 객체지향 프로그래밍 : 객체(부품)만들고, 객체들을 연결해서 더 큰 프로그램 완성 기법 3) 메모리 자동 정리 4) 무료 라이브러리 풍부 [자바 개발 도구: JDK] : Java Development Kit JDK는 자바로 sw개발 시 필요한 실행..