[JAVA] 변수와 타입
Categories: JAVA-Learn
📌 개인적인 공간으로 공부를 기록하고 복습하기 위해 사용하는 블로그입니다.
정확하지 않은 정보가 있을 수 있으니 참고바랍니다 :)
[틀린 내용은 댓글로 남겨주시면 복받으실거에요]
✨Orientation
- 코드 많이 쳐보기
- 남이 아닌 나랑 비교하기, 하루전의 나와 일주일 전의 나
- 배운 것 기록하기 → 배운 것 중 어려웠던 것들 오류 발생 했던 것들 어떻게 해결했는지
✨변수와 타입
1. 변수(Variable)
1) 정의 : 변할 수 있는 값.
2) 변수 선언 : 변수를 선언하면 메모리 공간이 확보됨.
- int a;
3) 변수 할당 : 선언한 변수에 변수의 값을 저장하는 것
- a = 4;
4) 변수의 명명규칙
- 다른 사람이 알아볼 수 있게 직관적으로 사용
- 공백사용 불가함.
- 첫문자는 대문자를 사용 할 수 없음.
- 특수문자는 _,$ 만 사용 가능
-
예약어는 사용 못함.
Java Keywords (w3schools.com) - 첫문자가 숫자로 시작 할 수 없음. ex) int 10age;
- 변수 타입은 한번 지정하면 다른 타입으로는 변경할 수 없다.
ex) int leftNumber=0;
leftNumber=”71” - 오류발생
2. 상수
1) 정의 : 변하지 말아야 할 데이터 ex) 일주일, 파이, 절대값
2) final 키워드를 사용하여 선언 할 수 있고
3) 상수는 대문자를 사용한다.
4) 상수의 사용이유는
(1) 프로그래머가 실수할 수 있기 때문 = 값이 변하지 말아야함!
(2) 가독성을 위해서
(3) 유지관리를 위해서
5) 상수는 선언과 할당을 동시에 진행하여야함 , 변수는 따로 할 수 있음.
ex) final double PI=3.14;
3. 타입
값이 차지하는 메모리 공간의 크기와 값이 저장되는 방식을 결정.
1) 기본타입
- 정수, 실수, 불리언, 문자
- 실제값이 저장됨
2) 참조타입
- 기본형 8개를 제외한 나머지 타입,
- 객체의 주소값 저장
3) 리터럴
4) 정수타입
byte, short, int, long
- byte와 short는 현재 많이 사용하지 않음.
- byte와 short는 int로 자동 형변환 되는데
- long은 접미사 l을 붙여줘야 함.
타입별 메모리 크기와 표현 범위.
- byte (메모리 : 1byte = 8bit) : 2^-7 ~ 2^7 -1 =-128~ 127(총 256개)
- short(메모리 : 2byte = 16bit) : 2^-15 ~ 2^15 -1 (
- int (메모리: 4byte = 32bit) : 2^-31 ~ 2^31 -1 = -21억~21억( 대략 45억 개)
- long (메모리: 8byte = 64bit) : 2^63~2^63 -1
정수형의 오버플로우와 언더플로우
(1) 오버플로우는 표현할 수 있는 최대 값 이상을 표현할 경우
- byte형에서 127에 1을 더하면 128이 아닌 -128이 된다.
(2) 언더플로우는 표현할 수 있는 최소 값 이하를 표현할 경우
- -128 에 1을 빼면 -129가 아닌 127이 됨.
5) 실수타입
float와 double
🍒타입별 메모리 크기와 표현 범위.
(1) float 소수점 7자리까지 표현, f접미사 사용
(메모리 : 4byte = 32bit) : 2^-7 ~ 2^7 -1 =-128~ 127(총 256개)
(2) double 소수점 15자리까지 표현, float 형보다 정밀도가 높음.
(메모리 : 8byte = 64bit) : 2^-15 ~ 2^15 -1 (
🍒실수형의 오버플로우와 언더플로우
- 오버플로우시 무한대가 발생
- 언더플로우는 만날일이 거의 없음. 발생시 값은 0
6) 논리 타입
- boolean , 1byte =8bit
- 참또는 거짓을 저장할 수 있는 데이터 타
- 참 또는 거짓으로 반환 됨.
7) 문자 타입
- char,
- 작은따옴표 사용
- 2byte = 16bit, 유니코드로 저장되어짐.
4. 형변환
1) 자동 형변환
메모리 용량이 작은 타입에서 큰 타입으로는 자동으로 변환 됨.
byte(1) -> short(2)/char(2) -> int(4) -> long(8) -> float(4) -> double(8)
char는 int 타입으로 변경되면 숫자로 보임.
(1) long(8byte)에서 float(4byte)로 넘어갈 때 조심해야함.
float가 long보다 작은 4byte 지만 모든 정수형보다 더 정밀하다.
(2) float가 표현하지 못하는 숫자가 float로 넘어갈 경우 오류
2) 명시적 형변환 = 수동 타입 변환
변환하고자 하는 타입을 ()사용하여 연산자 앞에 적어주면 됨.
5. String
참조타입, “ “로 감싸진 문자열
String 관련 Method
1) .equals
문자열이 일치하는 지 확인하는 Method
1
2
3
String name1 = "Kim Coding";
String name2 = new String("Kim Coding");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
String name1 = "Kim Coding";
String name2 = "Kim Coding";
String name3 = new String("Kim Coding");
String name4 = new String("Kim Coding");
boolean comparison1 = name1 == "Kim Coding"; // true
boolean comparison2 = name1 == name2; // true
boolean comparison3 = name1 == name3; // false
boolean comparison4 = name3 == name4; // false
boolean comparison5 = name1.equals("Kim Coding"); // true
boolean comparison6 = name1.equals(name3); // true
boolean comparison7 = name3.equals(name4); // true
✔️✨문자열 비교시에는 .equals 사용
그밖에 자주 사용되는 String Method
1) length() 메서드
문자열의 길이, 철자 개수를 반환하는 메서드
결과 3
2) charAt() 메서드
해당 문자열의 특정 인덱스에 해당하는 문자를 반환
index의 시작은 0 , length-1 이 마지막 index
결과: 1 / 오류발생(index 3에 해당하는 문자 없음)/ 2
3) compareTo() 메서드
문자열 비교 (대,소문자 구분)
문서파일을 가져와서 문자열 비교시 자주 사용 , equals와 비슷함. equals를 더 많이 사용
같으면 0을 반환, 문자열보다 작으면 음수, 크면 양수 반환
결과⬇️
4) concat() 메서드
해당 문자열 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열 반환 - 연결한다고 생각하
결과: ABCD/ ABCDEFG
5) indexOf() 메서드
특정 문자나 문자열이 처음으로 등장하는 위치를 반환
해당 문자열에 포함되어 있지 않으면 -1반환
문자열, int 사용 등등 다양하게 사용 함.
문자열에서는 indexOf()는 포함하고 있고 특정한 문자를 변경해야 할 경우 사용하고
contains()는 문자열이 포함하는지 확인할때 = true/false로 반환 됨.
결과: 3
결과: true
6) trim() 메서드
- 공백제거기능
결과:⬇️
7) replace() 메서드
해당 문자를 다른 문자로 전체 변경 시 사용
결과:⬇️
8) replaceAll() 메서드
9) toLowerCase()와 toUpperCase() 메서드
Lower - 소문자로 변경
Upper - 대문자로 변경
결과:⬇️
String Method 연습문제 중 힘들었던 것.
연습문제에서 모르는 Method 와 요상한 public int / public static..
나름 열심히 한다고 했는데도 생소한 부분에서는 기가 팍 꺾여서
문제를 풀 엄두도 나지 않았다.
그러나 다시 시도하고 차분하게 마음을 먹었더니 조금씩 풀렸다…
한번 더 짚어보기
int type에서 character로 바꾸는 문제
Character.forDigit(int, 형태(2진수,8진수,10진수…))
-
연습문제에서 숫자 int를 받았을때 char로 바꿔서 출력
-
char type을 int type으로 바꾸는 문제
Charcter.getNumbericValue(char) 사용
-
문자열을 더할때 띄어쓰기하기.
띄어쓰기시 ““만 추가하면 될 거라 생각했는데 공백을 추가해야함.
Leave a comment