본문 바로가기

Programming/자바

(59)
자바 재정리 - 컬렉션 프레임워크 => 동적 배열 : 인덱스 수 유동적 => 유동적으로 객체 추가, 검색, 삭제하기 위함 cf. 일반 배열 => 처음 선언한 인덱스로 한정됨 1.List 1) 순서 유지, 저장 2) 중복 저장 가능 3) 구현클래스 - ArrayList, Vector, LinkedList,.. 2. Set 1) 순서 없이 저장 2) 중복 저장 불가 3) 구현클래스 - HashSet, TreeSet 3. Map 1) 키&값 쌍으로 저장 2) 키는 중복 저장 안 됨 3) 구현클래스 - HashMap, Hashtable, TreeMap List 객체를 일렬로 정렬, 인덱스로 관리하는 구조 ArrayList 상위 타입인 Object 타입으로 배열 생성 => 요소 접근에 탁월 요소 삽입, 삭제 시 그 뒤의 요소들은 한 칸씩 밀어야 ..
자바 재정리 - 람다식 : 익명 함수 생성하기 위한 식 => 코드 간결화 ex public class ThreadEx5 { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { @Override public void run() { Toolkit toolkit = Toolkit.getDefaultToolkit(); for (int i=1;i람다식 public static void main(String[] args) { Thread thread = new Thread(()-> { //람다식 이용 (Runnable 구현 익명 객체) Toolkit toolkit = Toolkit.getDefaultToolkit(); for (int i=..
자바 재정리 - 제네릭 : 타입을 파라미터로 가지는 클래스/인터페이스/메소드 타입 파라미터 => 코드 작성 시 구체적인 타입으로 대체되어 다양한 코드 생성시킴 cf. list collection => 크기 고정돼있지 않음 import java.util.ArrayList; import java.util.List; //List 인터페이스 => ArrayList, Vector, LinkedList.. public class ListEx1 { public static void main(String[] args) { //동적 배열 => 여러 타입 값들 넣을 수 있음 //but 나중에 값 꺼낼 때 내부값 확인할 수 없어서 강제 캐스팅해야 함 List list = new ArrayList(); //다형성 list.add("홍길동"); li..
자바 재정리 - 멀티 스레드 프로세스, 스레드 프로세스 : 운영체제에서 실행 중인 하나의 애플리케이션 => 애플리케이션 실행 시 운영체제로부터 메모리 할당받아 애플리케이션의 코드 실행 멀티 프로세스 : 운영체제 내 여러 프로세스 / 애플리케이션 단위의 멀티 태스킹 => 운영체제에서 할당받은 각각의 메모리로 실행하기에 프로세스들은 서로 독립적 ex. 워드, 엑셀 동시 사용 중, 워드 오류 생겨도 엑셀 사용 가능 멀티프로세스⊃프로세스1⊃멀티 스레드 ⊃프로세스2⊃싱글 스레드 멀티 스레드 : 한 프로세스 내 여러 스레드 (여러 코드 실행 흐름) / 애플리케이션 내부에서의 멀티 태스킹 => 하나의 프로세스 내부에 생성됨 => 한 스레드에서 예외 발생시 전체 프로세스 종료 (다른 스레드 영향) ex. 메신저 내에서 파일전송 스레드 예외 발생 ..
자바 재정리 - API API : 자바에서 제공하는 라이브러리 (자주 사용되는 클래스, 인터페이스 모음) Object 클래스 : 자바의 최상위 부모 클래스 => 별도 표시 없이 메소드들 바로 오버라이드 가능 equals() : 동등한 객체인지 비교 public class StringEx6 { public static void main(String[] args) { String name1 = new String("홍길동"); String name2 = new String("홍길동"); if (name1==name2) { //참조값=주소번지 System.out.println("같은 이름입니다."); }else { System.out.println("다른 이름입니다."); } } } // 다른 이름입니다. public static ..
자바 재정리 - 예외 처리 예외 : 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류 => 예외 처리 코드 작성하면 정상 작동 가능 cf. 에러 : 하드웨어 오동작, 고장 등으로 인해 프로그램이 정상 실행되지 않는 심각한 오류 => 수습 불가 예외의 종류 일반 예외 (=컴파일러 체크 예외) : 자바 소스 컴파일 과정에서 예외처리코드가 필요한지 검사해줌 ex. 이클립스 => 컴파일 과정에서 예외를 확인해 빨간 선 표시, 예외 처리 방법 제시 실행 예외 : 컴파일 과정에서 예외처리코드를 검사하지 않는 오류 java.lang.RuntimeException 상속받음 => 두 가지 예외 모두 예외 처리 필요함 예외 처리 코드 : 예외 (문법 오류 X) 발생 시 대응해 정상 작동하도록 하는 코드 => try문에..
자바 재정리 - 중첩 클래스, 중첩 인터페이스 중첩 클래스 : 클래스 내부에 선언되는 클래스 중첩 인터페이스 : 클래스 내부에 선언되는 인터페이스 중첩 클래스 인스턴스 멤버 클래스 class A { class B{..} } A 객체 생성해야만 사용 가능 인스턴스 필드, 메소드만 선언 가능 정적 멤버 클래스 class A { static class B{..} } A클래스로 바로 접근 가능 모든 종류 필드, 메소드 선언 가능 로컬 클래스 class A { void method(){ class B{..} } } 메소드 내부에서만 사용됨 => 접근제한자, static 붙일 수 없음 인스턴스 필드, 메소드만 선언 가능 public class ClassA { //외부 클래스 int fieldA; public ClassA() { System.out.println..
자바 재정리 - 인터페이스 인터페이스의 특징 인터페이스 : 객체의 사용 방법 정의 (객체 사용 설명서) 1. 개발 코드와 객체의 통신 접점 => 개발 코드가 인터페이스 메소드 호출하고, 인터페이스는 객체 메소드 호출 2. 다형성 여러 객체들과 사용 가능 => 객체에 따라 실행 내용, 리턴값 다양화 (코드 변경 없이) 인터페이스 선언 .java 소스파일로 작성 -> 컴파일러 통해 .class로 컴파일됨 => 클래스와 동일 이름 불가 인터페이스 선언 public interface Example{ //상수 int pi = 3.14; //추상 메소드 public void cal(); //디폴트 메소드 default void print(int number){ if (number 다른 패키지에서도 사용 가능하도록 (생략해도 컴파일 과정에서 ..
자바 재정리 - 상속 상속 : 부모클래스가 자식클래스에 필드, 메소드 물려주는 것 부모클래스 내 private 필드, 메소드는 상속되지 않음 (접근할 수 없어서) (자바) 다중 상속 불가 => 단 하나의 부모 클래스만 상속 가능 public class Account { static final String BANKNAME = "신한은행"; String accountNo; String ownerName; int balance; public Account(String accountNo, String ownerName, int balance) { this.accountNo=accountNo; this.ownerName=ownerName; this.balance=balance; } public Account() { } void dep..
자바 재정리 - 클래스 https://cerulean85.tistory.com/149 객체와 인스턴스의 차이 * 자의적인 해석이므로 논란의 여지가 있음 객체와 인스턴스의 차이를 알아보니 블로그마다 말이 다르다. 어떤 블로거는 인스턴스는 객체와 같지만, 관계적인 측면에서 이야기할 때 객체 대신 cerulean85.tistory.com 객체 지향 프로그래밍 (Object Oriented Programming) : 부품 객체들 먼저 만들고, 하나씩 조립해나가 프로그램 완성 객체 : 소프트웨어 세계에 구현할 대상 / 독립적으로 존재하며 서로 상호작용 클래스 : 객체 구현 위한 설계도 인스턴스 : 클래스에 의해 소프트웨어 세계에 구현된 실체 객체⊃인스턴스 객체 물리/추상적으로 존재하는 것 중 속성 갖고 식별 가능한 것 객체 모델링 : ..