본문 바로가기

반응형

아옳옳의 코딩공부/아옳옳 자바코딩공부

(29)
2021-04-29자바공부(스레드 Thead) 스레드를 간단하게 설명하면 멀티태스킹으로 하나의 응용프로그램이 여러 개의 작업을 동시에 처리하는것이다. 비유를 들자면 노래 들으면서 공부하기 , 노래부르며 춤추기 , 물건의 불류와 포장을 함께 하는 기계 등이다 스레드를 알기전에 알아야 할 용어들이 있다. 추가 부연 설명을 하자면 프로세스는 실행중인 프로그램을 의미한다 그 프로세스내에 별도의 실행의 흐름을 갖는 것이 스레드 이다. 그리고 그 속에는 둘이상의 스레드도 가능하다 아래 그림을 보자 스레드 클래스로 스레드 만들기 첫번째로 스레드 클래스를 만들어 줘야하는데 클래스 이름은 상관이 없지만 꼭 Thread 를 상속받아야 한다 상속을 받고나면 빨간줄이 뜨고 오버라이딩 메소드를 해야하는데 오버라이딩 메소드를 하고나면 run 메소드가 나올것이다. ( 이 메소..
2021-04-28자바공부(람다식 lambda함수형 인터페이스2) 어제에 이어서 람다식에 대해서 조금더 공부를 해보자 함수형 인터페이스는 하나의 메소드만 가지고 있어야 한다고 배웠다 미리정의 되어있는 함수형 인터페이스가 너무 많아 다 찾아 볼수는 없고 대표적인 것들만 보자 대표적인 함수형 인터페이스이다. predicate ( 전달 인자를 근거로 참 또는 거짓을 반환) 예제를 보면서 이해를 하자 보면 메인에서 람다식으로 sum을 호출한것을 볼수 있다. 호출함과 동시에 test 메소드에는 n %2 !==0 식이 들어 갈것이고 그럼과 동시에 list를 같이 넘겨준다 sum 메소드에서는 받아온 predicate와 list를 가지고 작업을 해줄것인데 for -each 문으로 리스트에 담겨있는 값을 하나씩 빼줄것 이지만 if 문을 통해 0인 것들은 true가 되어 s 에 저장 되..
2021-04-27자바공부(람다식 lambda함수형 인터페이스) 함수형 인터페이스란 하나의 메소드만 담고있는 인터페이스이다. 위의 그림은 우리가 자주 보던 형식이다. 왼쪽부분을 보면 인터페이스를 하나 만들었고 그 인터페이스를 구현하는 클래스를 하나 만들고 메인에서 구현된 클래스를 인스턴스화 하여 사용한것이다 . 이렇게 사용한것은 우리가 예전부터 사용하던 방식이다 . 오른쪽은 익명 클래스로 생성과 동시에 구현을 하면서 사용한것을 볼수 있다.. 왼쪽같은 경우는 다른 클래스들 여려곳에서 사용할때 주로 사용하지만 오른쪽 같은 경우는 한번만 사용할떄 사용된다. 그렇다면 람다는 어떻게 사용하는 것일까 . 오른쪽의 경우를 줄일수 있는대로 줄여 놓은 것이라고 생각하면 된다. 예) a = a +2 를 a+=3 처럼 줄여 주는것이다 익숙해지면 편하게 사용 가능하다 위 그림을 보면 인스..
2021-04-13 자바공부 (컬렉션 프레임워크 Iterator,collections 클래스 , Hashset<E> 클래스 ) Iterator를 이용한 인스턴스 순차적 접근 Iteratora의 메소드 boolean hasNext() : 다음번 요소가 있으면 true 반환 E next() : 다음번 요소를 반환 void remove() : 현재 위치의 요소 삭제 동작의 원리 간단한 코드예시 public class Iterator_Ex { ArrayList list = new ArrayList(); // 리스트 생성 public static void main(String[] args) { Iterator_Ex iter = new Iterator_Ex(); iter.init(); // 메소드 실행 iter.execute(); } public void init() { list.add("아옳옳"); list.add("아옳옳옳"); lis..
2021-04-12 자바공부 (컬렉션 프레임워크 LinkedList ) LinkedList의 특성 내부 구성 ( 어레이리스트와 백터랑 다르다 ) 이렇게 리스트와 관련된것 3가지를 배워보왔고 어레이리스트랑 링크드 리스트의 속도차이만 비교 해보고 마무리 하도록 하겠다 . public class LinkedList_Ex { public static void main(String[] args) { //어레이 리스트 와 링크드 리스트 만들어줌 List list1 = new ArrayList(); List list2 = new LinkedList(); long startTime; // 시작시간 담아줄 그릇 long endTime; // 끝시간 // 시작시간 startTime= System.nanoTime(); // 어레이 리스트에 10000값 넣는 시간 for(int i = 0 ; i
2021-04-12 자바공부 (컬렉션 프레임워크 ArrayList ) 어레이 리스트의 특징 객체 생성방법 주요메소드 사용 예시 어레이 리스트는 익숙해서 사실 이정도만 정리하고 중요한건 백터와의 차이점이다. 사실 어레이리스트를 더많이 사용한다고 하니까 기억만 해두면 될거 같다.
2021-04-12 자바공부 (컬렉션 프레임워크 Vector) 컬렉션 프레임워크 객체들의 저장소이다. 어레이리스트를 배워서 어레이리스트 생각하면 됨 ! 컬렉션(Collection) : 객체들을 제어/ 관리 하기위한 클래스를 의미 컬렉션 객체 : 여러개의 요소를 묶어서 하나의 객체로 만드는 것 (여러개의 과일을 가지고 하나의 과일바구니를 만드는것이라고 생각해) 컬렉션 프레임워크 : 컬렉션 클래스들과 인터페이스들의 집합 Vector 예전에 배운 어레이 리스트와 사용법은 비슷함 메소드 백터 클래스 사용예 백터 실습 import java.util.Vector; public class Vector_ex { public static void main(String[] args) { Vector v = new Vector(); v.add(new Point(2,3)); v.add(..
2021-04-09 자바공부 (제네릭) 이렇게 두가지 방법으로 클래스를 만들 었다고 했을경우 아래에 FruitBox는 구현의 편의성이 좋은대 단점음 안정하지 못하다는 단점이 있다. 반대로 위처럼 따로따로 클래스를 만들게 되면 안정성은 있지만 일일이 클래스를 만들어야 하는 번거로움이 있다. 이러한 장단점이 있는데 장점들만 모와 만들어 놓은게 바로 제네릭이다. 이렇게 사용하는데 안쪽이 중요한 부분이다. 안쪽 부분은 알파벳 아무거나 적고 , 인스턴스를 생성할때 타입이 지정되는 것이다. 이렇게 두개 이상도 가능함 제네릭 메소드 메소드도 마찮가지로 내가 직접 매개변수의 형태와 리턴 타입을 지정하는거라고 생각하면 된다 . 코드를 보면서 이해 하자 class AAA { public String toString() { return "AAA"; } } cla..

반응형