자바 기본 구조와 연산자
- Hello.java 기본 구조
12345678910111213141516171819202122/** 소스 파일 : Hello.java*/public class Hello {public static int sum(int n, int m) {return n + m;}// main() 메소드에서 실행 시작public static void main(String[] args) {int i = 20;int s;char a;s = sum(i, 10); // sum() 메소드 호출a = '?';System.out.println(a); // 문자 '?' 화면 출력System.out.println("Hello"); // "Hello" 문자열 화면 출력System.out.println(s); // 정수 s 값 화면 출력}} - 위 소스에서 다음 용어에 해당하는 것은?
- 클래스 :
- 주석문 :
- 변수/필드
- 메소드(Method) :
- 식별자
- 클래스, 변수, 상수, 메소드 등에 붙이는 이름
- 식별자의 원칙
- ‘@’, ‘#’, ‘!’와 같은 특수 문자, 공백 또는 탭은 식별자로 사용할 수 없으나 ‘_’, ‘$’는 사용 가능
- 유니코드 문자 사용 가능. 한글 사용 가능
- 자바 언어의 키워드는 식별자로 사용불가
- 식별자의 첫 번째 문자로 숫자는 사용불가
- ‘_’ 또는 ‘$’를 식별자 첫 번째 문자로 사용할 수 있으나 일반적으로 잘 사용하지 않는다.
- 불린 리터럴 (true, false)과 널 리터럴(null)은 식별자로 사용불가
- 길이 제한 없음
- 대소문자 구별
- 자바의 데이터 타입 : 기본 타입 : 8 개
- boolean
- char
- byte
- short
- int
- long
- float
- double
- 문자열 String : 문자열은 기본 타입이 아님
- 리터럴
- 15 / 015 / 0x15 / 0b0101
십진수 / 8진수 / 16진수 / 2진수 - 0.1234 1234E-4 0.1234f 0.1234D
- \t \r \n \\ \’ \”
- 15 / 015 / 0x15 / 0b0101
- 상수
- final int LENGTH = 20;
- static final double PI = 3.141592;
- 강제 타입 변환(Cast 연산)
- double d = 1.9;
- int n = (int)d; // n = 1
- Scanner 클래스 : 읽은 바이트를 문자, 정수, 실수, 불린, 문자열 등 다양한 타입으로 변환하여 리턴
12345678910111213import java.util.Scanner;public class ScannerEx {public static void main(String args[]) {Scanner scan = new Scanner(System.in);String name = scan.next();int age = scan.nextInt();System.out.println("이름 : " + name + " 나이 : " + age);scanner.close();}} - 연산자
- 산술연산자 : 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)
- 비트연산자 : &, | ^ ~
- 시프트연산자 : <<, >>, >>>
- 비교연산자 : <, >, <=, >=, ==, !=
- 논리연산자 : ~, ^, ||, &&
- 대입연산자 : =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=
- 증감연산자 : ++, —
- 조건연산자 : ? :
- 연산자 사용 예제
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647public class OperatorTest {public static void main(String[] args) {// TODO Auto-generated constructor stubint a = 10; //2진수 : 00001010int b = 6; //2진수 : 00000110int c = 0;c = a + b;System.out.println(a + " + " + b + " = " + c ); //16c = a - b;System.out.println(a + " - " + b + " = " + c ); //4c = a * b;System.out.println(a + " * " + b + " = " + c ); //60c = a / b;System.out.println(a + " / " + b + " = " + c ); //1c = a % b;System.out.println(a + " % " + b + " = " + c ); //4c = a & b; //ANDSystem.out.println(a + " & " + b + " = " + c ); //2 00000010c = a | b; //ORSystem.out.println(a + " | " + b + " = " + c ); //14 00001110c = a ^ b; //XORSystem.out.println(a + " ^ " + b + " = " + c ); //12 00001100c = ~ a; //NOTSystem.out.println( " ~ " + a + " = " + c ); //-11 11110101c = a >> 1;System.out.println(a + " >> 2" + " = " + c ); //5 00000101c = a >> 2;System.out.println(a + " >> 2" + " = " + c ); //2 00000010c = a << 2;System.out.println(a + " << 2" + " = " + c ); //40 00001110c = a >>> 2;System.out.println(a + " >>> 2" + " = " + c ); //5 00001100c = -10 >> 2;System.out.println("-10 >> 2" + " = " + c ); //-3//-10 : 11111111 11111111 11111111 11110110//-3 : 11111111 11111111 11111111 11111101c = -10 >>> 2;System.out.println("-10 >>> 2" + " = " + c ); //1073741821//-10 : 11111111 11111111 11111111 11110110//1073741821 : 00111111 11111111 11111111 11111101}}