Backend/Java

    [Java] 입출력 IO

    [Java] 입출력 IO

    포인트!! 1. 입출력의 개념 2. 통로 개념(Stream, Connection) 3. 자원 반환 ✍입출력(IO) IO : Input과 Output의 약자 컴퓨터 내부 또는 외부 장치와 프로그램 간의 데이터를 주고 받는 것 장치와 입출력을 위해서는 하드웨어 장치에 직접 접근이 필요한데 다양한 매체에 존재하는 데이터들을 사용하기 위해 입출력 데이터를 처리할 공통적인 방법으로 스트림 이용 장치뿐 아니라 프로그램간에서도 IO 가능 Stream : 데이터가 한 방향으로만 흐른다. ex) 입력 스트림 : (키보드로 입력 받아 ) Scanner 출력 스트림 : System.out.print() 1. File 클래스 파일 시스템의 파일을 표현하는 클래스 파일 크기, 파일 속성, 파일 이름 등의 정보와 파일 생성 및 ..

    [JDBC] JDBC 개요, 객체 선언

    [JDBC] JDBC 개요, 객체 선언

    ✍ JDBC(Java DataBase Connectivity) : Java에서 DB에 접근할 수 있게 해주는 JavaProgrammingAPI - Java에서 DB와 연결하기 위한 인터페이스, 클래스를 제공 (java.sql 패키지) - 프로그래밍 언어에서 제공하는 기능을 사용할 수 있도록 하는것 API Application Programming Inreface : 프로그래밍 언어 또는 프로그램에서 제공하는 기능을 사용할 수 있도록 하는것 JDBC Driver는 Library로 그 안에 있는 코드들을 다 쓸 수있다. jar 자바 아카이브러리 : 자바 기본형식 🚩 ojdbc6.jar (Oracle JDBC 드라이버 드라이버 포함되어있음) : Oracle에서 제공하는 Java와 Oracle DBMS 연결을 ..

    [Java] Collection_Map

    ✍Map : Key와 Value 한 쌍이 데이터가 되어 이를 모아둔 객체 Key : 중복을 허용하지 않고, 순서가 없어서 (== Set 특징) Map 내부에 뒤죽박죽으로 저장됨 Value : Key에 의해서 서로 구분되기 때문에 중복이 가능하다 (== List 특징) 1. HashMap Java Map중 가장 기초되는 Map Key에 해당하는 객체는 반드시 equals(), hashCode()가 오버라이딩 되어 있어야 함. public void example1() { Map map = new HashMap(); // Key는 String, Value는 Student로 제한된 Map 생성 // put(Key , Value) : Map에 데이터 추가 map.put("S001", new Student("홍길동..

    [Java] Collection_Set

    [Java] Collection_Set

    ✍Set : 집합 - 순서가 존재하지 않음 ( ==인덱스가 없음) 저장 순서가 유지되지 않고, 중복 객체도 저장하지 못하게 하는 자료 구조 null도 중복을 허용하지 않기 때문에 1개의 null만 저장 구현 클래스로 HashSet, LinkedHashSet, TreeSet이 있음 List는 index가 있어서 순서 유지 o 중복 저장 o 1. HashSet / LinkedHashSet HashSet : hash 함수를 이용해서 데이터를 저장하고 빠른 검색이 가능한 Set hash 함수란? : 입력된 단어를 지정된 길이의 문자열로 변환하는 함수 hashCode() 메서드 : 어려운 실제 메모리 주소를 쉬운 숫자 주소로 바꿔주는 것 -> 해시 함수를 이용해 데이터가 다르면 중복되지 않는 숫자를 만듦. ⭐ H..

    [Java]  Collection_ List

    [Java] Collection_ List

    ✍Collection (컬렉션 ) : 메모리상에서 자료를 구조적으로 처리하는 방법을 자료구조라 일컫는데 컬렉션(Collection)은 자바에서 제공하는 자료구조를 담당하는 프레임워크 == 자료구조들의 모음 java.util 패키지에 포함되며, 인터페이스를 통해 정형화된 방법으로 다양한 컬렉션 클래스 이용 가능 배열의 문제점 & 컬렉션의 장점 배열의 문제점 컬렉션의 장점(특징) 한 번 크기를 지정하면 변경할 수 없다. 저장하는 크기의 제약이 없다. 배열에 기록된 데이터에 대한 중간 위치의 추가, 삭제가 불편하다. 추가, 삭제, 정렬 등의 기능 처리가 간단하게 해결된다 - 자료를 구조적으로 처리 하는 자료구조가 내장되어 있어 알고리즘 구현이 필요 없음 한 타입의 데이터만 저장 가능하다. 여러 타입의 데이터가..

    [Java] Scanner 주의사항/ .next()와 .nextline() 차이

    ✍Scanner 사용 시 문제점 키보드 입력 시 입력 버퍼라는 곳에 임시 저장된 후 저장된 내용 중 다음 정수, 실수, 단어, 문자열을 읽어온다. ex) nextInt(), nextDouble() 등 예제 System.out.print("숫자 입력 : "); int addsize = sc.nextInt(); sc.nextLine();​ 🔎문제점 : next() 또는 nextInt() 사용 후 입력 버퍼 제일 앞에 \n이 남아있다. 그래서 다음 next() 또는 nextInt()를 쓰면 제일 앞에 남아있는 \n(빈칸)을 읽어오는 상황이 발생한다. 🔎해결법 : next() 또는 nextInt() 구문 뒤에 nextLine()을 한 번 작성하여 \n(빈칸)을 읽어오게 해 입력 버퍼에 남은 \n을 제거한다. 예..

    [Java] Polymorphism(다형성)_ 업·다운 캐스팅, 인터페이스, 추상클래스·메서드, 바인딩

    [Java] Polymorphism(다형성)_ 업·다운 캐스팅, 인터페이스, 추상클래스·메서드, 바인딩

    ✍Polymorphism(다형성) 객체 지향 언어의 특징 중 하나로 ‘다양한 형태를 나타내는 성질’이라는 뜻으로 하나의 행동으로 여러 가지 일을 수행하는 개념. 상속을 이용한 기술로 부모 클래스 타입 참조변수 하나로 상속 관계에 있는 여러 타입의 자식 객체를 참조할 수 있는 기술 ➡ 자식 객체안에 부모가 있으니깐 같은 타입의 부모가 아니라 부모참조변수로 자식 객체를 참조한다. ex) 추상화, 캡슐화, 상속 같은 다양한 성질 상속(재사용, 코드길이 감소+ 유지보수) < 다형성(다형성의 전제조건은 상속이기때문에 더 큰 범위) 하나의 객체가 여러 가지 타입을 가질 수 있는 것 하나의 클래스가 메서드가 다양한 방식으로 동작 가능한 것 하나의 참조변수로 여러 객체를 두 개는 도형이라는 특징 도형 중에 원이 있다 ..

    [Java] Inheritance(상속)

    [Java] Inheritance(상속)

    ✍Inheritance(상속) 다른 클래스가 가지고 있는 멤버(필드, 메소드)들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능 부모클래스의 멤버(필드, 메소드)를 자식이 물려 받아 자신의 것처럼 사용하는 것 자식의 공통된 코드를 하나의 부모 클래스에 모은다. -> 상속을 구현하는데는 추상화로 자식의 공통된 코드를 중복제거 부모클래스 == 하나 (그 부모클래스를 물려받는) 자식클래스 == 여러개 부모에게 적용된 것 은 공통적으로 모든 자식에게 동일하게 적용 부모 클래스에게 규칙을 정해두면 자식들은 그 규칙을 전부 따르게 된다. 1. 상속의 목적 (부모 타입의) 클래스 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의 같은 부모를 둔 ..

    [Java] OOP 4_Method(메소드), 객체 배열

    [Java] OOP 4_Method(메소드), 객체 배열

    ✍Method (메소드) 방법, 기능(Function) 수학의 함수와 비슷하며 호출을 통해 사용, 전달 값이 없는 상태로 호출을 하거나 어떤 값을 전달하여 호출을 하며, 함수 내에 작성된 연산 수행 수행 후 반환 값 / 결과 값은 있거나 없을 수 있음 ==>전달되는 값에 따라 결과가 반환된다. 총 4가지방법으로 작성가능하다 표현식 [접근제한자] [예약어] 반환형 메소드명( [매개변수] ) { // 기능 정의 } public void information() { System.out.println(studentNo); }​ 1) 접근제한자 : 필드에서 사용하던 접근제한자 4개 전부 사용가능 2) 예약어 : static abstract final 3개 사용 가능 3) 반환형 : 반환하는 값의 자료형 int, ..

    [JAVA] 분기문_break, continue

    분기문 - 가장 가까운 반복문(for, while)을 종료시키는 구문 while(true) { // 무한루프 // 반복문은 조건식이 true일 때 반복 // 항상 true == 무한 반복 == 무한 루프 } System.out.println(); //Unreachable code : 도달할 수 없는 코드 } 이러한 상황에서는 에러가 나기 때문에 분기문이 필요하다. 1) break 반복문에서는 break문 자신이 포함된 가장 가까운 반복문을 빠져나가는 구문 Scanner sc = new Scanner(System.in); int sum = 0; // 합계 저장용 변수 while(true) { // 무한루프 // 반복문은 조건식이 true일 때 반복 // 항상 true == 무한 반복 == 무한 루프 Sys..