Java
[Java] Thread에 대한 공부
[Java] Thread에 대한 공부
2019.12.05이번에는 Thread에 관한 내용을 중요한 포인트만을 가지고 정리해보고자 한다. 1. 개념정리 개인적으로 본인에게 와닿는 개념으로 정리해보았다. - Process: 운영체제로부터 시스템 자원을 할당받는 작업의 단위, 실행 중인 프로그램 - Thread: 프로세스가 할당받은 자원을 이용하는 실행의 한 단위, 프로세스 내에서 실제로 작업을 수행하는 주체 2. Thread Life Cycle - start(): 실행시 새로 생성된 Thread 객체가 Runnable로 이동해 실행 가능한 후보군이 되어 실제 실행을 대기한다. - Scheduler: 스케쥴러가 각 스레드가 Running으로 이동시키거나 다시 Runnable로 이동시키면서 여러 스레드를 관리해준다. 일정한 규칙없이 여러 쓰레드들을 실행시켜준다. -..
[Coding] 달력 출력하기 (Java)
[Coding] 달력 출력하기 (Java)
2019.12.02📌 1. Problem 사용자에게 날짜를 입력받아 달력 혹은 해당 날짜를 출력 연, 월, 일 전부다 입력 받을 시 "YYYY년 MM월 DD일 입니다." 라는 문구 출력 연, 월 까지만 입력 시 해당 연도 월 달력을 출력 연도만 입력 시 해당연도 전체 달력을 출력 🔖 1-1. Problem Solving 여기서 중요한 것은 월 달력을 출력할 때 해당 월 1일이 무슨 요일인지와 거기에 따라 토요일을 기준으로 어떻게 개행("\n")처리를 해야할 것인가이다. 여기에 초점을 맞춰 코드를 짜봤다. 1-1-1. 월 1일은 무슨 요일? 1년 1월 1일이 월요일이라는 것을 이용한다. 입력한 연도 전년도까지 모든 일수를 구하고 입력한 연도의 월, 일까지의 일수를 더해주면 1년 1월 1일부터 입력한 날짜까지의 총 일수가 나..
[Java] equals & hashCode - 두 method에 대한 공부
[Java] equals & hashCode - 두 method에 대한 공부
2019.12.02String 클래스를 사용하다 보면 equals를 통해 문자열이 일치하는지 비교하는 것을 본 적이 많을 것이다. 예를 들어 "BeanieJoy"와 "JoyBeanie" 두 개의 문자열이 일치하는지 아닌지를 비교하려고 한다면 → "BeanieJoy".equals("JoyBeanie") 를 통해 true인지 false인지를 알아볼 것이다. 하지만 Car라는 임의의 클래스를 만들어서 그 안에 정보들을 넣고 그 정보가 다른 객체와 같은지 아닌지를 알아보기 위해 equals를 사용한다면 완전히 다른 결과가 나올 것이다. 예를 들어보자. ≫ Overriding 하지 않은 상황 1 2 3 4 5 6 7 8 9 10 11 12 public class EqualsDemo { public static void main(S..
[Java] Access Modifier - 접근한정자에 대한 공부
[Java] Access Modifier - 접근한정자에 대한 공부
2019.12.02Java에서 OOP개념에 들어가면 public, private, ... 등을 많이 볼 수 있다. 이들은 접근한정자(Access Modifier)라고 부른다. 정확한 정의는 아니지만 본인이 생각하기에 말 그대로 객체를 생성할 때나 클래스 자체를 사용하고 싶을 때 해당 클래스 내부의 정보들을 이용하는데 있어 제한할 수 있는 기능을 가지고 있다. 이번 시간에는 이런 접근한정자(한정자도 포함해서)들에 대해서 공부한 내용을 정리해보고자 한다. Notice.java / package java_20191122.aa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 package java_20191122.aa; // p..
[Java] Class - Abstract Class를 사용하는 이유(두 번째)
[Java] Class - Abstract Class를 사용하는 이유(두 번째)
2019.11.28전 단계에 이어서 보겠다. 📌 1. Step 4. 🔖 1-1. StopMilliWatch public class StopMilliWatch { // StopNanoWatch class의 맴버변수와 겹친다. // 나중에 새로운 클래스 만들시 또 이 맴버변수를 만들어주어야 한다. private long startTime; private long endTime; // 아래 3개의 method도 StopNanoWatch class와 비슷하다. public void start() { startTime = System.currentTimeMillis(); } public void stop() { endTime = System.currentTimeMillis(); } public double getElapsedTim..
[Java] Class - Abstract Class를 사용하는 이유
[Java] Class - Abstract Class를 사용하는 이유
2019.11.27Java를 한다고 하면 OOP(Object-Oriented Programming)을 바로 떠올릴 것이다. OOP는 객체지향 프로그래밍으로 Object, Abstraction, Class, Encapsulation, Polymorphism, Inheritance 6개의 개념을 포괄한다. Java에서 OOP를 빼면 시체라고 할 정도로 Java에서는 핵심이다. 그중 abstract class(추상 클래스)의 용도에 대해 생각해본 것들을 적어둘 생각이다. 완전 밑바닥부터 추상 클래스를 사용하기까지 단계별로 보여주는 것이 확 와 닿을 것 같아서 여러 step을 통해서 보여주고자 한다. Step 1. 1) FootStopWatch.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ..