스캐너, 2차원 배열 활용한 학생 5명의 성적 출력 프로그램 구현하기 학생은 5명이다. 5명을 넘어가면 "더 이상 입력할 수 없습니다." 메세지 출력 학생 번호는 1~5번 사이이다. 과목은 국어, 영어, 수학 총 3과목이 있다. 1.입력 2.출력 3.종료 옵션이 있고 입력 전에 2번을 누르면 "아직 입력된 정보가 없습니다." 메세지 출력 구현 코드 1. 조건을 충족하기 위한 상수 구현 2. 각각 필요한 배열 생성 3. [1. 입력 2. 출력 3. 종료] 전체 조건문 형식은 이렇게 된다. Scanner scan = new Scanner(System.in); if(userChoice ==1){ }else if(userChoice == 2){ }else if(user Choice == 3){ System.Ou..
자바의 정석 11-10 예제 ) 숫자들의 위치가 잘 섞이지 않는 문제 이유와 해결하기 import java.util.*; public class Exercise11_10 { public static void main(String[] args) { Set set=new HashSet(); int[][] board=new int[5][5]; for(int i=0;set.size()
Comparator 와 Comparable 객체 정렬에 필요한 메서드(정렬 기준 제공)를 정의한 인터페이스. - Comparator : 기본 정렬 기준을 구현하는데 사용 - Comparable : 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용 public interface Comparator{ int compare(Object o1, Object o2){ //결과가 0 이면 같은 것. //양수면 왼쪽이 더 크다, 음수면 오른쪽이 더 크다. boolean equals(Object obj); } public interface Comparable{ int compareTo(Object o); //자기 자신과 비교 } -compare()와 compareTo()는 두 객체의 비교 결과를 반환하도록 작성..
수업 시간에 Linked List 숙제를 내주셨는데 또,,또,,그 사이에 까먹어서 자바의 정석으로 복습했다. 배열의 장단점 -장점 : 구조가 간단하고 데이터를 읽는 데 걸리는 시간(접근 시간, access time)이 짧다. -단점 : 크기를 변경할 수 없다, 비순차적인 데이터의 추가&삭제에 시간이 많이 걸린다. (비용이 많이 든다.) ★배열에 저장공간이 부족하면? 1. 더 큰 배열 생성 2. 복사 3. 참조 변경 =>누가 물어봤을 때 코드는 못짜도 대답할 수 있을 정도로 외우기. 연결 리스트(Linked List) -배열과 달리 불연속적으로 존재하는 데이터를 연결(link) -장점 : 데이터가 메모리상 연속된 위치에 저장되지 않아도 되며 일반적으로 떨어진 영역에 저장됨. 메모리 관리 용이, 데이터가 입..
1. multi-threading 1)여러 thread가 동시에 수행되는 프로그래밍. 여러 작업이 동시에 실행되는 효과. 2)thread는 각각 자신만의 작업 공간을 가진다. -> context 3)각 thread 사이에는 공유하는 자원이 있을 수 있다. (자바에서는 static instance) 4)여러 thread가 자원을 공유하여 작업이 수행되는 경우 (멀티 쓰레드) 서로 자원을 차지하려는 race condition이 발생할 수 있다. 5)이렇게 여러 thread가 공유하는 자원 중 경쟁이 발생하는 부분을 critical section이라 한다. 6)critical section에 대한 동기화를 구현하지 않으면 오류가 발생할 수 있다. 2. 스레드 실행 제어 메서드 1)join( ) -다른 스레드의..
1. 프로세스(process) 1)프로그램 ---------> 프로세스 실행 2)프로그램이 실행되면 OS(Operating System)로부터 메모리를 할당받아 프로세스 상태가 됨. 2)하나의 프로그램이 여러 개의 프로세스를 만들기도 함. 2. 멀티 태스킹(multi tasking) 1)통상 두 가지 이상의 작업을 동시에 처리하는 것을 칭함. 2)구현 방법 -멀티 프로세스 -독립적 프로그램을 여러 번 실행하고 작업을 처리하는 것. -멀티 스레드 -하나의 프로그램을 실행하여 내부적으로 여러 가지 작업을 처리하는 것. ex)카카오톡-채팅 스레드, 파일 전송 스레드 등.... 스레드 3. 스레드(thread) 1)하나의 프로세스는 하나 이상의 thread를 가지게 됨. -하나의 프로세스에 여러 개의 스레드 생..
인터페이스를 활용해서 프로그램 만들기 1. 문제 정의 이 학교에는 5명의 학생들이 수업을 듣습니다. 과목은 국어, 수학이 있고 각 학생들은 두 과목을 모두 수강하고 있습니다. 전공은 국어교육학과와 컴퓨터공학 두 가지가 있습니다. 국어교육학과는 국어가 필수 과목이고 컴퓨터 공학은 수학이 필수 과목입니다. 이번 학기에 성적이 아래와 같이 나왔습니다. -------------------------------------------------------------------------------------- 이름 학번 전공 필수과목 국어점수 수학점수 -------------------------------------------------------------------------------------- 스티븐잡스..
1. 자바의 입출력을 위한 I/O 스트림 1)입출력 스트림 -네트워크에서 자료의 흐름이 물의 흐름과 같다는 비유에서 유래됨. -자바는 다양한 입출력 장치에 독립적으로 일관성있는 입출력을 '입출력 스트림'을 통해 제공한다. -입출력이 구현되는 곳 : 파일 디스크, 키보드, 마우스, 네트워크 등 모든 자료가 입력되고 출력되는 곳. 2)입출력 스트림 구분 대상 기준 : 입력 스트림 / 출력 스트림 자료의 종류 : 바이트 스트림 / 문자 스트림 기능 : 기반 스트림 / 보조 스트림 2. 입력 스트림과 출력 스트림 1)입력 스트림: 대상으로부터 자료를 읽어들이는 스트림 2)출력 스트림 : 대상으로 자료를 출력하는 스트림 3)스트림 종류 -입스 : FileInputStream, FileReader, Buffered..