본문 바로가기

전체 글

(44)
입출력 스트림 A. 입출력 스트림 (I/O stream) 프로그램에서 값을 입력받거나 출력하는 통로 Ex) System.in : 입력 스트림 객체, System.out : 출력 스트림 객체 프로그램 'A' * * 운영체제(OS)의 기본 인코딩 방식 : * - 한글 MS Windows : EUC-KR(MS949, CP949), 영문 MS Windows : CP1252 * - MacOS, Linux, Unix, ... : UTF-8 */ public class FileMain08 { public static void main(String[] args) { } } (~Java 11버전) 문자 스트림과 인코딩을 다루는 방법 FileReader, FileWriter 클래스는 인코딩 설정 방법이 없음. try ( // 1. Fi..
JSP/SERVLET 프로젝트 생성 시 Dependencies LogForJ (?) ⇒ 로그 남기는 라이브러리 (설정을 .xml 파일로 함 ⇒ resources 내에 넣을 것) 내부 폴더 구조 /test/ 는 단위 테스트를 위한 프로젝트 전체 폴더 구조 라이브러리 설치 간단한 블로그 프로젝트 사용할 라이브러리들 다운 받을 것 프로젝트 디펜던시 설정하기 Logging 관련 Library Description log4j-core The Apache Log4j Implementation log4j-api The Apache Log4j API log4j-slf4j2-impl The Apache Log4j SLF4J 2.0 API binding to Log4j 2 Core slf4j-api The slf4j API 구글 maven central repository 검색 ⇒ ..
Collection Collection |__ List |__ ArrayList, LinkedList, … A. List A-1. 리스트의 특징 값들을 저장하는 순서가 중요 - 인덱스를 가지고 있음 값들을 저장할 때마다 인덱스는 자동으로 증가 - 저장 공간이 자동으로 증가 리스트 중간에 있는 값을 삭제하면 인덱스가 자동으로 재배열됨. 같은 값들을 여러번 저장할 수 있음 - Set과 다른 점 List에서 E는 리스트가 저장하는 원소(element)의 데이터 타입을 표현한다. 🚨🚨🚨 리스트는 클래스 타입의 객체만 저장할 수 있음. 기본타입 데이터는 저장할 수 없습니다! 🚨🚨🚨 A-2. ArrayList의 특징 배열을 이용한 리스트 데이터를 저장(add), 삭제 속도가 느림 데이터 검색 속도 빠름 검색 기능 ArrayList l..
예외처리 (Exception) A. 예외 🚨 Exception A-1. 오류의 종류 시스템 에러 : Ex) 메모리 부족 (OOM - Out Of Memory) 수정이 매우 힘들거나 불가능 최적화나 성능 상향하는 방식으로 해결이 가능하기는 함 컴파일 에러 문법 오류 ⇒ 반드시 수정 논리적인 오류 프로그램이 정상적으로 컴파일되고 실행/종료가 되지만, 원하는 결과가 나오지 않는 경우 예외(exception) : 프로그램 실행 중에 발생할 수 있는 비정상적인 상황 → 반드시 수정 if - else 문장 try-catch 문장 A-2. 예외 종류 & 해결 방법 참조형 객체 NullPointerException public static void main(String[] args) { // 예외종류 & 해결 방법 String s = null; i..
추상클래스와 인터페이스 A. 추상 클래스와 추상 메서드 추상 클래스 abstract 수식어가 사용된 클래스 추상 메서드의 유무와 상관없이 abstract 키워드 사용 가능 대부분이 경우, 추상클래스는 1개 이상의 추상 메서드를 갖고 있는 경우가 많음. (반드시 그런 것은 아님.) 클래스에 추상메서드가 있는 경우에는 반드시 추상 클래스로 선언해야 한다. 추상 클래스는 객체를 생성할 수 없음. 생성자를 호출할 수 없음. 추상 메서드 메서드의 signature (수식어, 리턴 타입 , 메서드 이름, 파라미터 선언)만 선언어 있고 바디가 정의되어 있지 않은 메서드를 의미한다. 즉, 기능이 정의되어 있지 않은 메서드 추상 메서드는 반드시 abstract 키워드로 수식해야 함 추상 메서드 선언은 반드시 세미콜론(;)으로 끝나야 함. 추상..
상속 A. 상속이란? 클래스 : 속성(필드) + 생성자 + 기능(메서드) ⇒ 데이터 타입 만약 TV, smartTv가 있는데 기본 기능을 추가하려면, 두 가지 클래스 다 수정해야 한다. 이런 상황에서 상속을 하면 하나의 클래스 수정하여 두 클래스에서 모두 사용할 수 있다. Smart TV(현재 SmartTV는 어떤 필드나 메서드도 가지고 있지 않다.)의 인스턴스에서 Basic TV에서 갖고 있는 메서드들을 확인할 수 있다. 현재 작성한 클래스들은 모두 Java의 java.lang.bject 클래스를 상속받고 있는데, 기본적으로 모든 클래스는 Object를 상속받고 있기 때문에 이를 따로 명시해주지 않아도 된다. 또한 Object의 메소드들을 사용할 수 있다. 자바는 하나의 부모로부터만 상속받을 수 있다. (윗..
Class A. Class 한번 생각해보자! 우리가 성적 처리 프로그램을 만드려고 해. 학생 이름, 학생들이 각각 시험 본 과목별 점수들.. 이것들을 한 번에 묶어 저장하기 위해 만들어진 객체라는 데이터 타입을 만들었다..! 관련이 있는 기본타입이나 다른 타입들을 포함하고 있는 새로운 데이터 타입, 객체 객체를 생성하기 위한 속성들을 정의해놓은 CLASS package com.itwill.class01; public class AppMain01 { public static void main(String[] args) { // 클래스 : 데이터 타입 // (1) Subject subject = new Subject(); // (2) // Error! : System.out.println(subject); System..
연산자 A. 연산자 연산자에 필요한 항의 개수에 따라 단항, 이항, 삼항 연산자로 나뉜다. 단항 연산자 : !x,… 부정을 할 때는 항이 하나만 있어도 된다. (부정 논리 연산자) 이항 연산자 : 3+2, 3-1, x = 1.… 삼항 연산자 : boolean ? 3 : 2; 연산자는 총 8개로, 산술, 부호, 문자열, 대입, 증감, 비교, 논리, 조건이 포함되어 있다. 각각의 우선순위는 차이가 있어 코드 실행 시, 이에 따라 연산 결과가 도출된다. 연산의 방향과 우선순위 단항 → 이항 → 삼항 (우측이 후순위) 산술 → 비교 → 논리 → 대입 단항, 부호, 대입 연산자를 제외한 모든 연산은 왼쪽에서 오른쪽 복잡한 연산식에서는 소괄호()를 사용해 우선순위 결정 A-1. 피연산자 수 기준으로 구분하기 [단/이/삼항..