연산자(Operator)
나머지연산자(%) : 피연산자 중 하나라도 실수일 때 실수형 연산을 진행 둘 다 정수일 경우 정수형 연산 진행
복합대입 연산자(+= , *= ….): 직관적으로 이해하라
예시) a+= b : a를 b만큼 증가시켜라, a = b b를 a에 대입해라 / a == b a와 b는 같다
비트연산자 : 변환과정이 생략되기 때문에 연산이 빠르다. 경우의 수가 증가하게 됨.
단항연산자 : prefix(바로 진행) , postfix(다음 연산에서 진행)
논리 연산자
&&: A와B모두 true이면 연산 결과는 true (논리 AND)
||: A와 B 둘 중 하나라도 true이면 연산 결과는 true(논리 OR) !: 연산 결과는 A가 true이면 false, A가 false이면 true(논리 NOT)
비트 쉬프트 연산자(>>, >>>)의 차이
10001000 >>>2 → 00100010
10001000 >>2 → 11100010
※ 비트 쉬프트 연산자 <<는 자신의 수를 찾기 전까지 0을 만듬
00000000 00000000 00000000 00001000 <<29 → 0
00000000 00000000 00000000 00001000 <<30 → 0
00000000 00000000 00000000 00001000 <<31 → 0
00000000 00000000 00000000 00001000 <<31 → 8
* 비트연산자를 현업에서 사용하는경우 : a, b를 서로 스왑할 때
*Short Circuit Evolution
- AND 연산에서 첫번째 연산이 false일 경우, 다음 연산은 진행하지 않음
- OR 연산에서 첫번째 연산이 True일 경우, 다음 연산은 진행하지 않음
pulbic static void main(String[] args){
int num1=0, num2-0;
boolean result;
// SCE에 따라서 num2는 증가하지 않는다.
result = (num1+=10)<0 && (num2+=10)>10;
System.out.println(“”result=” + result);
System.out.println(“num1=”+num1+”num2=”+num2);
// SCE에 따라서 num2는 증가하지 않는다.
result = (num1+=10) > 0 || (num2+=10) > 10;
System.out.println(“”result=” + result);
System.out.println(“num1=”+num1+”num2=”+num2)
}
/*====================
결과 result =false
Num1= 10 , num2 = 0;
result =true
Num1= 20 , num2 = 0;
======================*/
반복문
while: 조건에 만족하지 않으면 단 한번도 수행하지 않을 수 있다.
do~while: 조건에 맞지 않더라도 일단 한번 수행한다.
for: 시작변수 종결변수 조건변수
반복문에서의 continue와 break
continue: (뒷부분 무시하고) 계속해라
break: 멈춰라 (그리고 가장 가까운 반복문 하나를 나가라)
재귀호출
복사본이 여러 개 만들어져서 사용된다고 이해하는 것이 맞다! (내부적으로도 이렇게 작동)
클래스와 인스턴스
객체: 현실세계의 모든 것! 속성(데이터, 변수) + 기능 (행위, 메소드)
클래스: 객체를 만들기 위한 틀(설계도) 변수 + 메소드
인스턴스: 클래스란 설계도를 가지고 객체를 실체화한 것 (각각의 인스턴스는 독립적이다.)
- 객체들끼리 소통이 가능해야한다.
- Final 변수는 상수화한다.
- Import는 설계도 위치를 명시하는 것이다.
객체 생성과 참조관계
FruitSeller seller1 = new FruitSeller();
FruitSeller seller2 = seller1;
// seller2 와 seller1 참조값은 같다
// Null은 아무것도 참조하지 않음을 의미하는 키워드
생성자(Constructor)
- 생성자는 메소드이다.
- 인스턴스 생성 시에 단 한번만 호출
- 생성자의 명명은 클래스 이름하고 완전히 같아야 한다(첫글자 대문자)
*생성자의 역할
- 메모리 할당
- 초기화
- 생성자는 일반 메소드처럼 호출될 수 없으며 반환 자료형을 가질 수 없다(void 조차)
- 생성자는 클래스와 동일한 이름을 가져야 한다(대소문자 구분까지 엄격하게)
- 생성자는 객체를 생성하는 과정에서 new 생성자()의 형태로 딱 한번만 호출된다.
static(클래스 변수)
- 탄생시점의 개념(메모리 할당) : static이라는 변수는 클래스가 로딩될 때 할당을 받음
- 공유
그 외
- 전역변수: class 안에 직접적으로 정의된 변수
- 지역변수: Method 안에 정의된 변수
- 메모리를 할당받는 시점
- 클래스 로딩될 때: 클래스 변수(static이 붙으면 클래스 변수, static 변수)
- 인스턴스 생성될 때: 인스턴스 변수
- static 변수(스텐플러) & instance 변수(딱풀)
'교육 및 세미나 > 신입사원 교육' 카테고리의 다른 글
6일차(2018.01.10) (0) | 2018.01.12 |
---|---|
5일차(2018.01.09) (0) | 2018.01.12 |
4일차(2018.01.05) (0) | 2018.01.12 |
3일차(2018.01.04) (0) | 2018.01.09 |
1일차(2018.01.02) (0) | 2018.01.09 |