chapter 14
·
Study/java
람다식(Lambda Expression) - 함수(메서드)를 간단한 식으로 표현하는 방법 int max(int a, int b){ return a>b?a:b; } //람다식 (a,b) -> a>b? a: b - 익명 함수(anonymous function) : 반환 타입과 이름을 지우고 화살표 사용 -함수와 메서드의 차이 : 함수는 일반적 용어/ 메서드는 객체지향개념 용어 -함수는 클래스에 독립적, 메서드는 클래스에 종속적 (자바는 메서드 밖에 없음- 자바에서 모든 메서드는 클래스안에 존재해야함) -람다식 작성하기 1. 메서드의 이름과 반환타입을 제거하고 '->'를 블록{}앞에 추가 2. 반환 값이 있는 경우, 식이나 값만 적고 return문 생략 가능 (끝에 ;안붙임) 3. 매개변수의 타입이 추론가능하..
chapter 10
·
Study/java
날짜와 시간 java.util.Data : - 날짜와 시간을 다룰 목적으로 만들어진 클래스(JDK1.0) - Date의 메서드는 거의 deprecated되었지만 여전히 쓰이고 있음 java.util.Calendar - Date클래스를 개선한 새로운 클래스(JDK1,1) . 여전히 단점이 존재 java.time 패키지 - Date와 Calender의 단점을 개선한 새로운 클래스들을 제공(JDK1.8) Data,Calendar는 날싸와 시간을 항상 같이 다루는게 단점. time은 날짜와 시간을 따로 다룰수 있게 세분화 되어있음 Calendar클래스 - 추상 클래스미으로 getInstance()를 통해 구현된 객체를 얻어야함 Calendar cal = new Calendar(); //error 추상클래스는 인..
chapter 13
·
Study/java
프로세스와 쓰레드 (process & thread) 프로세스 : 실행 중인 프로그램. 자원과 쓰레드로 구성 / 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있음 (공장) 쓰레드 : 프로세스 내에서 실제 작업을 수행 (일꾼) 싱글 쓰레드 프로세스/ 멀티 쓰레드 프로레스 가 있음 **하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 듦 멀티쓰레드의 장단점 장점 (대부분의 프로세스는 멀티쓰레드로 작성되어있음) 시스템 자원을 보다 효율적으로 사용할 수 있음 사용자에 대한 응답성이 향상됨(ex 채팅 프로그램) 작업이 분리되어있어 코드가 간결해짐 단점 - 여러 쓰레드가 자원을 공유하는데에서 발생하는 문제 동기화에 주의해야함 교착상태가 발생하지 않도록 주의해야함 각 쓰레..
chapter 12
·
Study/java
지네릭스(Generices) -컴파일시 타입을 체크해주는 기능 (컴파일러에게 타입정보를 제공해줘서 타입체크 강화) ArrayList tvList = new ArrayList(); //Tv list에는 Tv만 들어가도록 tvList.add(new Tv()); //OK tvList.add(new Audio()); //컴파일 에러 Tv 외에 다른 타입 저장불가 (지네릭스 이전에는 tv가 아닌 다른걸 넣어도 잡아낼 방법이 없었음. / 지네릭스로 지정된 타입 이외의 타입을 잡아줌) - 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 //지네릭스 이전 ArrayList tvList= new ArrayList(); tvList=add(new Tv()); Tv t = (Tv)tvList.get(0);//obje..
chapter 9
·
Study/java
chapter 9. java.lang 패키지와 유용한 클래스 Object클래스 : 모든 클래스의 최고조상. 오직 11개의 메서드만을 가지고 있음.(iv, cv없음) : norify(), wait() 등은 쓰레드와 관련된 메서드 finalize() : 생성자와 반대되는 개념 -> 객체가 제거하기전에 마무리 작용 protected되어있는 것을 오버라이딩해서 public로 변경해야함 (finalize도 마찬가지) class Class {}: 클래스의 정보를 담기위한 클래스 *.class (자바소스 컴파일 하면 생성되는 파일) 이 메모리에 올라갈때 class객체가 자동으로 만들어짐 ( 여기에는 클래스에 대한 정보가 들어있음(설계도 객체) ) getClass를 호출하면 설계도 객체를 반환함. 설계도를 가지고 객체..
chapter 11
·
Study/java
컬렉션 프레임웍(collections framework) 컬렉션(collection) :여러 객체(데이터)를 모아놓은 것을 의미 +프레임웍 (framework) : 표준화, 정형화 된 체계적인 프로그래밍 방식 - 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식 - 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공 - java.util 패키지에 포함. JDK 1.2부터 제공 컬렉션 클래스(collection class) : 다수의 데이터를 저장할 수 있는 클래스 (Vetctor, ArrayList,HashSet) 컬렉션 프레임웍의 핵심 인터페이스 1. List : 순서 O/ 중복 O ArrayList, LinkedList, Stack, Vector 2. Set : 순서 X/ 중복 X ..
chapter 8
·
Study/java
프로그램 오류 - 컴파일에러 (compile-time error) : 컴파일 할때 발생하는에러 (실행불가) 컴파일러가 하는일 - 구문체크/ 번역 / 최적화 / 생략된 코드 추가 +간단한 계산 - 런타임 에러 (runtime error) : 실행할때 발생하는 에러 (실행중에러) / 에러와 예외가 있으며, 에러는 어쩔수 없지만 예외는처리하자. - 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 - 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 - 논리적 에러 (logical error) : 작성 의도와 다르게 동작 (실행됨) 예외처리 프로그램 실행시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 프로그램의 비정상 종료를 막고 정상적인..
chapter 7 -2
·
Study/java
추상 클래스(abstract class) 미완성 설계도. 미완성 메서드(추상 메서드)를 가지고 있는 클래스 abstract class Player{ //추상 클래스 - 추상 메서드를 가지고 있는 클래스 abstract void play(int pos); //추상 메서드/ {} 없음/ abstract를 붙임 abstract void stop(); } 다른 클래스 작성에 도움을 주기위함. 인스턴스 생성불가 Player p = new Player(); //ERROR 추상 클래스는 인스턴스 생성불가 class AudioPlayer extends Player{ void play(int pos){} //추상 메서드 구현 {}만들기 void step(){}//추상 메서드 구현 } AudioPlayer ap = new..
chapter 7
·
Study/java
상속 - 기존의 클래스로 새로운 클래스를 작성하는것(코드의 재사용) - 두 클래스를 부모와 자식으로 관계를 맺어주는것 - 자손은 조상의 모든 멤버를 상속받는다(생성자, 초기화 블럭 제외) -자손의 멤버개수는 조상보다 적을수 없다(같거나 많다) - 자손의 변경은 조상에 영향을 미치지 않 class 자식 클래스 extends 부모클래스 { // } 포함관계 포함 - 클래스의 멤버로 참조변수를 선언하는것 - 작은 단위의 클래스를 만들고, 이 들을 조합해서 클래스를 만든다 클래스간의 관계 설정 상속관계: ~은 ~이다 포함관계 : ~은 ~를 가지고 있다 상속보다 포함으로 하는 경우가 많음/ 잘 모르겠으면 포함으로 하면됨 단일 상속 java는 단일상속만 허용 -> 하나의 부모로만 상속 다중상속의 문제점 : 부모에 ..
chapter6
·
Study/java
객체지향 언어 코드의 재사용성이 높고 유지보수가 용이, 중복 코드 제거 객체지향 언어 = 프로그래밍 언어 + 객체지향개념(규칙) 특징 1. 캡슐화 2. 상속 3. 추상화 4. 다형성 ** 클래스와 객체 클래스 : 객체를 정의해 놓은것/ 객체를 생성하는데 사용 객체 = 속성(변수) + 기능(메서드) 객체 : 모든 인스턴스를 대표하는 일반적 용어 인스턴스 : 특정 클래스로부터 생성된 객체 클래스가 왜 필요한가? -> 객체를 생성하기 위해 객체가 왜 필요한가> -> 객체를 사용하기 위해 객체를 사용한다는 것은 -> 객체가 가진 속성(변수)과 기능(메소드 ex println)을 사용한다는 것 객체배열 객체 배열 == 참조변수 배열 Tv[] tvArr = new Tv[3]; tvArr[0]=new Tv(); ->..
✿(๑❛ڡ❛๑)✿
'Study/java' 카테고리의 글 목록