JAVA
-
[Study] 자바 5주차 과제JAVA 2021. 1. 10. 20:06
자바 5주차 과제입니다. 클래스 정의하는 방법 객체 지향 프로그래밍(OOP, Object-Oriented Programming) 객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 이러한 객체가 바로 프로그래밍의 중심이 됩니다. 객체란 소프트웨어 세계에서 구현할 대상이며, 이 때 객체를 만들어 내기 위한 설계도와 같은 개념을 클래스(class)라고 합니다. 클래스(class) 자바에서 클래스(class)란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용됩니다. 자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 됩니다. 그렇다면 클래스는 어떻게 정의할까요? 먼저, 클래스의 구조를 살펴봅시다. 필드(field) - 필드는 해당 클래스 객체의 상태 속성을 나타..
-
[Study] 자바 4주차 과제JAVA 2020. 12. 8. 20:22
4주차 과제입니다. 프로그램의 흐름(flow)를 바꾸는 역할을 하는 문장들을 제어문이라고 하고 제어문에는 '선택문(조건문)과 반복문'이 있습니다. 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행합니다. 선택문 if문 if문은 가장 기본적인 선택문이며, 다음과 같이 '조건식'과 '괄호{}'로 이루어져 있습니다. 'if'의 뜻이 '만일 ~이라면...' 이므로 '만일(if) 조건식이 참(true)이면 괄호{} 안의 문장들을 수행하라' 라는 의미로 이해하면 됩니다. /* if (조건식) { // 조건식이 참(true)일 때 수행될 문장들을 적는다. } */ int score = 80; if (score > 60) { System.out.println("합격입니다."); ..
-
[Study] 자바 3주차 과제JAVA 2020. 11. 28. 14:11
3주차 과제 입니다. 산술 연산자 산술 연산자는 사칙연산을 다루는 기본적이면서도 가장 많이 사용되는 연산자로 총 5가지가 있습니다. 모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산들의 결합 방향은 왼쪽에서 오른쪽입니다. 산술 연산자 설명 + 왼쪽의 피연산자에서 오른쪽의 피연산자를 더함 - 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺌 * 왼쪽의 피연산자에서 오른쪽의 피연산자를 곱함 / 왼쪽의 피연산자에서 오른쪽의 피연산자를 나눔 % 왼쪽의 피연산자에서 오른쪽의 피연산자를 나눈 후, 그 나머지를 반환 int a = 10; int b = 4; System.out.printf("%d + %d = %d%n", a, b, a+b); System.out.printf("%d - %d = %d%n", a, b, ..
-
[Study] 자바 2주차 과제JAVA 2020. 11. 21. 19:24
2주차 과제입니다. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 타입 종류 기본 값 값 범위 메모리 사용 크기 Wrapper Class 정수형 byte 0 -128 ~ 127 1byte Byte short 0 -32,768 ~ 32,767 2byte Short int 0 -2,147,483,648 ~ -2,147,483,647 4byte Integer long 0L -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 8byte Long 실수형 float 0.0F (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값 4byte Float double 0.0 (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값 8byte Double ..
-
[Study] 자바 1주차 과제JAVA 2020. 11. 17. 21:55
우연히 백기선님께서 자바 스터디를 진행하고 계신다는 것을 알게 되어 참여해보려 한다. 21일까지 1주차를 마감한다고 하시니까 관심 있은 분들은 아래의 유튜브를 참고하시길 바랍니다. - youtu.be/rPYhY5kFD5k JVM이란 무엇인가 JVM은 Java Virtual Machine의 약자로 'Java를 실행시키기 위한 가상 기계' 라고 생각하면 됩니다. 보통 일반 프로그램은 실행되기 위해 운영체제(OS)가 메모리를 제어하여 실행이 되는 반면, Java 프로그램의 경우 JVM이 OS로부터 메모리를 할당받고 Java Compiler가 변환한 바이트 코드를 실행시킵니다. 그렇기에 Java는 OS에 종속적이지 않지만 JVM에 종속적입니다. 컴파일 하는 방법 이클립스나 인텔리제이와 같은 IDE를 이용해 자동..
-
[JAVA] 제네릭(Generic) 이란?JAVA 2020. 11. 15. 21:53
자바에서 타입을 지정해주는 제네릭에 대해 알아보도록 하자. 제네릭(Generic) 이란? List나 Map과 같은 Collection을 사용하다보면 List, Map와 같이 "" 사이에 타입을 명시해놓는 형태를 본 적이 많을 것입니다. 이게 제네릭 입니다. 이걸 왜 사용하는 것일까요? 제네릭을 사용하지 않고 ArrayList를 만들어 봅시다. ArrayList에는 기본적으로 모든 클래스의 조상인 Object 타입이 올 수가 있습니다. 여기에 문자열을 집어넣고 이를 get 메소드를 통해 반환하려고 하면 반드시 casting(형변환)을 해주어야 합니다. 수만, 수십만개의 데이터를 꺼내야 한다면 마찬가지로 수만, 수십만번의 casting을 해주어야 하기에 시스템 성능의 큰 저하를 가져오게 됩니다. 그리고 만약..
-
[JAVA] StringTokenizerJAVA 2020. 10. 28. 00:19
백준 알고리즘 문제를 보다보면 5 3 과 같이 공백이 있는 입력을 많이 보게 된다. Scanner를 사용하면 간단하게 nextInt로 받아 변수에다 넣어주면 되지만, BufferedReader를 사용하게 될 경우 한 라인마다 입력을 받기에 한번에 입력을 받아서 나눠줘야 한다. 그래서 난 보통 String 메소드인 split를 사용하여 배열을 만들어 주었는데 다른 사람들 풀이를 보니 StringTokenizer를 사용하는 경우가 많았다. 쓸데없이 배열 만드는 것보다 훨씬 좋아보였기에 StringTokenizer에 대해 알아보기로 하였다. StringTokenizer java.util 패키지 내에 있는 클래스로 String을 특정한 구분 문자(Delimiter)로 여러 개의 토큰(Token) 문자열로 나누어..
-
클래스, 객체, 인스턴스JAVA 2020. 9. 21. 18:01
얼마 전 친구와 기술면접 관련 대화를 하다 클래스와 객체, 인스턴스의 차이는 무엇이냐고 질문을 받았습니다. 분명 알고 있는 개념이였고 클래스는 이거, 객체는 저거, 인스턴스는 그거지 라고 생각은 했으나 제대로 대답을 하지 못했습니다. 그 뜻은 그냥 모른다는 것과 똑같다는 뜻이고 너무 많이 부족하다는 것을 다시 한번 깨달았습니다. 그래서 이번엔 가장 기본적이지만 그만큼 가장 중요한 클래스와 객체, 인스턴스에 대해 알아보겠습니다. 클래스 클래스는 객체를 구현하기 위한 설계도, 즉 틀을 뜻합니다. 연관되어 있는 변수와 메서드의 집합으로 자바에서는 class 클래스명 { ... } 의 형식으로 만들 수 있습니다. 객체 객체는 소프트웨어 세계에서 구현할 대상입니다. '객체지향의 사실과 오해' 라는 책에서는 이러한..