4차산업혁명의 일꾼/Java&Spring웹개발과 서버 컴퓨터

Java 프로그래밍 정리 - 방송통신대 컴퓨터 공학과

르무엘 2023. 2. 23. 22:44

[목차]

 

https://hajoung56.tistory.com/35

 

[JAVA] JAVA 버전 별 특징(1 ~ 17 버전)

JDK 1.0a2(1995년 5월) 1. 언어 자체가 정식으로 발표된 날이기도 합니다. 2. Oak라는 명칭으로 불리었습니다. JDK 1.0(1996년 1월) 1. 안정화 작업을 거친 1.0.2 버전에서 Java로 이름이 바뀌었습니다. JDK 1.1(19

hajoung56.tistory.com

 

[1] Java와 객체지향 프로그래밍

  1. Java 플랫폼은 Java VM과 Java API로 구성된다.

[2] Java 기본문법(1)

  1. 변수의 종류로는 인스턴스 변수, 클래스 변수, 지역 변수, 파라미터가 있다.
  2. 인스턴스 변수는 객체가 소유하는 변수이며, 클래스 변수는 해당 클래스의 객체들이 공유하는 변수이다.

[3] Java 기본문법(2)

1. 클래스를 정의할 때, 접근 제어자가 생략된 데이터 필드는 ‘해당 클래스’와 ‘같은 패키지의 다른 클래스’에서 사용할 수 있다

[4] 클래스와 상속

  1. 인스턴스 메소드와 생성자에서 숨은 인자인 this와 super를 사용할 수 있다.

[5] 인터페이스와 다형성

  1. 다형성은 메소드 오버라이딩과 오버로딩, 클래스 간 상속과 형변환, 인터페이스의 구현과 형변환, 메소드 동적 바인딩을 통해 구현될 수 있다.

[6] 제네릭과 람다식

  1. 제네릭 클래스를 사용할 때 제공되는 타입 파라미터는 필드의 자료형, 메소드의 반환형, 인자의 자료형으로 사용될 수 있다.
  2. 람다식의 실행 결과가 대입되는 인터페이스를 람다식의 타깃 타입이라고 한다.

 

 

 

[7] 패키지와 예외처리

  1. Java 프로그램에서 필요한 클래스나 패키지는 환경변수 CLASSPATH에 포함되어 있는 경로상에서 찾을 수 있어야 한다.

 

[8] java.lang 패키지

  1. String은 문자열 처리를 위한 다양한 메소드를 제공하지만 immutable 클래스로, String 객체는 생성 이후에 내용 변경이 불가능하다.
  2. 자주 변경되는 문자열을 다루어야 할 경우에는 String 클래스보다 StringBuffer나 StringBuilder 클래스를 사용하는 것이 보다 효율적이다.

 

[9] java.io 패키지와 스트림

  1. RandomAccessFile 클래스는 파일의 읽기/쓰기를 지원하며 파일 포인터가 가리키는 임의의 위치에 읽기/쓰기가 가능하다.
  2. BufferedInputStream(OutputStream)과 BufferedReader(Writer)는 보조 스트림으로 버퍼링 기능을 제공하여 입출력 성능을 향상시킨다.
  3. 기본 스트림의 객체를 먼저 생성하고, 그 객체를 인자로 하여 보조 스트림 객체를 생성한다.
  4. InputStreamReader는 바이트 스트림으로 읽어들인 데이터를 캐릭터 스트림으로 변환시킨다.

 

 

[10] java.nio 패키지의 활용

  1. java.nio와 그것의 서브 패키지는 java.io 패키지를 개선한 새로운 입출력 패키지이다.
  2. java.nio.file 패키지의 Path 인터페이스는 java.io 패키지의 File 클래스보다 풍부한 기능을 제공한다.
  3. Files 클래스는 실제 파일(또는 디렉터리) 조작과 읽기/쓰기 기능을 수행하는 static 메소드를 제공한다.
  4. java.nio.file의 FileChannel은 입출력을 모두 제공하고 기본적으로 버퍼링을 사용하며 멀티 스레드 환경에서도 안전하도록 설계되어 있다.
  5. java.nio.file 패키지의 WatchService 디렉터리에 발생하는 이벤트를 감시하는 서비스이다.
  6. AsynchronousFileChannel 클래스를 이용하면 논-블로킹 방식 입출력을 지원하여 read(), write() 작업이 완료되지 않더라도 다른 작업을 동시에 수행할 수 있다.

[11] 컬렉션

 

  1. 컬렉션은 여러 원소를 하나의 그룹으로 묶은 객체를 통칭하는 용어이며, JCF는 컬렉션을 표현하고 다루기 위한 통합 프레임워크이다.
  2. Set은 순서는 상관없지만 중복을 허용하지 않는 자료를 다루기 위한 인터페이스이다.
  3. List와 Queue자료의 중복을 허용하고 순서를 고려하여 관리하는 인터페이스이다. 특히 Queue는 FIFO 방식으로 자료를 관리하는 인터페이스이다.
  4. Map 인터페이스는 <키, 값>의 쌍으로 구성되는 자료를 관리하는 메소드를 제공한다.
  5. LinkedList 클래스는 List 인터페이스와 Queue 인터페이스를 모두 구현한 클래스로서, 스택 자료구조의 구현에 사용할 수도 있고, 큐 자료구조의 구현에 사용할 수도 있다.

 

[12] 멀티스레드 프로그래밍

  1. 멀티 스레드 프로그래밍이란 하나의 프로세스에서 여러 스레드가 생성되어 동시 실행되게 하는 것을 말한다.
  2. 스레드의 실행 코드는 Thread를 상속받는 자식 클래스(또는 Runnable 인터페이스를 구현한 클래스)의 정의에 포함된 public void run() 메소드에 있다.
  3. Thread 클래스에서 스레드의 상태를 제어하는 메소드로 start(), join(), interrupt()가 있으며, static 메소드인 yield()와 sleep()도 있다. 한편 Object 클래스에 정의된 메소드로는 notify()와 wait()가 있다.
  4. 스레드 동기화는 데이터의 일관성을 유지하도록 한 번에 한 스레드만이 스레드 간 공유 객체에 접근하도록 하는 것이며, synchronized 메소드는 동기화를 보장한다.

 

 

[13] AWT 컨트롤 클래스

  1. AWT는 Java에서 GUI를 만들기 위한 API를 제공한다.
  2. GUI 컴포넌트는 클래스 형태로 제공되며 컨트롤과 컨테이너로 분류된다.
  3. Frame 클래스는 테두리와 메뉴바를 가질 수 있으며 기본 배치 관리자로 BorderLayout을 사용한다.
  4. 컨테이너는 컨트롤이나 다른 컨테이너를 포함할 수 있는 컴포넌트로 배치관리자를 사용하여 자식 컴포넌트의 크기나 위치를 자동으로 조정한다.
  5. BorderLayout은 중앙/동/서/남/북에 자식 컴포넌트를 하나씩 배치하며, FlowLayout은 자식 컴포넌트를 한 줄씩 수평으로 배치하는 배치 관리자이다.

[14] AWT 이벤트 처리하기

  1. 윈도우 프로그램은 이벤트 기반 프로그래밍 방식으로 작성된다.
  2. 이벤트를 발생시킨 컴포넌트를 이벤트 소스라고 하고, 이벤트의 처리를 맡은 객체를 이벤트 리스너라고 한다.
  3. 한 컴포넌트에 여러 종류의 이벤트가 발생할 수 있는데, 발생 가능한 이벤트는 컴포넌트의 종류에 따라 다르다.
  4. 이벤트는 종류별로 클래스로 정의되었 있다. 예로 마우스 클릭과 관련된 이벤트들을 표현하는 MouseEvent라는 클래스가 있다.
  5. 특정 이벤트를 처리하기 위해 해당 리스너를 구현한 클래스를 정의하고, 객체를 생성하여 이벤트 소스에 이벤트 리스너로 등록한다.
  6. 이벤트 어댑터가 있는 경우 이벤트 리스너를 구현하는 대신 어댑터를 상속받는 클래스를 정의할 수 있다.

 

[15] JDBC프로그래밍

  1. JDBC는 Java 프로그램에서 관계형 데이터베이스와 연동할 수 있게 하는 표준 API이다.
  2. DBMS와 연결을 설정할 때는 java.sql.Connection 객체를 사용한다.
  3. SQL 구문을 실행할 때 Statement 인터페이스의 execute(), executeQuery(), executeUpdate()를 사용한다.
  4. select 구문을 실행할 때 executeQuery()를 실행하며 검색 결과가 ResulteSet 객체로 리턴된다.
  5. 같은 SQL 문을 여러 번 실행할 때는 PreparedStatement 객체를 사용하는 것이 효율적이며, SQL 문에 매개변수를 사용하고 실행 전에 값을 지정할 수 있다.

LIST