JVM : Write Once, Run Anywhere
Garbage Collection : 더 이상 사용하지 않는 메모리를 자동으로 정리하는 기능
객체지향의 특징 : Abstraction, Polymorphism(다형성), Inheritance, Encapsulation
형 변환 : 변수의 타입을 다른 타입으로 변환하는 것
묵시적 형 변환 : byte b = 10; int i = (int)b; int i2 = b;
명시적 형 변환 : int i = 300; byte b = (byte) i;
값의 크기가 아닌 타입의 표현 범위가 커지는 방향으로 할당할 경우 묵시적 형변환 발생
byte → short → int → long → float → double ※ 값 손실 발생 가능성!
비트 논리 연산자 & 논리 연산자
& : 두 피 연산자의 비트 값이 모두 1인 경우에만 1 (AND)
| : 두 피 연산자의 비트 값이 모두 0인 경우만 0 (OR)
^ : 두 피연산자의 비트 값이 서로 다르면 1 (XOR)
~ : 피 연산자의 모드 비트를 반전시킴 1의 보수 (NOT)
Random 수 구현하기
Math.random() ⇒ 0≤i<1.0
Random rand = new Random();
rand.nextInt(n) ⇒ 0≤i<n
조건문 (Conditional Statement)
if ( 비교식, 논리형, Method call(return value 활용))
switch ( 정수, 특정 값, Byte, Short, Enum or Method call(return value 활용)) ※ 범위값 사용 불가능
switch (value){
case 1 : 실행 문장1;
case 2 : 실행 문장2; break;
case 3 : 실행 문장3; break;
default : 실행 문장4;
}
위의 switch문은
- case 1 실행시 종료 break가 없기에 case 2 까지 실행 (실행 문장 1, 실행 문장 2)
- case 2 실행시 case 2 만 실행 (실행 문장 2)
- case 3 실행시 case 3 만 실행 (실행 문장 3)
- 1,2,3 값이 아닌 다른 값이 들어오면 default 문장이 실행됨 (실행 문장 4)
반복문
for ( 변수 초기화; 반복 조건 ; 증감식){
실행문
}
초기값, 조건식, 증감식의 위치가 명확, 예측 가능한 반복
while ( 반복 조건){
실행문
[ break; ]
}
예측하기 어려운 반복, break나 continue를 활용많이 함
배열
동일한 타입의 변수를 여러 개를 사용할때 변수의 이름을 각각 주지않고 하나로 묶에 연속된 메모리 공간에서 관리하는 것
Array 만들기
타입 [ ] 변수명; or 타입 변수명 [ ] ⇒ int [ ] points; or String [ ] names;
int [ ] b = new int [ ]{1,3,5,6,7}; ⇒ 생성과 동시에 할당한 값으로 초기화, 길이를 지정하지 않으면 5개만 생성.
만약에 [ ]안에 5보다 큰 값을 넣으면 index 0부터 1,3,5,6,7이 들어가고 나머지는 0으로 초기화
배열의 생성과 초기화
new keyword와 함께 배열의 데이터 타입 및 크기 지정 : new data_type [ length ]
초기화는 기본적으로 0, false 혹은 null로 만들어짐
배열의 사용
배열은 index 번호를 가지고 각 요소에 접근 가능 (index 번호는 0부터 시작)
Arrays.toString() 을 이용하여 for문을 이용하지 않고 string 형태로 출력 가능
for-each with Array
index대신 직접 요소(elements)에 접근하는 변수를 제공함
int intArray [ ] = {1,3,5,7,9};
for( int x : intArray) ⇒ x는 각각 1,3,5,7,9의 값을 가지며 반복함
2차원 Array 만들기
int [ ][ ] intArray; int intArray [ ][ ]; int [ ] intArray [ ];
'SSAFY > Daily' 카테고리의 다른 글
20220126 JAVA I/O & Stream (0) | 2022.02.04 |
---|---|
20220125 JAVA 예외처리 (0) | 2022.02.04 |
20220124 JAVA 추상클래스 (0) | 2022.02.04 |
20220120 JAVA 생성자 및 상속 (0) | 2022.01.20 |
20220118 JAVA 객체지향 프로그래밍 (0) | 2022.01.18 |
댓글