VariableType.java
1. doc 주석: 누군가 내꺼를 사용할 때 편의성을 위한 설명글
/**
doc 주석
@author chichi
@since 2020.07.21
**/
2. 한줄주석: 주석 앞 // or Ctrl+Shift+C
3. 여러줄주석: /별 여러줄 별/
int a;
int a ;
변수타입 변수명 (;<- 한 줄 끝났다)
1. 변수 Varibale
2. 변수의 선언 - 이름 선점
3. 변수의 초기화
int name; //int는 정수
name = 10; //변수의 초기화
int name2 = 20; //변수의 선언 및 초기화
name2 = 40; //변수값 변경 가능
System.out.println(name2); // 40이 나오겠죠?
1. 대소문자를 구분하며, 길이의 제한이 없다. (첫글자는 소문자)
byte nAmefdfds;
2. 예약어 (keyword, reserved word)는 사용할 수 없다.
2-1. 이클립스에서 자주색 = 예약어
int tRUe;
3. 숫자로 시작하면 안 된다.
int top5; //OK
int 5top; //ㄴㄴ
4. 특수문자 '_', '$'만 사용 가능하다.
int $h_arp;
1. 클래스명의 첫글자 = 대문자
public class VariableBasic {
public static void main(String[] args) {
int name;
클래스명: VariableBasic
메소드명: main() 명칭 뒤에 소괄호 있는 애들
변수명: name
2. 여러 단어로 이루어진 경우: 첫번째 이후 단어 첫글자 = 대문자
3. 상수의 이름 = 모두 대문자. 두단어 이을 때: '_' 사용
final int MAX_VALUE = 100; // final 붙으면 상수
4. 한글은 사용하지 않는다.
1) 크기별 분류 (1byte = 8bit)
2) 종류
Q. 변수 power를 선언하고 true의 값으로 초기화하여라.
//변수명 power 값 true
//??? power = true
boolean power = true;
Q. 변수 ch를 선언하고 'A'의 값으로 초기화하여라.
//변수명 ch 값 'A'
char ch = 'A';
char ch2 = '\u0041'; //유니코드, 41=16진수
char ch3 = 65; //10진수
Q1. 변수 b1에 50의 값을 저장하여라.
byte b1 = 50;
Q2. 변수 s1에 25000의 값을 저장하여라.
short s1 = 25000;
Q3. 변수 i1에 15억의 값을 저장하여라.
int i1 = 1500000000;
Q4. 변수 l1에 53억의 값을 저장하여라.
long l1 5300000000L; // 자바는 int범위 넘어도 int로 인식하기때문에 L을 뒤에 붙여줌으로서 long값 알려줘야함
Q1. 변수 f1에 3.141592를 저장하여라.
float f1 = 3.141592F; 기본이 double 이여서 F붙여줘야함
Q2. 변수 d1에 3.141592531548를 저장하여라.
double d1 = 3.141592531548
1byte 2byte 4byte 8byte
논리 boolean
문자 --------- char
정수 byte---- short -- int^ --- long
실수 ------------------ float----double^ (^ 붙은건 대표자료형)
문자형) 음/양없고 0~양수
char -> 2byte = 16bit => 0~2^16-1
정수형) 비트의 한칸은 부호에게 배정
String name = ''; //아무것도 없는 주소가 있는 것 = 빈집
String gibon = null; //집 자체가 없음
String r1 = "====\n--\t--"; // '\' 제외 아무거나 무제한 삽입 가능
// \n 엔터 \t 탭만큼 띄우기
Q1. 변수 a1에 7의 값을 저장해
int a1 =7
Q2. 변수 s2에 "9"의 값을 저장해
String s2 = "9";
Q3. a1과 s2의 합을 변수 result1에 저장해
// int + String => String + String = String
String result1 = a1 + s2;
System.out.println(result1); // 79
Q4 ""+true 의 출력값? ""+null의 출력값?
String + boolean => String + String => String
"" + "true" => "true"
System.out.println(""+true); // true
String + null은 참조형기본값 => String + String => String
System.out.println(""+null); // null
byte b2 = 126; //byte 최대저장값 127
b2++; //++; b2가 가지고 있는 값을 한단계 올려준다
System.out.println(b2); //127
b2++;
System.out.println(b2); //128이 나올 것 같지만 -128이 나옴
int sip = 'A';
System.out.println(sip);
char ten = (char)10;
System.out.println(ten); //이거 왜 공백 두줄나오는거지?
Q1. byte형 변수 b3에 100의 값을 저장
byte b3 = 100;
Q2. char형 변수 c3에 'K'의 값을 저장
char c3 = 'K';
Q3. int형 변수 i3에 400000의 값을 저장
int i3 = 400000;
Q4. float형 변수 f3에 3.14의 값을 저장
float f3 = 3.14F;
캐스팅 흐름도
byte → short, char → int → long → float → double
Q5. c3에 저장된 값의 10진수값을 변수 result2에 저장하고 출력
int result2 = c3; // or int result2 = (int)c3;
System.out.println(result2);
Q6. f3에 저장된 값중 정수만 취득하여 result3에 저장하고 출력
int result3 = (int)f3; // float -> int 로 오버플로우 방지
System.out.println(result3);
예제1. 변수 a 선언, 8의 값으로 초기화
int a = 8;
예제2. 변수 b 선언, 3의 값으로 초기화
int b = 3;
예제3. 변수 result4 선언, a의 값을 b의 값으로 나누기한 결과로 초기화. (정수)
int result4 = a/b;
예제4. 변수 result5 선언, a의 값을 b의 값으로 나누기한 결과로 초기화. (실수)
//double은 근사치, float은 정확한 값
float result5 = (float)a/b;
float result5 = (float)(a/b);
//1. (float)*a/b 순서대로 연산, a가 먼저 float으로 바뀜
//2. float / int 연산되니까 int가 float으로 바뀌는 결과 나옴.
**