
- 발생 시점에 따른 구분1. 컴파일 에러: 문법적 오류, 컴파일 도중 2. 런타임 에러: 컴파일은 성공했으나, 프로그램 실행 중 발생, 문법 오류 x3. 논리적 에러: 컴파일, 실행 성공했으나 의도대로 동작하지 않는 오류 에러와 예외 - 에러: 발생하면 복구할 수 없는 심각한 오류메모리 부족, 스택 오버 플로우 등 - 예외: 적절한 코드를 통해 대비할 수 있는 오류 클래스 형 변환 실패, 파일 읽기 실패 등 - 예외처리:예외 발생 시 프로그램의 비 정상 종료를 막고 실행 상태를 유지하는 것동작할 코드 작성 필요 - 예외 종류체크 예외: 컴파일 시점에서 예외 처리가 요구되는 예외언체크 예외: 실행 시점에서 발생하는 예외, 컴파일러가 예외 처리를 강제하지 않음 !! 중요에러는 프로그래머가 처리할 필요..

LIFO (Last In First Out)Map은 key, val의 을 각자 지정해줘야 됨 -> dic과 비슷 ArrayList: 큰 사이즈의 리스트에 자동 복사 - Collection 인터페이스: List, Set, Queue의 상위 인터페이스 -List: 순서가 있고, 중복 허용 (like 배열)ArrayList, LinkedList, Vector 오.. 정말 별로다 - LinkedList각 요소는 Node로 정의, Node는 다음 요소의 참조 값과 데이터로 구성각 요소가 다음 요소의 링크 정보, 연속적 구성될 필요 없음 -Set --- => 사용자 정의 클래스 사용하는 경우,이렇게 해야 중복이 안됨 -Map - Queue - Stack - Deque - 정렬 s..

- 인터페이스 추상화된 설계도 class 대신 interface 키워드 사용기본적으로 public abstract가 생략되어 있음변수는 자동으로 public static final로 간주. 생략 가능 -> 변수처럼 보이지만 상수 - 인터페이스의 구현자체로는 객체 생성X인터페이스 구현하는 클래스 만들기 -> 클래스를 이용해 객체 생성 구현: 클래스 implements 사용클래스는 여러 개의 인터페이스를 다중 구현 가능클래스는 인터페이스의 추상메서드를 '모두' 구현해야 객체 생성 가능않을 경우 추상 클래스 됨 (추상메서드가 하나라도 있을 경우 추상 클래스) - 인터페이스와 다형성인터페이스를 구현한 클래스로 만든 객체 -> 해당 인터페이스 타입으로 참조 가능 동적 바인딩: 런타임 시점에서는 실제 객체..

- JVM 메모리 구조JVM은 가비지 컬렉터를 통해 자동으로 메모리 관리사용되지 않는 객체를 메모리에서 해제 - 메서드 영역, 힙 영역, 스택 영역메서드 영역: 클래스 관련 정보를 저장 (메서드, 필드 등)힙 영역: 모든 객체, 배열, 문자열 상수 풀이 저장스택 영역: 메서드 호출 시마다 프레임 생성 , 종료시 자동 제거 -> 마지막 추가된 메서드가 가장 먼저 제거 - 실행하면 메소드에 설계도를 먼저 올림 - 특정 메소드를 실행하면 스택에 올라감 - 메인 안에서 객체를 생성하면 인스턴스가 힙에 생성 ex) Person p1 = new Person();p1.name= "홍길동";p1.age = 45; 메소드 영역 => 클래스 구조, name, age스택 => p1, p2힙 => name=홍길..

- 객체지향 프로그래밍 (OOP, Object Oriented Programming)객체 단위로 코드 작성, 객체 간의 상호작용으로 프로그램 설계 - 클래스객체를 만들기 위한 설계도 - 인스턴스클래스를 통해 생성된 객체 - 객체지향 프로그래밍의 특징Abstraction(추상화): 객체의 필요한 인터페이스만을 제공, 구현에 의존하지 않는 설계Polymorphism(다형성): 객체들이 서로 다른 방식으로 동작Inheritance(상속): 기존 설계도를 재사용, 하나의 클래스가 다른 클래스의 속성과 메서드를 물려받음Encapsulation(캡슐화): 객체의 데이터와 메서드를 하나로 묶음 -객체지향 프로그래밍의 장점코드의 재사용성, 유지보수성, 유연성과 확장성 - 클래스 선언 및 객체의 생성객체 생성->..

- 배열의 선언데이터타입[] 배열이름 > 데이터타입 배열이름[] ex) int[] intArray; char[] charArray; boolean[] boolArray; String[] strArray; float[] floatArray; //배열 생성자료형[] 배열이름 = new 자료형[길이]; //배열 생성 및 값 초기화자료형[] 배열이름 = new 자료형[] {값1, 값2, 값3, 값4}; //선언과 동시에 초기화자료형[] 배열이름 = {값1, 값2, 값3, 값4}; - 기본값 - 배열 복사 (중요!)얕은 복사는 주소가 같아서 원본의 값이 바뀌면 복사도 바뀐다 깊은 복사는 새로운 주소 생성 - 최대, 최소, 합, 평균- 빈도수 구하기 - 다차원 배열 2차원 배열 선언:데이터타입[][] 배열이..

주석문 종류 //, /* */ (중간에도 가능)if - else if - elseswitch 네이밍 규칙 타입 종류 클래스5 메소드5 변수6 상수1 형변환 1.4 이전, 1.5 (enum), 1.7 버전 (string) Array - 퀴즈: 출력되는 결과와 메모리 할당 package com.ssafy.class1;class Node { int data = 0; Node next = null;}public class QuizMemory { public static void main(String args[]) { Node head = new Node(); head.data = 0; Node tail = head; tail.next = new Node(); tail.next.data = 1..

JDK 17https://bell-sw.com/pages/downloads/#jdk-17-lts SpringToolSuit4https://spring.io/tools STS4 설치 후 sts-4.23.1.RELEASE -> SpringToolSuit4.ini 를 txt로 오픈'-Dfile.encoding=UTF-8' 추가 STS 내 템플릿 만들기: window -> preferences -> java -> editor -> templates