728x90
반응형
Number
- 정수
- 자바의 정수를 표현하기 위한 자료형은 int, long 이다.(차이: 표현 범위)
int age = 10;
long countOfStar = 57835982L;
- 실수
- 자바의 실수를 표현하기 위한 자료형은 float, double 이다. (차이: 표현범위)
- 자바에서 실수형은 default가 double이므로 float 변수에 값을 대입할 때는 F 접미사를 꼭 붙여야 함.
float pi = 3.14F;
double morepi = 3.14159265358979323846;
- 8진수와 16진수
- 8진수와 16진수는 int 자료형을 사용하여 표시한다.
- 0 으로 시작하면 8진수, 0x 으로 시작하면 16 진수가 된다.
int octal = 023; // decimal: 19
int hex = 0xC; // decimal: 22
- 숫자연산
- 자바의 사칙연산은 실생활에서 사용하는 사칙연산과 크게 다를 바 없다.
- +, -, *, / 기호를 이요아여 두 숫자간 사칙연산을 수행한다.
package package_01;
public class TestClass {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println(a+b); // 15
System.out.println(a-b); // 5
System.out.println(a*b); // 50
System.out.println(a/b); // 2
}
}
- 증감연산
- 자바는 ++, -- 기호를 이용하여 값을 증가하거나 감소시킬 수 있다. (증감연산자)
- 연산자의 위치에 따라 값은 달라진다.(전위 연산자 or 후위 연산자)
package package_01;
public class TestClass{
public static void main(String[] args) {
int i = 0;
int j = 10;
i++;
j--;
System.out.println(i); // 1
System.out.println(j); // 9
}
}
※ i++ [후위연산자]에 의해 i 값이 참조 / (되었으나 증가값은 출력되지 않음)
package package_01;
public class TestClass{
public static void main(String[] args) {
int i = 0;
System.out.println(i++); // 0
System.out.println(i); // 1
}
}
- i++ [후위연산자] : 값이 참조된 후에 증가
- ++i [전위연산자] : 값이 참조되기 전에 증가
※ ++i [전위연산자]에 의해 i 값이 참조되기 전에 증가
package package_01;
public class TestClass{
public static void main(String[] args) {
int i = 0;
System.out.println(++i); // 1
System.out.println(i); // 1
}
}
Boolean
참 또는 거짓의 값을 갖는 자료형을 불 자료형이라고 한다. (boolean = true or false)
boolean isSuccess = true;
boolean isFalse = false;
- 불 연산
- 불 자료형에는 불 연산의 결과값이 대입될 수 있다.
- 불 연산은 참, 거짓을 판단하는 연산을 말한다.
- 이러한 불 연산의 결과는 참 또는 거짓이므로 if 문과 같은 조건문에 사용하거나 불 자료형에 대입할 수 있다.
2 > 1 // true
1 == 2 // false
3 % 2 // true
"3".equals("2") // false
- 조건문
- 불 연산은 보통 다음처럼 조건문의 판단 기준으로 많이 사용한다.
public static void main(String[] args) {
int base = 180;
int height = 185;
boolean isTall = height > base;
if(isTall) {
System.out.println("키가 큽니다.");
}
}
문자(char)
한 개의 문자 값에 대한 자료형은 char를 이용한다.
char a1 = 'a';
주의할 점은 위와 같이 문자값을 ' (단일 인용부호)로 감싸주어야 한다.
public static void main(String[] args) {
char a1 = 'a';
char a2 = 97;
char a3 = '\u0061';
System.out.println(a1); // a
System.out.println(a2); // a
System.out.println(a3); // a
}
문자열 (String)
문자열이란 문자들로 구성된 문장을 뜻한다.
자바에서 문자열을 나타내는 자료형은 String 이다.
String a = "Happy Java";
String b = "a";
Stirng c = "123";
또는 다음과 같이 표현할 수도 있다.
String a = new String("Happy Java");
String b = new String("a");
String c = new String("123");
※ new 키워드는 객체를 만들 때 사용한다.
보통 문자열을 표현할 때는 가급적 첫번째 방식(literal 표기)을 사용하는 것이 좋다.
가독성의 이점과 컴파일 시 최적화에 도움을 주기 때문이다.
- 원시(primitive) 자료형
- 앞서 보았던 int, long, double, float, boolean, char 자료형을 원시(primitive) 자료형이라고 부른다.
이런 primitive 자료형은 new 키워드로 그 값을 생성할 수 없다. (정수형, 실수형, 불형, 문자형) - primitive 자료형은 literal 로만 값을 초기화할 수 있다.
- Stirng 은 literal 로 표기가 가능하지만 primitve 자료형은 아니다.
String 은 literal 표현식을 사용할 수 있다. - 원시 자료형의 Wrapper 클래스
ArrayList, HashMap, HashSet 등은 데이터를 생성할 때 원시 자료형 대신 그에 대응하는
Wrapper 클래스를 사용해야 한다.
primitive data type 대신 Wrapper Class를 사용하면 value 대신 object 를 주고 받을 수 있다.
따라서 코드를 객체 중심적으로 작성하는데 유리하다.
또한 multi threading 환경에서 동기화를 지원하기 위해서도 Wrapper Class는 반드시 필요하다.
- 앞서 보았던 int, long, double, float, boolean, char 자료형을 원시(primitive) 자료형이라고 부른다.
primitive data type | Wrapper Class |
int | integer |
long | Long |
double | Double |
float | Float |
boolean | Boolean |
char | Char |
- 문자열 내장 메서드
String 자료형의 내장 메서드 중에서 자주 사용하는 것들에 대해 알아보자.
- equals
: equals는 두 개의 문자열이 동일한지를 비교하여 결과값을 return 한다. - indexOf
: indexOf는 문자열에서 특정 문자열이 시작되는 위치(인덱스)를 return 한다. - contains
: contains는 문자열에서 특정 문자열이 포함되어 있는지의 여부를 return 한다. - charAt
: charAt은 문자열에서 특정 위치의 문자(char)를 return 한다. - replaceAll
: replaceAll은 문자열 중 특정 문자열을 다른 문자열로 바꾸고자 할 때 사용한다. - substring
: substring은 문자열 중 특정 부분을 뽑아낼 경우에 사용한다.(시작위치, 끝위치(포함x)) - toUpperCase
: toUpperCase는 문자열을 모두 대문자로 변경할 때 사용한다. (소문자: toLowerCase) - split
: split 메서드는 문자열을 특정 구분자로 나누어 문자열 배열로 return 하는 method이다.
- equals
public static void main(String[] args) {
/* equals */
String a = "Hello";
String b = "java";
String c = "Hello";
System.out.println(a.equals(b)); // false
System.out.println(a.equals(c)); // true
/* indexOf */
String d = "Hello java";
System.out.println(d.indexOf("java")); // 6
/* contains */
String e = "Hello Java";
System.out.println(e.contains(e)); // true
/* charAt */
String f = "Hello World";
System.out.println(f.charAt(6)); // W
/* replaceAll */
String g = "Hello World";
System.out.println(g.replaceAll("World", "Univese")); // Hello Universe
/* substring */
String h = "Hello World";
System.out.println(h.substring(0, 4)); // Hell
/* toUpperCase / toLowerCase */
String i = "HELLO world";
System.out.println(i.toUpperCase()); // HELLO WORLD
System.out.println(i.toLowerCase()); // hello world
/* split */
String j = "a:b:c:d";
String[] result = j.split(":"); // {"a", "b", "c", "d"}
}
- 문자열 포맷팅
문자열 포맷팅이란 문자열 안에 어떤 값을 삽입하는 방법이다.- 숫자 바로 대입
- 문자열 바로 대입
- 숫자 값을 나타내는 변수로 대입
- 2개 이상의 값 넣기
- string.format 메서드는 포맷팅된 문자열을 return 한다.
따라서 포맷팅된 문자열을 출력하려면 다음 처럼 System.out.println 메서드를 함께 사용해야 한다.
하지만 System.out.printf 메서드를 사용하면 String.format 메서드 없이도 동일한 형식으로
포맷팅 된 문자열을 출력할 수 있다.
public static void main(String[] args) {
System.out.println(String.format("I eat %d apples.", 3));
System.out.println(String.format(("I eat %s apples."), "five")); // I eat five apples.
int number = 3;
System.out.println(String.format("I eat %d apples.", number));
int num = 10;
String day = "three";
System.out.println(String.format("I ate %d apples. so I was sick for %s days.", num, day));
// Float
System.out.println(String.format("%.4f", 3.4213234));
// printf("I eat %s apples\n", "five"); // C language
// print("I eat {} apples".format("five")) // Python
/* System.out.printf */
System.out.printf("I eat %d apples.", 3);
}
728x90
반응형
'Language > Java' 카테고리의 다른 글
Java - List (0) | 2023.03.25 |
---|---|
Java - Array (0) | 2023.03.25 |
Java 자료형 - StringBuffer (0) | 2023.03.25 |
자바 소스코드 기본 구조 (0) | 2023.03.24 |
자바 주요 특징 (0) | 2023.03.24 |