전체 글 188

TIL 정리_30

FileInputStream과 FileOutputStream //실제로 많이 사용 -파일에 입출력 하기위한 스트림 생성자 설명 FileInputStream(String name) 지정된 파일이름(name)을 가진 실제 파일과 연결된 FileInputStream을 생성한다 FileInputStream(File file) 파일의 이름이 String이 아닌 File인스턴스로 지정해주어야 하는 점을 제외하고 위와 동일하다 FileInputStream(FileDescriptor fdObj) 파일 디스크립터(fdObj)로 FileInputStream을 생성한다 FileOutputStream(String name) 지정된 파일이름(name)을 가진 실제 파일과 연결된 FileOutputStream을 생성한다 File..

TIL 정리_29

자바에서의 입출력 I/O란? Input과 Output의 약자로 입출력을 의미한다 입출력 : 컴퓨터 내부 또는 외부의 장치와 프로그램 간의 데이터를 주고받는 것이다 입출력의 예 : 키보드로부터 데이터 입력받기, println()으로 화면에 출력 스트림 데이터를 운반하는데 사용되는 연결통로이다 스트림은 단방향통신만 가능하여 입출력을 동시에 할 수 없다 -> 입력 스트림/출력 스트림 2개가 필요 FIFO(First In First Out)구조로 되어있으며 건너뜀 없이 데이터를 연속적으로 주고받는다 바이트기반 스트림 - InputStream OutputStream 스트림은 바이트 단위로 데이터를 전송한다 입력/출력 스트림의 종류 입력스트림 출력스트림 입출력 대상의 종류 FileInputStream FileOut..

TIL 정리_28

Optional와 OptionalInt // java.util.Optional (JDK 1.8) Optonal는 지네릭 클래스로 T타입의 객체를 감싸는 래퍼클래스이다 **래퍼(wrapper)클래스 : 객체가 아닌 8개의 기본형을 객체로 다뤄야할 때 사용하는 클래스 ->Optional타입의 객체에는 모든 타입의 참조변수를 담을 수 있다 public final class Optional { private final T value; // T타입의 참조변수 --- } 최종연산의 결과를 Optional 객체에 담아서 반환한다 ->반환된 결과가 null인지 if문으로 체크하는 대신 Optional에 정의된 메서드를 통해 간단히 처리가능 Optional 객체 생성 of() 또는 ofNullable()을 사용한다 //..

TIL 정리_27

스트림 만들기 컬렉션 컬렉션의 최고조상인 Collection에 stream()이 정의되어 있다 stream()은 컬렉션을 소스(source)로 하는 스트림을 반환한다 Stream Collection.stream() 예) List로부터 스트림을 생성하는 코드 List list = Arrays.asList(1,2,3,4,5); Stream intStream = list.stream(); 배열 배열을 소스로 하는 스트림을 생성하는 메서드는 Stream과 Arrays에 static 메서드로 정의되어 있다 Stream Stream.of(T[]) 문자열 스트림 Stream strStream = Stream.of(new String[]{ }); 특정 범위의 정수 IntStream과 LongStream은 지정된 범위의..

[개인기록/에러] 윈도우 Mysql 8.0 비밀번호 오류

한줄 요약 : c드라이브의 programdata 파일의 my.ini의 파일을(난 my라는 이름이었다) c드라이브로 복사한 후 mysql을 실행해보자 [개요] cmd에서 mysql을 접근하기 위해 명령어를 입력했으나, mysql -uroot -p password : 의 화면에 처음 설정한 비밀번호를 입력했음에도 로그인이 되지 않았다 > 구글링해서 찾아본 결과 5.7 버전 즈음에는 초기 비밀번호가 "" 이기 때문에 엔터를 쳐서 넘어가고 비밀번호를 새로 설정해주는 경우가 보였지만 8.0 버전은 해당이 안되는 얘기였다 > 8.0에서는 비밀번호가 랜덤으로 설정된다는 글과 root의 로그에서 임시 비밀번호를 찾은 사람의 글을 보면서 비밀번호를 바꾸는 방향으로 해결을 시도하였다 5.7에서만 가능한 방식이라 안된것도 ..

개인기록 2022.03.14

