JAVA
-
JAVA_ThreadJAVA 2020. 9. 3. 17:03
프로세스란 현재 실행 중인 프로그램을 의미한다. 프로세스는 자기 자신 만에 메모리를 사용하기 때문에 독립적이다. 두가지 이상 작업을 동시에 처리하는 것을 멀티 태스킹이라고 한다. Thread를 만드는 방법 Thread class를 상속받아서 만드는 방식 → start() 와 run() 이용해서 사용한다. Runnable interface를 Implements해서 사용하는 방식 → start() 와 run() 이용해서 사용한다. → Thread 객체 생성 할 때 Runable Interface를 구현한 class의 객체를 매개 변수로 넘겨 줘야한다. 무명구현객체 → 쓰레드의 이름을 지어주지 않고 한번만 사용 할 경우 main안에 바로 구현한다. 코드 재활용 못함. 람다식 → 재활용이 가능하고 코드가 간결해..
-
JAVA_LambdaJAVA 2020. 9. 3. 17:03
Lambda의 장점 함수적 프로그래밍이 가능하다. 가독성이 좋고 간결하고 명확한 코드를 작성 할 수 있다. Api나 라이브러리를 사용할 때 편리하게 해준다. 병렬 프로세싱에 활용 할 수 있다. Lambda 구조 (타입 매개변수 목록) → { 실행 구문; 실행 구문 } 함수 인터페이스는 딱 하나의 추상 메서드만 있어야 사용 가능하다. @FunctionalInterface를 사용하면 추상메서드가 여러개일때 interface에서 여러개를 사용할 수 없다는 오류를 표시하면서 알려준다. Lambda 단점 재사용이 불가능한다. 잦게 사용하면 코드가 중복적으로 사용하는게 많을 수 있다. 디버깅이 까다로워진다. 재귀함수로 만들때는 부적합하다.
-
JAVA_InterfaceJAVA 2020. 9. 3. 17:02
interface란 사전에 정해진 규격이나 계획이다. 보편적으로 interface는 구현부분이 없고 선언만 있다. 추상클래스와 달리 Implement를 사용하여 구현하고자 하는 자식클래스에서 사용한다. 추상클래스와 동일하게 객체 생성이 불가능 하다. interface에서 선언한 메서드를 자식클래스에서 반드시 구현해야한다. 추상메서드는 중괄호가 들어갈 수 없다. 디폴트메서드는 중괄호를 사용할 수 있다.( JDK 8 이상만 사용 가능) 상수 필드를 만들어서 사용가능 public static final이 생략된 것과 같다. System.out.println(Animal.kor) Animal.kor가 static 속성을 가지고 있기때문에 객체없이 사용이 가능하다. interface는 다중상속을 지원한다. 상속관..
-
JAVA_OOPJAVA 2020. 9. 3. 17:02
Class 비유를 하자면 설계도와 비슷하다. 하나의 Class에서 여러 객체를 생성 가능하다. 필드, 생성자, 메서드로 구성된다. 객체 생성 방법 → 클래스 이름 변수이름 = new 클래스 이름(초기화 데이터); 생성자 Class를 초기화하는 역할을 가지고있다. Class의 이름과 동일한 이름을 가진다. 객체가 생성될때 단 한번만 실행된다. return에 대한 개념이 없다. this 자기 자신 객체를 의미한다. 서로 다르지만 이름이 같은 변수를 구분할때 주로 사용한다. 해당 객체의 메모리 주소를 가져온다. 가독성을 향상 시켜준다. 상속 부모 Class의 기법들을 자식 Class에서 사용할 수 있게 해준다. 상속 받을 Class 옆에 extends 키워드와 상속받을 부모 Class를 입력하여 상속 받는다...
-
JAVA_Branching / IterationJAVA 2020. 9. 3. 17:02
If문 if(조건식) {} → 조건식이 참일때 중괄호 안에 코드를 실행한다. else{} → 조건식이 거짓일때 중괄호 안에 코드를 실행한다. 싱글라인일떄는 중괄호 생략이 가능하다. for문 특정 횟수동안 중괄호 안에 코드를 반복할때 사용하는 반복문이다. for문 구조 : for(초기값 ; 조건식 ; 증감식 ; ) { } 싱글라인일때는 중괄호 생략이 가능하다. break문을 사용하면 가장 가까운 반복문을 탈출한다. → 불필요한 반복을 줄여준다. ex) for( i = 0 ; i ≤ 9 ; i++) { 반복할 코드 } i가 0 부터 9까지 증가하면서 증가하는 횟수 만큼 반복할 코드를 반복한다. i가 10이 되는 순간 반복이 끝난다. while문 while(조건식) {} 조건식이 참이면 계속 반복을 한다. 조..
-
JAVA_Data TypeJAVA 2020. 9. 3. 16:58
Primitive data type 정수형 byte → 8bit (256) short → 16bit (65,536) int → 32bit(4,294,967,296) long → 64bit(18,446,744 073,709,551,616) 최상위 비트가 1이면 음수이다 경우의수 절반은 양수, 절반은 음수이다. ( -2의 n-1승 ~ 2의 n-1승 -1 ) 범위보다 크거나 작은 값을 넣으면 에러가 난다. 문자형 char → 16bit(65,536) 유니코드, 아스키코드 사용 유니코드 16진수 사용, 전세계의 언어들을 담고 있다. ex) '\ub208' → 눈 https://home.unicode.org/ 참고 논리형 boolean → true / false의 값만 가진다. 실수형 소수를 표기 할 수 있다. ..
-
JAVA_OperatorJAVA 2020. 9. 3. 16:57
연산자 종류 산술 연산자 가감 연산을 다룬다. +, -, *, /, % 가 여기에 해당된다 비트 연산자 비트(2진수)를 다루는 연산자이다. 2진수 → 0, 1로 이루어진 숫자의 형태이다. 1은 true, 0은 false이라고 생각하면 된다. 최상위 비트가 1이면 음수 값, 0이면 양수 값이 반환된다. bitAND(&) → 두 값이 1일때 1, 둘 중 하나라도 0 이면 0을 반환한다. bitOR(|) → 둘 중 하나라도 1일때 1, 둘 다 0 이면 0을 반환한다. bitXOR(^) → 두 값이 서로 다를때 1, 같으면 0을 반환한다. bitNOT(~) → 1은 0으로, 0은 1로 반환한다. x > n → 오른쪽으로 n 만큼 비트를 이동, 상위비트에 n 만큼 최상위 비트가 0이면 0, 1이면 1을 대입한다...
-
JAVA_IdentifierJAVA 2020. 9. 3. 16:57
식별자 규칙 문자, 언더바 _ , $ 로 시작 할 수 있다 ( 숫자는 맨 처음에 올 수 없다.) 자바 키워드는 사용 할 수 없다 ex) switch, if 길이 제한이 없다. 변수일 경우 카멜 케이스를 사용한다 ex) firstSecond int num = 0; // 사용 가능 int _num = 0; // 사용 가능 int $num = 0; // 사용 가능 int 1num = 0; // 맨앞에 숫자가 왔으므로 에러 출력 int if = 0 // if는 자바 키워드 이므로 에러 출력 int firstSecond // 카멜 케이스 int firstsecond // 카멜 케이스를 쓰지 않으면 이름 구분이 힘들다.