[Java] 자료 구조
·
Java/Base
자료 구조 (Data Structure)  - 프로그램에서 사용할 많은 데이터를 메모리 상에서 관리하는 여러 구현 방법  - 성능 좋은 알고리즘의 기반 : 효율적인 자료 구조  - 자료의 효율적인 관리는 프로그램의 수행 속도와 밀접한 관련이 있음  - 프로그램에 맞는 최적의 자료 구조를 활용해야 함      → 여러 자료 구조에 대한 이해 중요  선형 자료 구조  - 한 줄로 자료를 관리하는 자료 구조 #  배열 (Array)  - 정해진 크기의 메모리를 먼저 할당받아 사용해야 함      : 값자료형[] 배열명 = new 값자료형[크기];  - 자료의 물리적 위치와 논리적 위치가 같음 #  연결 리스트 (LinkedList)  - 자료가 추가될 때마다 메모리를 할당받음  - 자료는 링크로 연결됨  - ..
[Java/Swing] 로또 게임 구현
·
Java/Swing (GUI)
- 1 ~ 45 범위의 랜덤한 정수 6개 코드#  랜덤 정수 추출 기능 파일public class LottoRandomNumber { public int[] lottoNumber() { // 메서드에서 리턴할 것이므로 멤버변수로 선언하지 않아도 됨 int[] lotto = new int[6]; // 한 곳에서만 사용된다면 지역변수로 선언 Random r = new Random(); for (int i = 0; i #  GUI 구현 파일public class LottoFrame extends JFrame implements ActionListener { JButton button; int[] lotto = new int[6]..
[Java] Thread - 은행 계좌 입출금에 대한 동기화 기능 구현
·
Java/Base
코드#  클래스 파일 public class BankAccount { int money = 100_000; public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } // 입금 // synchronized 메서드 public synchronized void saveMoney(int money) { int currentMoney = getMoney(); try { Thread.sleep(3000); } catch (InterruptedException e) { ..
[Java] 쓰레드 (Thread)
·
Java/Base
쓰레드 (Thread)  - 하나의 프로세스 안에서 실제 작업을 수행하는 작업 단위 (작업자)  - 각각 자신만의 작업 공간을 가짐 (Context 영역)  - 코드를 실행할 때 사용하는 main 함수는 '메인 쓰레드'임  - 쓰레드별로 작업 시간이 다를 수 있음#  프로세스 (Process)  - 프로그램이 실행되면 운영체제로부터 메모리를 할당받아, '프로세스 상태'가 됨  - 메모리를 할당받아 실행되고 있는 프로그램  - 주기억장치에 올라간 상태  - 하나의 프로세스는 여러 개의 쓰레드를 가질 수 있음  Thread의 상태 변화   - 작업을 잠깐 쉬면 'Not Runnable' 상태가 됨  - 작업이 완전히 종료되면 'Dead' 상태가 됨 Thread의 기본 명령어#  쓰레드에게 작업을 시작하도록 ..
[Java/Swing] 윤년 계산기 구현
·
Java/Swing (GUI)
- 4의 배수인 해는 윤년임  - 4의 배수이면서 100의 배수인 해는 윤년이 아님      → 4의 배수이면서 100의 배수가 아니어야 윤년임  - 100의 배수이면서 400의 배수인 해는 윤년임 코드#  윤년 계산 기능 파일public class LeapYear { // 메서드 public boolean isLeapYear(int year) { // 아래 if 문의 조건에 걸리지 않는다면 false로 유지됨 boolean result = false; if (year % 4 == 0) { if (year % 100 != 0) { result = true; // year % 4 == 0이고..