JAVA 33

[JAVA] 파일 입출력

스트림 (stream) [도착지] [출발지] Program Destination(Monitor, Beam, File, Network) java.io 패키지의 주요 클래스 1) 바이트(byte) 단위 입출력 스트림 클래스 java.io.InputStream: 프로그램이 '바이트 단위' 데이터를 읽어들이는(read) 통로 java.io.OutputStream: 프로그램이 '바이트 단위' 데이터를 쓰는(write) 통로 ** 위 두개 클래스는 '추상클래스' 다 2) 문자(character) 단위 입출력 스트림 클래스 java.io.Reader: 프로그램이 '문자 단위' 데이터를 읽어들이는(read) 통로 java.io.Writer: 프로그램이 '문자 단위' 데이터를 쓰는(write) 통로 3) java.io...

JAVA 2022.02.22

[JAVA] 쓰레드

쓰레드 Thread * 동일 프로세스 내에 '독립'적인 다중 수행하는 프로그램 단위 * 병행성 증진. 처리율 향상, 응답속도 향상 목적 * 자바에서 쓰레드를 만들어서 사용하는 방법1: 1. Thread 클래스를 상속받는 클래스를 정의 2. 정의한 클래스에서 run() 메소드를 override - 쓰레드에서 할 일을 구현 3. Thread 클래스의 인스턴스를 생성 4. 생성된 인스턴스에서 start() 메소드를 호출 public class Thread01Main { public static void main(String[] args) { System.out.println("쓰레드 생성 1"); // 3. Thread 클래스의 인스턴스를 생성 Thread th1 = new MyThread("Hello, Ja..

JAVA 2022.02.18

[JAVA] 람다 표현식

람다 표현식: lambda-expression Java8 부터 도입: (매개변수 리스트) -> 리턴값 (매개변수 리스트) -> {...} 수행코드 추상메소드가 하나인 인터페이스 구현, 즉 익명클래스 사용 더 간략화한 표현식 package com.lec.java.lambda01; /* 람다 표현식: lambda-expression Java8 부터 도입: (매개변수 리스트) -> 리턴값 (매개변수 리스트) -> {...} 수행코드 추상메소드가 하나인 인터페이스 구현, 즉 익명클래스사용 더 간략화한 표현식 */ public class Lambda01Main { public static void main(String[] args) { System.out.println("인터페이스, 익명 클래스, 람다 표현식")..

JAVA 2022.02.18

[JAVA] 내부 클래스

Inner Class(내부 클래스) 1. Member inner class(멤버 내부 클래스): 다른 클래스 내부에서 선언된 클래스 2. Static inner class(static 내부 클래스): 다른 클래스의 내부에서 static으로 선언된 클래스 3. Local class(지역 클래스) 1) Local inner class(지역 내부 클래스): 메소드 내부에서 선언된 클래스 2) Anonymous inner class(익명 내부 클래스): 이름이 없는 local class Member inner class(멤버 내부 클래스) TestOuter 클래스 내부에서 TestInner 클래스를 정의 TestOuter: 외부 클래스(Outer Class, Enclosing Class) TestInner: 멤..

JAVA 2022.02.17

[JAVA] Collection

ArrayList ※계층도 숙지 중요 Collection |__ List |__ ArrayList, LinkedList * List 특징(ArrayList와 LinkedList의 공통점) 1. 중복 저장 허용 2. 저장 순서 유지 (인덱스 존재) ArrayList vs LinkedList - ArrayList 장점: 검색/조회 속도 n 번째 데이터에 대한 검색/조회 속도가 빠르다! 왜? 배열은 고정크기 연속된 메모리 공간에 있기 때문에 배열첨자연산 → 포인터 연산으로 매우 빠르게 n 번째 데이터 가져올 수 있다. - ArrayList 단점: 삽입, 삭제 배열이니까 length(데이터 개수) 범위 내에서 운용. 사용하지 않는 데이터에 대해서도 메모리에 차지하고 있다. 동적으로 데이터가 늘어나고 줄어드는 것..

JAVA 2022.02.17

[JAVA] Wrapper 클래스

Wrapper 클래스: 기본 자료형(primitive type)의 데이터를 감싸는 클래스 * 기본 자료형: boolean, char, byte, short, int, long, float, double * Wrapper: Boolean, Character, Byte, Short, Integer, Long, Float, Double * Wrapper 클래스는 String 과 마찬가지로 immutable(불변) 이다. public class Wrapper01Main { public static void main(String[] args) { System.out.println("Wrapper 클래스"); System.out.println("wrapper 클래스에 값을 저장하는 방법"); System.out.p..

JAVA 2022.02.17

[JAVA] 문자열 메소드

문자열 (String) 관련 메소드들 https://docs.oracle.com/javase/8/docs/api/java/lang/String.html - 문자열 메소드는 꼭 정독해보세요. - 매개변수의 의미, 동작의 의미, 리턴값의 의미 꼭 숙지해주세요 - 인스턴스 메소드 인지, 클래스 메소드(static)인지 구분 package com.lec.java.string01; import java.util.Arrays; import java.util.Scanner; /* 문자열 (String) 관련 메소드들 * * https://docs.oracle.com/javase/8/docs/api/java/lang/String.html * - 문자열 메소드는 꼭 정독해보세요. * - 매개변수의 의미, 동작의 의미, ..

JAVA 2022.02.17

[JAVA] 정규표현식

정규표현식 regular expression 문자열 검색, 치환 등의 동작에 있어서 단순한 '문자열 비교' 를 하는 것이 아니라 특정 '패턴'과 비교하고자 할때 이를 단 몇줄의 코드로 구현 가능! 주어진 문자열에서 패턴을 찾아내는 것을 '패턴 매칭(pattern matching)' 이라 함 사용자가 입력한 문자열 패턴 유효성 체크 등에 많이 사용 ex) 주민등록번호, URL, email, 비밀번호, 날짜포맷(yyyy-mm-dd) 전화번호(010-xxxx-xxxx) ... 자바는 java.util.regex 에서 관련 클래스들 제공 Pattern, Matcher .. 일반적인 작성단계 1) 주어진 정규표현식을 구현하는 Pattern 객체 생성 2) 패턴 매칭 수행객체 Matcher 생성 3) Matcher..

JAVA 2022.02.17

[JAVA] 예외처리

예외(Exception) 컴파일 에러 : 문법상 오류 예외(Exception) : 문법상의 오류가 아닌 '실행중' 에 발생되는 오류상황 (기본적으로) 예외 가 발생되면, 예외 관련 메세지 출력하고 프로그램이 종료 됩니다. public class Exception01Main { public static void main(String[] args) { System.out.println("예외(Exception)"); System.out.println("[1] ArithmeticException"); int num1 = 123; int num2 = 0; //System.out.println("num1 / num2 = " + (num1 / num2)); System.out.println("[2] ArrayInd..

JAVA 2022.02.16

[JAVA] 다형성, 추상 클래스, 인터페이스

* 다형성 ( Polymorphism ) 하나의 이름의 클래스나 메소드가 '여러 가지 형태의 동작을 하는 능력' 클래스의 다형성: 한 타입의 참조변수로 여러타입의 객체를 참조 가능. (참조변수는 주소 값을 저장) 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조가능한 것 메소드의 다형성: 메소드 오버로딩, 메소드 오버라이딩 package com.lec.java.oop01; public class Vehicle { private int speed; public int getSpeed() { return speed; } public void setSpeed(int speed) { this.speed = speed; } public void displayInfo() { System.out.println..

JAVA 2022.02.09