1. Java 기초 다지기 (3)
1) 자료형에 따른 시프트 연산
int i = -24; // 00000000 00000000 00000000 00011000 =>24
i >>>=2; // 11111111 11111111 11111111 11100111 (1의보수)
System.out.println(i); // 11111111 11111111 11111111 11101000 (2의보수) => -24를 뜻함
// 00111111 11111111 11111111 11111010 >>>= 양수가 됌
byte i2 = -24; // 00011000 => 24 , 11100111(1의 보수) , 11101000(2의 보수) -24
i2 >>>=2; // 11111111 11111111 11111111 11101000
System.out.println(i2); // ( *범정수 확장 ) (byte 크기)
// (음수면 1로 채우고, 양수면 0으로 채움)
// 00111111 11111111 11111111 11111010 => -6
// 연산자 피연산자 연산결과
// 산술연산자 수치형 수치형 a+b = 10
// 비교연산자 논리형 논리값 a>10 true,false
// 논리연산자 논리형 논리값 a>10 || a=10 a>10
// 비트연산자 정수형(int) 정수형 3 >> 2
2) 배열의 선언과 초기화
int arr [] ; // 1. 선언
int [] arr2; // [배열] 1.선언 2.할당 3.초기화
arr = new int [5]; // 2. 할당
arr2 = new int [] {1,2,3};
//int arr2[] = new int [] {1,2,3}; 선언,할당,초기화 동시에 가능
System.out.println(arr);
System.out.println(arr[1]);
System.out.println(arr[4]);
System.out.println(arr2);
double arr3 [];
arr3 = new double [3];
System.out.println(arr3[1]); // 자동초기화: 수치형-0, 논리형-false, 객체형-null
String arr4 [];
arr4 = new String [4];
System.out.println(arr4[1]); // String은 객체타입이기때문에 자동초기화시 null
for (int j=0; j<arr4.length; j++) {
System.out.println(arr4[j]);
}
3) String 끼리 연산
String n1 = "홍길동";
String n2 = "홍길동";
int a1 = 10;
int b1 = 20;
System.out.println(n1 == n2); // ==가 무슨 연산을 하는가? n1,n2는 String. 객체형, 주소값을 나타냄, 주소를 비교함
// == 는 비교연산, 항등연산임. 피연산자로써 산술식(수치,주소)
// *주소를 비교함
System.out.println(n1.equals(n2));
System.out.println(a1 == b1); // *값을 비교함
// System.out.println(a1.equals(b2));
// 객체,배열은 주소비교
// 기본자료형(primitive)는 값을 비교
감사합니당🐷🐷🐷