본문 바로가기
AWS(산대특)

DAY 2 - JAVA

by dkdlxl 2024. 1. 19.

 

데이터 타입

 

기본형 데이터 타입

1) 정수형 데이터 타입

 

byte : 1byte(8bit) : -128 ~ 127

short : 2byte(16bit) : -32768 ~ 32767

int : 4byte(32bit) : -2147483648 ~ 2147483647

long : 8byte(64bit) : -9223372036854775808 ~ 9223372036854775807, L(l)을 붙여 사용

2) 실수형 데이터 타입
 
float : 4byte(32bit) : 소주점 6 ~ 7자리 오차, F(f)를 붙여 사용
double : 8byte(64bit) : 소주점 15 ~ 17 자리 오차
 
3) 문자형 데이터 타입
 
char : 2byte(16bit) : 0 ~ 65535
 
4) 논리형 데이터 타입

 

boolean : 1byte(8bit) : true / false

 

형변환 (?)

1)  자동 형변환 (묵시적 형변환)

: 작은 데이터 타입의 변수 → 큰 데이터 타입의 변수

int number = 10;
long longNumber = number;

 

2) 강제 형변환 (명시적 형변환)

: 큰 데이터 타입의 변수 → 작은 데이터 타입의 변수

int number = 10;
number = (int) longNumber;

▶할당하고자 하는 큰 데이터 타입 변수 앞에 (작은 데이터타입)을 붙여줌 

 

★배열

: 동일한 타입의 변수를 묶어 저장하는 컨테이너 

: 한 번 생성된 배열의 크기는 변경X

배열 선언
: 데이터타입[] 변수명(배열명);
int[] numbers;
배열 생성
: 변수명 = new 데이터타입[크기];
numbers = new int[];
배열 선언 & 생성
int[] numbers = new int[];

 

문자열(String)

: 문자열을 표현하는데 사용되는 참조형 데이터 타입

 

String statement = "My name is ironman";

1. 문자열 결합
concat : 두 문자열을 
System.out.println(statement.concat("???"));
>>> My name is ironman ???
2. 문자열 비교 
equals : 두 문자열이 동등한지 비교
System.out.println(statement.equals("My name is hulk")); // false
System.out.println(statement.equals("My name is ironman")); // true

