JAVA 기본형 (자료형, 기본자료형) ValueType, Wrapper Class, MAX_VALUE, MIN_VALUE, SIZE, Shift 연산자, 포매팅(printf)
데이터 타입 (1byte : 8bits)
1Byte | 2Byte | 4Byte | 8Byte |
byte | short | int | long |
float | double | ||
char |
프로그램 실행에서 변수 값을 외부에서 주면서 함께 실행시키는 변수를 파라미터 변수라고 한다.
public class java01{
public static void main(String[] args) {
System.out.println("이름 : " + args[0]);
int age = 2022 - Integer.parseInt(arge[1]);
System.out.println("나이 : " + age)
}
}
메모장에 작성 후,
cmd > cd C:\ 접속 > cd jwork 접속 (java file 가지고 있는 폴더) > dir 로 파일 체크
javac java01 로 컴파일 > dir 컴파일된 파일 확인 > java java01 김철수 1998로 매개변수 두가지 입력
>
이름 : 김철수
나이 : 24
출력
public static void main(String[] args){
String name = "홍길동";
int salary = 300;
float bonus = salary * 0.3f;
int total = salary * 12 + (int)bonus;
System.out.println("이름 : " + name + ", 월급 : " + salary + ", 보너스 : " + bonus + ", 총액 : " + total);
}
// bonus를 정수인 salary와 실수인 0.3의 값을 실수로 나타내기 위해 float 타입을 주고, (0.3뒤에 f를 붙여야한다.)
// int 로 하기 위해선 int bonus = (int)(salary * 0.3); 으로 형변환 해주어야 한다.
문자형 char
문자열 String
숫자형 byte, short, int, long
실수형 float, double
논리형 boolean
char String int double boolean 을 주로 사용한다.
상수는 모두 대문자로 사용하며, final을 붙여 변경할 수 없게 한다.
Final PI = 3.14;
public static void main(String[] args) {
boolean b = true;
System.out.println(b);
System.out.println(!b);
System.out.println(10>5);
System.out.println(b==false);
}
true
false
true
false
Wrapper Class
일반 변수로는 처리할 수 없는 MAX_VALUE, parseInt, ... 등의 기능을 처리하기 위해
내장된 Integer, Double, .. 등을 불러 사용한다.
public class java01 {
public static void main(String[] args) {
int a = 100;
String b = "200";
System.out.println(a+b); // +는 변수 a 와 b 를 같이 나타내라는 뜻으로 해석이 됨
// System.out.println(a-b); // 문자열과 숫자는 계산이 되지 않기에 - 는 사용 불가
System.out.println(a-Integer.parseInt(b));
// parseInt()로 숫자로 변형해주는데, Integer를 앞에 붙임으로써,
// 형변환의 타입을 지정해준다.
// parseInt()를 사용하기 위해서는 Wrapper Class를 사용해야 한다.
}
}
public class java01 {
public static void main(String[] args) {
double num1 = 3.14; // double 형은 충분히 3.14 포함.
double num2 = Math.PI; // Wrapper Class Math에서 PI 호출
final double PI = 3.14;
float num3 = 3.14f; // 숫자 뒤에 f를 붙여서 불안정한 것을 제거해준다.
float num4 = (float)3.14; // 명시적 형변환.
System.out.println(num1);
System.out.println(num2);
System.out.println(PI);
System.out.println(num3);
System.out.println(num4);
}
}
3.14
3.141592653589793
3.14
3.14
3.14
MAX_VALUE, MIN_VALUE, SIZE
타입 별 최대 최소 수치 및 크기
public class java01 {
public static void main(String[] args) {
int num1 = 10;
System.out.println(Byte.MAX_VALUE);
System.out.println(Byte.MIN_VALUE);
System.out.println(Short.MAX_VALUE);
System.out.println(Short.MIN_VALUE);
System.out.println(Integer.MAX_VALUE); // Integer를 Wrapper Class로 부른다.
System.out.println(Integer.MIN_VALUE);
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);
System.out.println();
System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE);
System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);
System.out.println();
System.out.println(Byte.SIZE);
System.out.println(Short.SIZE);
System.out.println(Integer.SIZE);
System.out.println(Long.SIZE);
System.out.println(Float.SIZE);
System.out.println(Double.SIZE);
}
}
결과
127 Byte
-128 Byte
32767 Short
-32768 Short
2147483647 Integer
-2147483648 Integer
9223372036854775807 Long
-9223372036854775808 Long
3.4028235E38 Float
1.4E-45 Float
1.7976931348623157E308 Double
4.9E-324 Double
8 Byte
16 Short
32 Integer
64 Long
32 Float
64 Double
쉬프트 (shift) 연산자
비트 이동 연산자
a = 12
2진수로 00000000 00000000 00000000 00001100 이다. (int 는 4Byte이기에 0이 16개 1Byte = 8 Bit)
여기서 a >> 2를 계산하면 오른쪽으로 2칸 밀리기에
00000000 00000000 00000000 00000011 이렇게 계산이 된다.
그럼 2 + 1로 결과는 3이다.
a << 2 라면,
00000000 00000000 00000000 00110000 이 되어,
48이 된다.
증감연산자, 기본 연산, 쉬프트 연산자(비트 이동 연산자)
public class java01 {
public static void main(String[] args) {
int i=5, j=0;
j = j++; // j가 증감되기전에 초기화인 0인 값이 j에 대입되었기에 j는 0으로 고정된다.
System.out.println(i + ", " + j); // 위 내용으로 0이 출력된다.
i = 5;
j = ++i; // i가 증감 된 채로 j에 대입되어 6이 됬으며,
System.out.println(i + "," + j); // i는 위의 증감연산자로 인해 6이 출력된다.
int a = 3, b = 5;
a += 3;
System.out.println(a);
b /= 5;
System.out.println(b);
a = 12;
a >>= 2;
// shift 연산자, 변수 a 의 12값을 이진수로 바꾸어 우측으로 2비트 이동한 뒤, 십진수로 변환
System.out.println(a);
}
}
public class java01 {
public static void main(String[] args) {
int a= 65;
char c = 'B';
System.out.println(a==c); // boolean
System.out.println(a=c); // a가 변수 타입이 int이기에 c가 형변환이 되었다.
System.out.println(a); // 변수 a는 위에 c가 대입되었기에 위에 값과 같이 나온다.
System.out.println(c); // 변수 c를 변환해준적이 없기에 그대로 문자 B출력된다.
System.out.println('B' != 65); // ASCII에 의해 B는 66이기에 65는 아니라서 결과는 TRUE
}
}
false
66
66
B
true
논리 연산자
public class java01 {
public static void main(String[] args) {
int a= 7;
System.out.println(a > 5 && a < 0); // && and
System.out.println(a > 5 || a < 0); // || or vertical bar
}
}
false
true
3항 연산자
public class java01 {
public static void main(String[] args) {
int a = -7;
System.out.println(a > 0 ? a : -a);
// 3항 연산자, (조건 ? 참 : 거짓)
}
}
// 7
String 문자열
public class java01 {
public static void main(String[] args) {
String str = "Hello " + "Java";
System.out.println(str);
String c = "AB";
// String str = 123 + c;
// 이미 메모리에 str에 대한 메모리를 할당 받았기 때문에 재선언이 불가하다.
str = 123 + c; // 123과 c를 문자열로 처리하여 대입한다. str은 String 이기 때문.
System.out.println(str);
}
}
출력에서 포매팅(formatting)(print'f')은 print()와 println() 메써드는 서식을 지정해서 출력하는데,
print("3") // 문자열
print("%d", 3) // 서식과 상수의 대응
print("%d는 %d보다 크다\n", 2+1, 2); //서식에 대응하는 값 입력
- print("총점 %d와 평균 %f는, 87+90+78, (87+90+78)/3");
%d 정수 %f 실수 %c 문자(' ') %s 문자열(" ") 로 표시
"4d"는 4 자리 정수, "%04d"는 0으로 채워져 4자리, %6.2f는 전체 6자리에서 소수점 2자리
\t 는 tab으로 간격을 만듦
public class java01 {
public static void main(String[] args) {
int a = 10;
double b = 3.24;
System.out.printf("%10d\n", a);
System.out.printf("X%9.5f\n",b);
System.out.println("---------------");
System.out.printf("%10f\n\n", a*b);
}
}
10
X 3.24000
---------------
32.400000
Scanner를 이용한 학생 총점과 평균 구하기.
import java.util.Scanner;
public class java01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = "김철수";
System.out.println("국어 점수 입력");
int kor = sc.nextInt();
System.out.println("영어 점수 입력");
int eng = sc.nextInt();
System.out.println("수학 점수 입력");
int math = sc.nextInt();
int total = kor + eng + math;
double avg = total / 3.0;
// System.out.println("이름 : " + name);
// System.out.println("국어 : " + kor + " 영어 : " + eng + " 수학 : " + math);
// System.out.println("총점 : " + total + " 평균 : " + avg);
System.out.println("이름\t국어\t영어\t수학\t총점\t평균");
System.out.printf("%s\t%d\t%d\t%d\t%d\t%5.2f", name, kor, eng, math, total, avg);
// %5.2f 전체 5자리 소수점 2째자리
}
}
JAVA 제어문 (if, switch, for, while, do~while) (0) | 2022.07.22 |
---|---|
JAVA 연산자 (증감, 산술, 시프트, 비교, 비트, 논리, 조건, 대입) (0) | 2022.07.20 |
JAVA Variable declaration rule, 논리형 문자형 정수형 실수형 자료, UNICODE, ASCII CODE, 캐스팅 형변환 (프로모션(promotion), 디모션(demotion, depromotion)) (0) | 2022.07.19 |
JAVA 형변환, Scanner.class, 상수Final (0) | 2022.07.18 |
JAVA 이란 ? (0) | 2022.07.18 |