카테고리 없음

정처기 실기 준비

뭄덤 2025. 5. 11. 19:35

Phython

파이썬 알아야 할 기본 문법

- 배열, 리스트에서 index 음수이면 뒤에서 부터

 

집합

순서 없고 중복x 배열

arr = {"a", "b", "c"}
arr.add() // 요소 추가
arr.remove() // 요소 제거
arr.update() // 요소 업데이트

 

비트 연산자

AND : &

OR : |

XOR : ^

 

Split()

문자열을 지정된 구분자를 기준으로 분할하여 리스트로 반환, 잘라서 출력한다 생각

 

Slicing

리스트나 문자열에서 일부분 잘라내는 것. 뽑아내기, 일부분 추출한다 생각

[시작점 : 끝점 : 간격]

시작점 이상 끝점 미만 출력. 시작점, 끝점은 생략 가능

 

map()

각 요소에 함수를 적용해서 새로운 이터러블 객체 반환

num = [1,2,3,4,5]
map(lambda x: x+10, num)

 

조건문, 반복문

for, if 쓸 때 조건 뒤에 : (콜론) 쓰고 반복할 문장은 들여쓰기.

괄호 안씀

 

f-string

f"출력 내용 {변수}"

문자열 안에 변수 넣어서 사용. JS에서 백틱이랑 비슷한 용도

Java

자바 알아야 할 기본 문법

Person    p    = new Person("문정", 10); // 객체 생성 -> 클래스명 변수명 = new 생성자명(매개변수)
붕어빵틀 붕어빵              재료

class Person { // 클래스
    String name;
    int age;

    Person(String name, int age) { // 생성자
        this.name = name; // this.name은 클래스 내의 변수, name은 파라미터
        this.age = age;
    }

 

  • "멤버 변수" 는 "참조 변수의 타입" 을 따른다

-> A a = ...에서 왼쪽 타입 A

  • "함수(메서드)" 는 "실제 객체의 타입" 을 따른다

→ new B()에서 오른쪽 생성된 객체 타입 B

 

== 연산자 vs equals()

== 연산자

- int, float, char에서는 값이 같은지 확인

- string, 배열 에서는 같은 메모리 주소를 가리키는지 확인

equals

- 객체의 내용이 같은지 확인

 

continue vs break

continue : 반복문의 나머지 부분 건너 뛰고, 반복문의 시작 부분으로 돌아가서 새로운 반복 시작

break : 그 즉시 반복문 종료되고 반복문 바깥의 다음 코드 실행

FYI) switch 문에서 break 없으면 못 빠져나오고 밑에 남은 로직 다 수행

 

상속

자식 클래스가 부모 클래스의 변수, 메소드 물려받는 것

super.~ : 부모의 메소드 호출

this. ~ : 현재 실행중인 나의 메소드 호출 (생략 ok)

 

오버라이딩 vs 오버로딩

오버라이딩 : 자식 클래스가 상속받은 메소드를 마음에 들게 바꿈

-> 동일한 이름의 메소드이면 자식 클래스 메소드만 실행

 

오버로딩 : 같은 이름의 메소드를 여러 개 가지되, 매개변수의 유형이나 갯수 다르게 하는 것

 

abstract

추상 클래스는 직접적으로 객체를 만들 수는 없지만, 다른 클래스들이 상속받아 완성해야하는 기본 틀 제공

추상 메소드에는 실행할 구체적인 코드가 없고, 메소드의 이름, 입력값, 반환 타입만 정의

-> 상속받는 클래스가 반드시 완성해야함

 

interface

추상 클래스와 비슷하게 구현되지 않은 메소드를 미리 선언하고 상속받은 클래스에서 완성

abstract vs interface 

멤버 변수 가질 수 있음 / 없음

 

static

static 사용하면 그 요소는 특정 객체에 속하지 않고 해당 클래스의 모든 객체가 공유

-> 객체를 생성하지 않고도 호출 가능

 

Thread

 

class MyRunnable implements Runnable {
    public void run() {
        System.out.println("Runnable 실행 중!");
    }
}

public class Main {
    public static void main(String[] args) {
        Thread t = new Thread(new MyRunnable());
        t.start(); // 쓰레드 시작 메소드
    }
}

 

예외 처리

try

catch : 예외 발생 시 실행되는 블록

finally : 예외 발생 여부와 상관없이 항상 실행

 

제네릭 타입

클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것

제네릭은 런타임에는 타입 정보가 사라지는 "타입 소거(Type Erasure)"가 발생함 -> Object 취급

class Box<T> {
    private T value;

    public void set(T value) {
        this.value = value;
    }

    public T get() {
        return value;
    }
}

C