-
day13 - JAVA (자바 개요, 환경 설정, 식별자, 자료형, 연산자)KIC/JAVA 2021. 7. 14. 01:53반응형
[자바의 처리 구조]
-> 자바 프로그램은 컴퓨터 내에서 자바 가상 머신(Virtual Machine: JVM) 으로 불리는 표준화 가상의 컴퓨터에서 실행
[자바의 특징]
-> 배우기 쉽다.
-> 객체 지향 프로그래밍
-> 가비지 컬렉션
-> 플랫폼 독립성
-> 멀티 스레드
[식별자]
-> 보고 느낄 수 있는 모든 사물(객체)들을 각각 구별할 수 있는 것을 의미
[자바의 자료형]
[변수]
-> 변수 선언 관련 코드 예시
package javaPro.java_var; public class VarEx1 { public static void main(String[] args) { //프로그램의 시작점 //변수의 선언 및 초기화 byte b1 = -22; byte b2; //변수의 선언. b2 저장공간 메모리 1바이트 할당. //바이트로 저장할 수 있는 값의 범위. -128 ~ 127 저장가능 b2= -128; //변수의 초기화 b1=127; short s1 = -220; int i1 = 100; long l1 = 1000l; //변수값 내용을 화면에 출력하기 //System.out.println : 화면에 값을 출력. System.out.println("b1=" + b1); //b1=-22 System.out.println("s1="+s1); System.out.println("i1="+i1); System.out.println("l1="+l1); float f1 = 1.0f; double d1 = 1.0; double d12 = 1d; System.out.println("f1=" + f1); System.out.println("d1=" + d1); /* * 실수형 리터널의 기본자료형은 double 임 * float 리터널로 표시하기 위해서는 접미사를 붙여야 한다. * F,f : float 리터널 * D,d : double 리터널 * L,l : long 리터널 */ } } /* * 자료형 * 기본형 - 논리형 : boolean(1) * 문자형 : char(2) * 정수형 : byte(1), short(2), int(4), long(8) * 실수형 : float(4), double(8) * 참조형 - 배열, 클래스, 인터페이스 * */
-> 형변환 예시
package javaPro.java_var; public class VarEx2 { public static void main(String[] args){ byte b1 = 10; short s1 = 20; int i1 = 100; long l1 = 1000; i1 = b1; s1 = (short) l1; float f = l1; l1 = (long) f; } }
[형변환 원리]
큰자료형 <= 작은 자료형 : 자동형변환
작은자료형 <= 큰자료형 : 명시적 형변환
-> 문제가 생길 경우에는 ide가 워닝을 띄워준다.
[자료형 크기 순서]
byte < short < int < long < float < double
char
A=B : 같다 의 의미가 아니고, 대입의 의미임. B의 값을 A에 입력함.
lvalue : 대입연산자의 왼쪽의 값. 반드시 변수여야함.
rvalue : 대입연산자의 오른쪽의 값, 변수, 리터널, 수식 가능
[연산자]
[산술 연산자 주의점 예시]
package javaPro.java_op; /* * 산술 연산 * / : 나누기 연산자 * 정수 = 정수/정수(int 이하) * % : 나머지 연산자 * 나머지연산의 결과값의 부호 피젯수(나누어 지는수) 의 부호와 같다. */ public class OpEx6 { public static void main(String[] args){ System.out.println(10/8); // 1 System.out.println(10/-8); // -1 System.out.println(-10/8); // -1 System.out.println(-10/-8); // -1 System.out.println(10%8); // 2 System.out.println(10%-8); // 2 System.out.println(-10%8); // -2 System.out.println(-10%-8); // -2 } }
[비트 연산자 예시]
package javaPro.java_op; /* 비트연산자 : &(and),|(or),^(XOR),~(not) : 정수값, */ public class OpEx7 { public static void main(String[] args) { System.out.println("6 & 3 = "+ (6 & 3)); /* and 연산 * 6 : 0110 * 3 : 0011 * -------- * & 0010 : 2 */ System.out.println("6 | 3 = "+ (6 | 3)); /* or 연산 * 6 : 0110 * 3 : 0011 * -------- * | : 0111 : 7 */ System.out.println("6 ^ 3 = "+ (6 ^ 3)); /* 같으면 0, 다르면 1 * 6 : 0110 * 3 : 0011 * -------- * ^ : 0101 : 5 */ System.out.println("~10"+ ~10); // -11 /* * 10 : 00001010 * --------------- * ~ : 11110101 : ? */ } }
[shift 연산자 예시]
package javaPro.java_op; /* * shift 연산자 : 비트이동 연산자 * << n : 왼쪽으로 n비트만큼 이동. 오른쪽의 n비트 0으로 채움 * >> n : 오른쪽으로 n비트만큼 이동. 왼쪽의 n비트 부호비트 채움. * >>>n : 오른쪽으로 n비트만큼 이동. 왼쪽의 n비트 0으로 채움. */ public class OpEx8 { public static void main(String[] args) { System.out.println("8<<2 : " + (8<<2)); //32 /* 실제로는 32자리이지만 8자리로 간략하게 표현함 * 8 : 00001000 * <<2 : 00100000 : 32 */ System.out.println("8>>2 : " + (8>>2));//2 /* 8 : 00001000 * >>>2 : 00000010 : 2 */ System.out.println("8>>>2 : " + (8>>>2));//2 /* 8 : 00001000 * >>>2 : 00000010 : 2 */ System.out.println("-8<<2 : " + (-8<<2));//-32 /* -8 : 11111000 * << 2 : 11100000 : -32 */ System.out.println("-8>>2 : " + (-8>>2));//-2 /* -8 : 11111000 * >> 2 : 11111110 : -2 */ System.out.println("-8>>>2 : " + (-8>>>2));//1073741822 /* -8 : 11111000 * >>>2 : 00111110 (실제로는 32자리이기 때문에 1073741822 나옴) */ } }
[대입 연산자 예시]
package javaPro.java_op; public class OpEx9 { // 대입 연산자 public static void main(String[] args){ int num = 100; System.out.println(num); num+=10; // num = num + 10; System.out.println(num); num/=10; // num = num / 10; System.out.println(num); num*=2+3; // num = num * (2+3); System.out.println(num); byte b = 1; b *=2; //b = b*2 b = (byte) (b*2); // 형변환 해줘야 함 System.out.println(b); //4 b *=2; System.out.println(b); //8 b *=2; System.out.println(b); //16 b *=2; } }
300x250'KIC > JAVA' 카테고리의 다른 글
day18_1- JAVA (자바 ,static 메서드, 인스턴스메서드, 메서드 오버로딩, 생성자, this) (0) 2021.07.15 day17- JAVA (자바 ,객체지향언어, 변수, 클래스변수, 인스턴스변수, 메서드, 매개 변수) (0) 2021.07.15 day16 - JAVA (자바 예제) (0) 2021.07.14 day15 - JAVA (배열, 다차원 배열, 향상된 for문, 가변 배열) (0) 2021.07.14 day14 - JAVA (반복문, break, continue, if문, SWITCH 문) (0) 2021.07.14