본문 바로가기

Eclipse22

웹개발_JAVA 22 *스레드 실습 package threadTask; // 동물원에는 3마리의 동물이 있다. // 각 동물은 울음 소리가 다르고 2마라의 동물은 동시에 운다. // 나머지 1마리 동물은 2마리 동물이 모두 울고 나면 막지막에 운다 // //※ 반드시 join()을 사용한다. //※ 각 동물은 3번씩만 운다. //※ 람다식을 사용한다. public class Animal { public void makeSound(Runnable runnable) { // 울음소리 배열 String[] animalsounds = {"어~흥", "음메에에", "아우~"}; // 울음소리들을 스레드 객체로 선언 Thread[] threads = new Thread[animalsounds.length]; for (int i = 0;.. 2023. 3. 11.
웹개발_JAVA 21 프로그램 실행이 안된 상태. 프로세스 실행된 프로그램. 쓰레드 프로세스 내의 작업 처리경로 -단일 쓰레드 ex) JavaScript 서버(채팅, sns등) 처리 경로를 한 개만 가지고 있기 때문에 직렬적이다. 한 번에 하나씩 처리하기 때문에 상대적으로 비효율적이다. 하지만 하나의 작업에 문제가 발생하더라도 다른 작업은 시작하지 않았기 때문에 다른 작업에는 문제가 발생하지 않는다. 따라서 안정성이 보장되고 설계 시 멀티 쓰레드에 비해 쉽다. 작업1 작업2 작업3 작업순서 ----> 작업 1이 끝나야 작업 2가시작 (매표소에서 앞사람이 1000장을 사도 1장을 사야하는 사람이 기다려야하는 상황과 같다) package thread; import java.sql.Time; public class Thread1 .. 2023. 3. 6.
웹개발_JAVA 20 Set extends Collection -구현 클래스 HashSet 집합에서는 중복되는 원소를 포함할 수 없는 것처럼 HashSet이라는 자료구조는 중복되는 값을 무시한다. 저장된 값들은 인덱스가 없기 때문에 순서가 없다. 값의 유무 검사에 특화되어 있는 자료구조이고 해시코드로 유무 검사가 진행되기 때문에 속도가 상대적으로 좋다. Iterator()-순서 부여 순서가 없는 객체에 순서를 부여하거나, 순서가 있어도 iterator 방식의 순서로 변경하고자 할때 사용한다. hasNext()를 통해 다음 값이 있는 지 검사하고, next()를 사용해서 값을 가져온다. package hashSetTest; import java.util.ArrayList; import java.util.Arrays; impor.. 2023. 2. 21.
웹개발_JAVA 19 ※Stream 이어서 package stream; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; import stream.User; public class StreamTest { public boolean checkEven(int number) {//filter사용, 조건식이기에 boolean타입 return number % 2 == 0; } public static void main(String[] args) { // filter(): .. 2023. 2. 15.
웹개발_JAVA 18 *Stream Arrays.asList(): 배열을 List로 변경 가능 forEach() : 반복 stream().map() : 기존 값 변경 : 무조건 리턴값 사용 range(0,10) 10이전까짖 rangeClose(0,10) 10까지 chars() 문자열을 IntStream으로 변경 filter(): 조건식이 true일경우 출력 sorted(): 정렬 collect(): 결과를 다양한 타입으로 리턴 package stream; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.. 2023. 2. 15.
웹개발_JAVA 17 [ArrayList 실습1] 과일 정보를 담을 클래스 선언(Fruit) - 과일 이름(중복 없음) - 과일 가격 CRUD관련 기능을 담아놓을 클래스 선언(Market) - 과일 추가 - 과일 삭제 - 과일 가격이 평균 가격보다 낮은 지 검사 - 과일 전체 조회 - 과일 이름으로 가격 조회 package arrayListTask; // 실습 전체 DB 연결 코드 import java.util.ArrayList; import arrayListTask.Food.Food; import arrayListTask.Fruit.Fruit; import arrayListTask.love.Love; import arrayListTask.user.User; public class DBConnecter { public sta.. 2023. 2. 14.
웹개발_JAVA 16 Object 클래스 // 오브젝트는 최상위 부모 클래스다 클래스의 아담 3. hachCode() JVM에서 관리하는 중복 없는 값. 실제 메모리에 할당되는 주소와 다르다. String 클래스에서는 필드의 해시코드 값이 아닌 문자열 상수값의 해시코드를 리턴하도록 재정의하였다. ※컬렉션 프레임워크 챕터에서 재정의 목적을 이해하도록 한다. package objectTest; //hashcode import java.util.Random; public class HashCodeTest { public static void main(String[] args) { String data1 = "ABC"; String data2 = new String("ABC"); System.out.println(data1.hash.. 2023. 2. 9.
웹개발_JAVA 15 API(Application Programming Interface) 개발에 필요한 라이브러리들의 집합. 선배 개발자들이 만들어 놓은 소스코드 모듈 = 실행 가능한 패키지 -내부 API JDK 설치 시 제공해주는 기본 API docs.oracle.com/javase -외부 API 선배 개발자들이 개발한 패키치 및 클래스들을 의미한다. 보통 JAR파일로 배포하며 자바 프로젝트의 build path에 추가하여 사용할 수 있다. JAR 파일로 배포하기 배포할 클래스 또는 패키지 우클릭 > Export > JAVA/JAR file 선택 > Next > destination을 원하는 경로로 선택 > Export Java source files... 체크 > Finish JAR 파일을 프로젝트에 추가하기 배포된 J.. 2023. 2. 8.
웹개발_JAVA 14 package exceptionTest; import java.util.Scanner; public class ExceptionTask { public static void main(String[] args) { // 5개의 정수만 입력 받기 // - 무한 입력 상태로 구현 // - q 입력 시 나가기 // - 각 정수는 배열에 담기 // - if문은 딱 한 번만 사용하기 Scanner sc = new Scanner(System.in);//1 int[] arData = new int[5];//2 5개 배열담기 String temp = null; //5 q를 입력할 수 도 있으니 문자열로 받음 for(int i=0;;) {//3 조건식이 없으면 무한 반복 System.out.print(i + 1 + "번째.. 2023. 2. 7.
웹개발_JAVA 13 다중 상속 여러 부모 클래스를 상속하는 것을 다중 상속이라고 한다. JAVA는 모호성 (C(b)extends (A(b),B(b)) 때문에 다중 상속을 지원하지 않는다. 하지만 JDK8버전 부터는 인터페이스에 default 메소드를 선언할 수 있으며, 여러 개를 지정할 수 있는 인터페이스 특성상 다중 상속을 지원하는 것이나 다름이 없다. 모호성(ambiguity) 하나의 자식이 여러 부모를 상속받을 때 부모 필드에 동일한 이름의 필드가 있다면, 어떤 부모의 필드인지 알 수가 없다. 이를 모호성이라고 부른다. 모호성 해결 방법 - 상황1: 두 개의 인터페이스 내에 이름과 매개변수가 똑같은 메소드가 선언되어 있다. - 해결1: 자식 클래스에서 재정의하여 사용한다. 원하는 부모의 필드에 접근하기 위해서는 "부모.. 2023. 2. 6.