[JAVA] 자바 기초 - Data형

이진규·2024년 6월 26일

자바

목록 보기
1/6
post-thumbnail

Eclipse : 오픈 소스 IDE

❗️ 장점

  • 풍부한 기능 및 플러그인 세트
  • 플랫폼의 독립성
  • 확장성 및 사용자 지정
  • 강력한 커뮤니티 지원

Java의 기본함수

해당 class의 이름은 java파일명과 동일하게 생성

public class Helloworld {
	public static void main(String[] args) {
		System.out.println("Hello world!"); // 출력함수
	}
}

Data형의 종류

❗️ 정수 자료형

byte // 1바이트
short // 2바이트
int // 4바이트
long // 8바이트, 숫자 뒤에 L 접미사를 붙여서 할당

데이터의 최소/최대 크기를 고려해서 할당, 범위를 벗어나면 오버플로우 발생 가능

❗️ 실수 자료형

float // 4바이트, 숫자 뒤에 F 접미사를 붙여서 할당
double // 8바이트

오버플로우가 발생하면 Infinity, 언더플로우가 발생하면 0

컴퓨터의 연산에서는 고정 소수점이 아닌 부동 소수점을 사용 (근사값) 👉 오차 발생 가능

[실수간의 연산에서 오차를 해결방법]

1. int, long 정수형 타입으로 치환하여 사용
double result = (long)(1000.0*10)-(long)(999.9*10) / 10.0;

2. BigDeciaml 클래스를 이용
BigDecimal bigNumber1 = new BigDecimal("1000.0");
BigDecimal bigNumber2 = new BigDecimal("999.9");
BigDecimal result = bigNumber1.subtract(bigNumber2);

[정밀도]
숫자 좌측부터 유효 자릿수
float // 소수점 약 6~7자리
double // 소수점 약 15~16자리

❗️ 논리형 자료형

참 또는 거짓의 값을 갖는 자료형

boolean isSuccess = true;
boolean isTest = false;

❗️ 문자 자료형

1개 문자의 값에 대한 자료형
쌍따옴표가 아닌 따옴표로 할당

char a1 = 'a'; // 문자로 표현
char a2 = 97; // 아스키코드로 표현
char a3 = '\u0061'; // 유니코드로 표현

❗️ 문자열 자료형 (reference 자료형)

문자들의 집합으로 쌍따옴표로 할당
한번 생성되면 읽기만 가능하고 변경할 수 없음 👉 연산자를 이용한다면 새로운 인스턴스 생성

String a = "Hello world"; // 리터럴 방식
String b = new String("Hello world"); // 생성자 방식

⭐️ [Method]

// 문자열 비교
String a = "Hello";
String b = "World";
a.equals(b); // false

// 문자열 순서 비교
"abc".compareTo("jzis"); // -9
"aa".compareTo("aaa"); // -1

a.contains("Hell"); // 문자열 포함 여부
a.startWith("He"); // 앞부분 동일 여부
a.indexOf("lo"); // 3, 해당 문자열 시작 인덱스
a.charAt(0); // H, 특정 위치의 문자
a.substring(0,2); // He, 문자열 뽑아내기
a.concat(" World") // Hello World, 문자열 합치기
a.replace("H","C") // Cello, 문자열 교체
a.split("") // 문자열을 구분자로 분리하여 배열로 만듬


Data 형변환

❗️ 문자열 👉 숫자

String a = "123";
int i = Integer.parseInt(a); // 123
int i = Integer.valueOf(s); // 123
double d = Double.parseDouble(a); // 123.0

❗️ 숫자 👉 문자열

int i = 123;
String s = Integer.toString(i);
String s = String.valueOf(i);
profile
웹 개발자

0개의 댓글