compareTo : 두 문자열이 사전순으로 비교
System.out.println(statement.compareTo("apple)) // -65

compareToIgnoreCase : 대소문자 구분없이 사전순으로 비교
System.out.println(statement.compareToIgnoreCase("apple)) // -65

compareTo & compareToIgnoreCase

▶statement(앞문자열)가 apple(뒤문자열)보다 앞이면 음수, 뒤이면 양수, 동일하면 0이 반환

3. 문자열 길이
length : 문자열의 길이를 반환(결과 도출)
System.out.println(statement.length()); // 18
4. 문자열 변환
toUpperCase : 모든 문자를 대문자로 변경
System.out.println(statement.toUpperCase()); // MY NAME IS IRONMAN 

toLowerCase : 모든 문자를 소문자로 변경
System.out.println(statement.toLowerCase()); // my name is ironman  

trim : 문자열의 앞뒤 공백을 모두 제거
System.out.println(statement.trim()); // My name is ironman

 

statement = "내가 그린 기린 그림은 잘 그렸다"

5. 문자열 찾기 
indexOf : 찾고자하는 문자열의 처음 찾은 위치의 인덱스 번호를 반환
System.out.println(statement.indexOf("그림")); // 9 
System.out.println(statement.indexOf("하마")); // -1

lastIndexOf : 찾고자하는 문자열의 마지막으로 찾은 위치의 인덱스 번호를 반환 
System.out.println(statement.lastIndexOf("그림")); // 9

▶정의된 변수값에 찾는 값이 없으면 -1이 출력됨

6. 부분 문자열
substring(시작인덱스, 종료인덱스) : 문자열을 원하는 크기만큼 추출
System.out.println(statement.substring(48));
System.out.println(statement.substring(3, 10));

 

참조 데이터 타입

null : 아직 어떠한 값도 지정되지 않은 상태

▶값이 지정되어 있지 않은 상태로 출력시 예외처리 됨

 

산술 연산자

: 사칙연산 작업 숫자 데이터에 대해서 연산을 수행

int a = 15; int b = 7; double c = 15.0; double d = 7.0;

 

더하기(+)

: 좌항에 우항을 더한 값을 반환

intResult = a + b; // 22
doubleResult = c + d; // 22.0

* intResult = (int) (c + d); → 실수를 정수로 바꾸기 위해서는 형변환을 해줘야 한다.

* 정수와 실수를 계산하면 실수가 나온다.

 

빼기(-)

: 좌항에 우항을 뺀 값을 반환

intResult = a + b; // 8
doubleResult = c + d; // 8.0

 

 

곱하기(*)

: 좌항에 우항을 곱한 결과를 반환

intResult = a * b; // 105
doubleResult = c * d; // 105.0

 

나누기(/)

: 좌항에 유항을 나눈 결과를 반환

intResult = a / b; // 2
doubleResult = c / d; // 2.142857142857143

*정수 나누기 정수의 결과는 실수부가 버려짐 (몫X)

 

나머지(%)

: 좌항에 우항을 나눈 나머지를 반환

intResult = a % b; // 1
doubleResult = c % d; // 1.0

 

증감 연산자(++) / 감소 연산자(--)

: 피연산자의 값을 1증가 혹은 감소 

int number = 5;
intResult = ++number + 5; // 11
intResult = number++ + 5; // 10

*++number : 전체 수식을 처리하기 전에 적용

*number++ : 전체 수식의 처리가 끝난 다음 적용

 

대입 연산자

: 변수에 값을 할당하는데 사용되는 연산자

일반 대입 연산자(=)

: 상수에 초기화를 할때를 제외하고 좌항이 반드시 변수어야 함

: 좌항에 우항을 할당

number = 10;

 

복합 대입 연산자(산술연사=)

: 좌항에 사용되는 변수는 반드시 초기화가 되어 있어야 함

: 좌항에는 변경 가능한 일반 변수가 와야함(상수 불가능)

: 좌항에 우항을 연산한 결과를 좌항에 할당

number += 10; // number = number + 10;
number -= 7:  // number = number - 7;
number *= 2;  // number = number * 2;
number /= 3;  // number = number / 3;

 

비교 연산자

: 좌항과 우항을 비교하여 그 결과를 논리값으로 반환

boolean booleanResult;

booleanResult = a > c; // false
booleanResult = a >= c; // true

 

같다(==) : 좌항과 우항이 같으면  true, 다르면 false

다르다(!=) : 좌항과 우항이 다르면  true, 같으면 false

booleanResult = a == b; // false
booleanResult = a != b; // true

 

작다(<) : 좌항이 우항보다 작으면 true, 같거나 크면 false

작거나 같다(<=) : 좌항이 우항보다 작거나 같으면 true, 크면 false

booleanResult = a < c; // false
booleanResult = a <= c; // true

 

크다(>) : 좌항이 우항보다 크면 true, 같거나 작으면 false

크거나 같다(>=) : 좌항이 우항보다 크거나 같으면 true, 작으면 false

booleanResult = a > c; // false
booleanResult = a >= c; // true

 

논리연산자

: 피연산자가 모두 논리형태로 논리 값을 조합하는 것

 

&&(AND 연산) 

: 좌항과 우항이 모두 true이면 true, 하나라도 false면 false

booleanResult = false && false; // fasle
booleanResult = true && true; // true

 

||(OR연산)

: 좌항과 우향 중 하나라도 true면 true, 모두 false면 false

booleanResult = false && false; // fasle
booleanResult = true && false; // true

 

삼항 연산자

: 간단한 조건에 따라 결과를 반환하는 연산자

조건(논리식) ? 참일때결과 : 거짓일때결과 

Scanner scanner = new Scanner(System.in);
System.out.println("나이 : ");
		
int age = scanner.nextInt();
		
String stringResult = age > 19 ? "성인" : "미성년자";
System.out.println(stringResult);

*참이면 성인 : 거짓이면 미성년자로 출력됩니다.

'AWS(산대특)' 카테고리의 다른 글

DAY 5 -JAVA  (0) 2024.01.24
JAVA class 만들기  (0) 2024.01.23
DAY 4 - JAVA  (0) 2024.01.23
DAY3 - JAVA  (0) 2024.01.22
DAY 1 - JAVA  (0) 2024.01.19