java 9

[Java] float를 잘 사용하지 않는 이유

실수형 표기, 왜 float를 사용하는 것을 권장하지 않을까?Java에서 제공하는 실수형 표기를 위한 자료형은 두 가지가 있는데, 바로 float와 double이다.'float는 32비트, double은 64비트라서 메모리 사용량이 더 적으니 사용을 권장해야 하는 것 아닐까?' 라는 의문점이 생길 수도 있다.하지만, 하지만 실제로는 오히려 double의 사용이 일반적으로 권장된다. 그 이유는 다음과 같다.메모리를 아낄 필요가 없음과거에는, 메모리의 비용이 높았다. 그렇기 때문에, 메모리 구입으로 인한 하드웨어 비용을 절약하기 위해 float를 쓸 수도 있었을 것이다.하지만, 지금에 이르러서는, 기술의 발전으로 인해 메모리 구입 비용이 급격하게 줄어들었다. 그렇기 때문에, 단순히 '메모리를 적게 사용한다...

java 2025.06.02

자바_04_01_추상화

package abstraction01; public class Mouse { public String name; public int age; public int countOfTail; public void sing() { System.out.println(name + "찍찍!!"); } } 한 마리의 쥐를 표현할 때, 필요한 것은 무엇인가. 보통 생명체를 표현하듯 이름과 나이가 떠오를 것이고, 쥐 하면 또 생각나는게 긴 꼬리일 것이다. 그리고 쥐의 울음소리는 찍찍이라고 어렸을 때부터 교육받아왔기에 그렇게 쥐 클래스를 만들었다. package abstraction01; public class MouseDriver { public static void main(String[] args) { Mouse mi..

java 2022.12.26

자바_07_I/O-Stream

I/O - 데이터의 입력과 출력 한 노드에서 데이터를 입력하면, 다른 노드에서 입력을 받는다. 한 노드에서 출력을 하려면, 한 노드에서 출력할 데이터를 줘야 한다. Stream - 두 노드를 연결하고 데이터를 전송할 수 있는 개념 단방향으로 통신 가능하고, 하나의 스트림으로 입/출력을 동시에 처리할 수 없음 스트림의 구분 1. 데이터의 타입에 따라서 (byte 또는 char) (@@@Stream/@@@er) 2. 데이터의 이동 방향에 따라서 (Input or Output) (InputStream or outputStream) (Reader or Writer) 3. 노드 타입에 따라서 (키보드, 모니터, 파일, 배열, 파이프 ...) InputStream의 주요 메소드 read() - byte 하나 읽어서..

java 2022.12.11

자바_06_Collection Framework, Exception

자료 구조 - 자바에서는 객체들을 한 곳에 모아놓고 편하게 사용할 수 있는 환경을 제공 - 정적 자료구조(배열 등) = 크기 고정 = 선언 시 크기를 명시하면 변경 불가능 - 동적 자료구조(리스트, 스택, 큐 등) = 요소의 수에 따라 자료구조의 크기가 증감 java.util.* List - 순서가 있는 자료의 집합, 데이터 중복 가능 - ArrayList = 내부적으로 배열을 이용하여 데이터를 관리하지만, 배열과는 다르게 크기가 유동적임 - LinkedList = 각 요소를 다음 요소의 참조값과 데이터로 구성된 Node로 정의 Set - 순서가 없는 자료의 집합, 중복 불가능 - 정렬을 위해서는 별도 처리가 필요함 - HashSet, TreeSet... Map - {key:value} 쌍으로 데이터를 ..

java 2022.12.07

자바_05_Generic Type

Generic - 미리 사용할 타입을 명시해서 형 변환을 하지 않아도 됨 - 객체 타입에 대한 안전성 향상 및 형 변환의 번거로움 감소 - 표현 클래스명 public class EXClass{} public class EXClass{} - 객체 생성 시 변수의 타입과 생성자의 타입은 같아야 한다. class EXClass{ T value; public void setValues(T value){ this.value = value; } } class main { void main(String[] args){ EXClass ex1 = new EXClass(); EXClass ex2 = new EXClass(); EXClass ex3 = new EXClass(); } } - 컴파일 시 타입 파라미터들이 대입된..

java 2022.12.04

자바_04_객체지향프로그래밍(OOP)

객체지향프로그래밍 - Object Oriented Programming, OOP - 프로그램을 수많은 객체 단위로 나누고 이들의 상호작용으로 서술하는 방식 객체지향 프로그래밍의 요소 - 클래스: 관련 있는 변수와 함수를 묶어 만든 사용자 정의 자료형 = 인스턴스: 클래스를 통해 생성된 객체 = 속성, 동작, 생성자로 구성 - 객체: 하나의 역할을 수행하는 메소드와 변수의 묶음 - 변수 = 클래스 변수: 클래스 선언 시 생성, 모든 인스턴스가 공유, static 키워드로 사용 = 인스턴스 변수: 인스턴스 생성 시 생성, 인스턴스 별로 존재 - 메소드: 객체가 할 수 있는 행동을 정의 __init__() - 생성자 함수 - new 키워드와 함께 호출 - 필드 초기화, 객체 생성 시 실행해야 할 작업 작성 객..

java 2022.12.03

자바_03_배열

배열이란? - 같은 종류의 데이터를 저장하기 위한 자료 구조 - 한번 선언 시 크기 변경 불가능 - 하나의 객체로 취급 - 배열의 내부 요소 참조 시, 배열 이름과 index 값 조합하여 사용 배열 설정 가능한 타입 1. int 2. char 3. boolean 4. String 5. Date 배열 선언 - 자료형[] 배열명 = {값, 값, 값, 값} - 배열명 = new 자료형[] {값, 값, 값, 값} - 배열이름 = new 자료형[길이] for-each문(향상된 for문) - index 대신 직접 elements에 접근 int[] arr = {1, 2, 3, 4, 5} // 기존의 접근 방식 for (int i=0; i

java 2022.12.02

자바_02_제어문

1) 조건문 1. if if (조건식) { 실행할 문장; } 2. if - else if (조건식) { 실행할 문장; } else { 실행할 문장; } 3. else if if (조건식) { 실행할 문장; } else if ( 조건식) { 실행할 문장; } 4. switch switch (식) { case 값1: 실행할 문장; break; case 값2: 실행할 문장; break; default: 실행할 문장; break 문이 없으면 그 아래 case도 실행함 2) 반복문 1. for 문 for (초기식; 조건식; 증감식) { 반복할 문장; } 얼마나 반복해야 할 지 알고 있을 때 사용 ex) for (i=0; i

java 2022.11.29

자바_01_자료형

자바 기억 더듬기 1일차 자료형 정리 1. 논리형 boolean - true/false == 1/0 2. 문자형 char - 글자 단 하나, 2byte string - 글자 여러개, 내용에 따라 가변 3. 숫자형 - 정수형 byte - 1byte, - (2^8) ~ 2^8 -1 short - 2byte, - (2^16) ~ 2^16 - 1 int - 4byte, - (2^32) ~ 2^32 - 1 long - 8byte, - (2^64) ~ 2^64 - 1 - 실수형 float - 4byte, 1.4E-45 ~ 3.4028235E38 double - 8byte, 4.9E-324 ~ 1.7976931348623157E308 선언 방법 선언 - [자료형] [변수명] 저장 - [변수명] = [값] 초기화 - ..

java 2022.11.29