본문 바로가기

분류 전체보기59

내일배움캠프 3주차 람다와 스트림 오늘의 키워드람다스트림오늘의 내용람다어딘가 구현하지 않고 그냥 간단하게 구현해서 넘길 때 사용된다함수값으로 평가되며 한 번만 사용된다람다 함수 기본 문법// 기본적으로 문법은 다음과 같습니다.(파라미터 값, ...) -> { 함수 몸체 }// 아래의 함수 두개는 같은 함수입니다.// 이름 반환타입, return문 여부에 따라 {}까지도 생략이 가능합니다.public int toLambdaMethod(int x, int y) {return x + y;}(x, y) -> x + y// 이런 함수도 가능하겠죠?public int toLambdaMethod2() {return 100;}() -> 100// 모든 유형의 함수에 가능합니다.public void toLambdaMethod3() {System.out... 2024. 5. 3.
내일배움캠프 3주차 쓰레드 이어서 오늘의 키워드join( ), yield( ), synchronized( )wait( ), notify( )Lock, Condition오늘의 내용join( )정해진 시간 동안 지정한 쓰레드가 작업하는 것을 기다린다ms(밀리초) 단위로 설정된다예외처리를 꼭 해줘야 된다interrupt를 만나면 기다리는 것을 멈추기 때문에 InterruptedException이 발생한다yield( ) : 남은 시간을 다음 쓰레드에게 양보하고 자신은 실행대기 상태가 된다synchronized( )(동기화)여러 쓰레드가 한 프로세스의 자원을 공유해서 작업해 서로 영향을 줘 장애나 버그발생을 방지한 쓰레드가 진행 중인 작업을 다른 쓰레드가 침범하지 못하게 막는다동기화를 하려면 다른 쓰레드의 침범을 막아야 하는 코드를 임계영역으로 .. 2024. 5. 2.
내일배움캠프 3주차 프로세스와 쓰레드 오늘의 키워드프로세스쓰레드오늘의 내용프로세스운영체제로부터 자원을 할당받는 작업의 단위Code, Data, Memory로 구조를 이룬다쓰레드프로세스가 할당받은 자원을 이용해 실행하는 단위작업 중인 프로그램에서 요청이 들어와 쓰레드를 생성해 요청을 처리한다프로세스 내에 주소공간, 메모리공간(Heap)을 공유받는다자신만의 메모리공간(Stack)을 할당받는다싱글 쓰레드와 멀티 쓰레드싱글 쓰레드 : 프로세스 안에서 하나의 쓰레드만 실행된다멀티 쓰레드 : 프로세스 안에서 여러 개의 쓰레드가 실행되는 것멀티 쓰레드는 각각의 쓰레드들이 자원을 공유하고 여러 작업을 동시에 해서 성능이 좋아진다스택을 제외한 모든 영역에서 메모리를 공유해서 자원을 효율적으로 사용한다응답 쓰레드와 작업 쓰레드를 분리해 응답이 빠르다서로 자원.. 2024. 5. 1.
내일배움캠프 3주차 개인프로젝트 오늘의 키워드복습오늘의 내용개인 프로젝트로 계산기를 만드는 중인데 사용해보지 못한 기능들을 공부했다remove() : 메서드는 리스트나 컬렉션에서 요소를 제거하는 데 사용한다반복문에선 if문을 주로 사용했는데 처음으로 switch문을 사용해봤다char op = input.charAt(0); int result; switch (op) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; .. 2024. 5. 1.
내일배움캠프 3주차 TIL + 오류와 예외처리 오늘의 키워드오류와 예외try, catch, finally문Generic오늘의 내용오류와 예외오류 : 일반적으로 회복이 불가능한 문제, 주로 환경적인 원인으로 발생, 발생원인 확인 후 대응한다예외 : 회복이 가능한 문제로 코드레벨에서 할 수 있는 대응은 '예외처리'에 속한다컴파일 에러 : 자바 프로그래밍의 규칙을 지키지 않으면 발생하고 문법을 맞게 작성하면 해결된다. 특정한 문제는 인지만 하고 예외처리를 하지 않으면 발생런타임 에러 : 컴파일은 잘되었지만 프로그램 실행도중 발생하는 예외이다확인된 예외 : 컴파일 시점에 확인하는 예외, 반드시 예외처리를 해줘야 하는 예외, 컴파일 에러와 다르다미확인된 예외 : 런타임 시점에 확인되는 예외, 예외처리가 반드시 필요하지 않은 예외try, catch, final.. 2024. 4. 29.
내일배움캠프 2주차 TIL + 상속, 추상클래, 인터페이스 등 오늘의 키워드상속추상클래스인터페이스오늘의 내용상속부모 클래스의 필드와 메서드를 자식 클래스에 물려주는것상속을 사용해 적은 양의 코드로 새로운 클래스를 작성 공통적인 코드 관리로 코드추가와 변경이 쉬워짐부모 클래스에 새로운 필드와 메서드가 추가되면 자식 클래스도 사용가능자식 클래스는 부모 클래스에 영향을 주지 않는다extends를 사용 : public class 자식클래스 extends 부모클래스 { } 다중 상속을 허용하지 않고 final을 사용하면 상속과 오버라이딩이 불가하다Object 클래스의 메서드모든 최상위 부모 클래스는 Object를 사용할 수 있고 부모가 없으면 자동으로 Object를 상속받음Object clone() : 해당 객체의 복제본을 생성하여 반환함boolean equals(Objec.. 2024. 4. 26.
내일배움캠프 2주차 TIL + 오버로딩, 인스턴스 멤버, 클래스 멤버 등 오늘의 키워드메서드 오버로딩기본형과 참조형 매개변수인스턴스 멤버와 클래스 멤버this생성자제어자import와 package오늘의 내용메서드 오버로딩 함수가 하나의 기능이 아닌 하나의 메서드 이름으로 여러 기능을 구현하는 것같은 이름을 가진 메서드라도 타입, 순서가 다르면 동일한 이름 사용 가능응답 값만 다르거나 접근제어자만 다른건 사용불가능하다메서드의 이름은 하나만 사용해서 메서드 이름 절약이 가능하다기본형&참조형 매개변수기본형 매개변수 메서드를 호출할 때 전달한 매개값으로 지정한 값을 매개변수에 복사해서 전달기본형일때는 값자체를 복사해서 원본값이 변경되지 않음참조형 매개변수메서드를 호출할 때 전달할 매개값으로 지정한 값의 주소를 매개변수에 복사해서 전달저장된 곳의 원본주소를 알고있어 값을 읽거나 변경 .. 2024. 4. 25.
내일배움캠프 2주차 TIL + 설계도 오늘의 키워드설계도(Class)오늘의 내용객체란 무엇인가식별이 가능한 세상 모든 물체를 말함속성과 행위(메서드)로 구성서로의 행위를 통해 상호작용해 협력객체 지향 프로그래밍의 특징캡슐화상속다형성추상화객체의 속성필드라고도 함, 데이터를 저장하는 역할고유 데이터, 상태 데이터, 객체 데이터로 분류함필드를 선언만 하면 기본값으로 초기화 됨 외부호출 : 외부에서 도트 연산자를 사용해 내부 필드에 접근내부호출 : 내부 메서드에서 내부 필드 접근메서드객체의 행위를 뜻하며 객체간 협력을 위해 사용메서드도 필드와 마찬가지로 선언만으로는 사용불가객체를 생성해야 사용 가능외부접근 : 외부에서 도트 연산자로 접근내부접근 : 도트 연산자로 내부 접근 가능, 내부.. 2024. 4. 24.