1. 스레드(Thread)란? - 어떤 프로세스 내에서 실행되는 흐름(작업)의 단위다. - 프로세스 내 명령어 블록으로 시작, 종료점을 가진다. JVM에 의해 하나의 프로세스가 발생하고 main 내부의 실행문이 하나의 스레드다. main() 이외에 다른 스레드를 만들려면 Thread 클래스를 상속하거나 Runnalble 인터페이스를 구현한다. 다중 스레드 작업 시 각 스레드끼리 정보를 주고받을 수 있어 처리 과정의 오류를 줄일 수 있다. 프로세스끼리는 정보를 주고받을 수 없다. 2. 멀티스레딩이란? 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법이다. 장점 메모리 공유로 인한 시스템 자원 소모가 줄어든다. 동시에 두 가지 활동을 하는 것이 가능해진다. 단점 서로 자원을 소모하다가 충돌이 일어..
문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정..
문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 예제 입력 1 Mississipi 예제 출력 1 ? 예제 입력 2 zZa 예제 출력 2 Z 예제 입력 3 z 예제 출력 3 Z 코드 #include #include using namespace std; int main() { string input; int alpha[26] =..
Overloading : 메서드의 매개변수를 다르게하여 영역을 확장한다. public class Parent { public Parent() { } public Parent(String name) { System.out.println(name); } public Parent(String name, int age) { System.out.println(name + "의 나이는 " + age + "살 입니다."); } } Overriding : 부모 클래스에서 만든 메소드를 덮어씌운다. 따라서 메서드 시그니처와 매개변수가 동일해야한다. public class Parent { public Parent() { } public void printName() { System.out.println("Parent - ..
표 (Table) 데이터들의 모임 row, record, 행 : 데이터 하나하나 column, 열 : 데이터 타입 데이터베이스 (Database) / 스키마(schema) 표들을 그루핑한 단위로 연관된 데이터를 묶어준다. 파일을 묶는 폴더(디렉터리)같은 개념 데이터베이스 서버 (Database server) 스키마(schema들을 묶는 단위 보통 설치한 MySQL 프로그램을 의미한다. Table 생성하기 CREATE TABLE topic ( -> id INT(11) NOT NULL AUTO_INCREMENT, -> title VARCHAR(100) NOT NULL, -> description TEXT NULL, -> created DATETIME NOT NULL, -> author VARCHAR(30) ..
여러가지 기능사용, 구현에 급급해서 MVC패턴과 같은 기법을 적용시키지 않고, class도 구분하지 않아 많이 복잡한 코드로 보인다. 이후로는 독서를 통해 다시 Java에 대한 지식을 명확하게 잡아야겠다. Main.java package calculator; public class Main { public static void main(String[] args) { CalculatorFrame mainFrame = new CalculatorFrame(); } } CalculatorFrame.java package calculator; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.StringTokeniz..