TIL 정리_26

함수형 인터페이스 람다식 = 익명 클래스의 객체와 동일하다 인터페이스 : 단 하나의 추상 메서드만 선언 람다식을 다루기 위한 인터페이스 : 함수형 인터페이스 (functional interface) -> 함수형 인터페이스 타입의 참조변수로 람다식을 참조할 수 있다 @FunctionalInterface를 붙이면 컴파일러가 함수형 인터페이스를 올바르게 정의했는지 확인한다 함수형 인터페이스 타입의 매개변수와 반환타입 메서드의 매개변수가 MyFunction 타입이면 이 메서드를 호출할 때 람다식을 참조하는 참조변수를 매개변수로 지정해야 한다 참조변수 없이 람다식을 매개변수로 지정 aMethod( () -> System.out.println("myMethod()")); 람다식의 타입과 형변환 함수형 인터페이스로 ..

[개인기록] cmd에서 D드라이브 이동

동영상 강의를 듣던 중 자바 파일과 workspace 파일의 위치가 달라 헤멨던 것을 떠올리며 기록 D드라이브 이동하는법 후에 cmd 창에서 수행할 일이 생겼을 때 참고하기 위해 작성한다 window + R키를 눌러 창을 띄우고 cmd 입력 D드라이브로 이동 후 파일탐색기에서 경로를 복사하여 붙여넣기 하면 된다 붙여넣기가 안될경우 경로 앞에 cd 를 붙이자 java가 저장된 주소를 확인하기 소스 클릭 후 Alt+Enter Location 경로 복사 java파일과 드라이브의 위치가 다르기 때문에 반드시 D: 를 입력해주고 해당 경로를 붙여넣기 해야한다

개인기록 2022.03.13

TIL 정리_25

쓰레드의 동기화 멀티쓰레드 프로세스에서는 다른 쓰레드의 작업에 영향을 미칠 수 있다 -> 한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하도록 막는 것이다 synchronized를 이용한 동기화 1. 메서드 전체를 임계 영역으로 지정 public synchronized void calcSum() { //임계영역(critical section) } -> 한번에 1쓰레드를 사용, 최소화하기 2. 특정한 영역을 임계 영역으로 지정 synchronized(객체의 참조변수) { //임계영역(critical section) } wait()와 notify() 동기화된 임계 영역의 코드를 수행하다가 작업을 더 이상 진행할 상황이 아니면 wait()를 호출하여 쓰레드가 락을 반납하고 기다리게 한다, 나중에 진행할..

TIL 정리_24

쓰레드의 우선순위 쓰레드는 우선순위(priority)라는 속성(멤버변수)을 가지고있다 작업의 중요도에 따라 쓰레드의 우선순위를 다르게 하여 특정 쓰레드가 더 많은 작업시간을 갖게 할 수 있다 쓰레드의 우선순위 지정하기 void setPriority(int newPriority) 쓰레드의 우선순위를 지정한 값으로 변경한다 int getPriority() 쓰레드의 우선순위를 반환한다 public static final int MAX_PRIORITY = 10 //최대 우선순위 public static final int MIN_PRIORITY = 1 //최소 우선순위 public static final int NORM_PRIORITY = 5 //보통 우선순위 쓰레드 그룹 서로 관련된 쓰레드를 그룹으로 묶어서 다..

TIL 정리_23

애너테이션의 타입 정의하기 @interface 애너테이션 이름 { 타입 요소이름(); } //애너테이션의 요소 선언 **@Override는 애너테이션이고 Override는 애너테이션의 타입이다 애너테이션의 메서드는 추상 메서드이며, 애너테이션을 적용할 때 지정한다(순서x) 애너테이션의 요소 애너테이션 내에 선언된 메서드로 반환값이 있고 매개변수는 없는 추상메서드의 형태를 가진다 애너테이션을 적용할 때 이 요소들의 값을 빠짐없이 지정해주어야 한다 요소가 하나이고 이름이 value일 때는 요소의 이름 생략가능 요소의 타입이 배열인 경우, 괄호{}를 사용해야 한다 java.lang.annotation.Annotation Annotation은 모든 애너테이션의 조상이지만 상속이 불가하다 public interf..