1. 변수
1)지역변수 : 메소드 안에서 정의된 변수.
- 지역변수는 반드시 초기화를 하여야한다.
2)클래스변수 : 클래스 내부에 선언되는 변수로 프로그램 실행 시 가장 먼저 실행된다.
- static 키워드를 사용한다. (class변수 또는 static변수라고 한다.)
- 지역변수에서는 static을 사용 할 수 없다.
- 초기값을 주지않아도 된다.(자동 초기화가 된다.)
- 보안에 취약한 단점이 있다.
- 메모리에서 언제서 소멸되는지 알 수 없다. (가비지 콜렉터(Garbage Collector) 가 없다.)
3)맴버변수(Instance 변수) : 메소드가 아닌 클래스 내부에 있는 변수
- static을 사용하지 않는다.
- 생성자에 의해 생성된다. (new ~~~)
public class MemberTest{ Demo dem = new Demo(); class Demo{ |
2. 연산자
- 수평적 연산자 우선순위 : 단항연산자와 할당연산자를 제외하고 모두 왼쪽에서 오른쪽으로 우선순위가 내려간다.
- 수평적 연산자 우선순위 : 우선순위가 높은 것 먼저 하게된다.
1) 비트연산자
- +,-,~ 의 2항 연산은 int형으로 확장변환(Promotion)된다. (long,float,long은 int보다 더 크기때문에 형변환 되지 않는다.)
char ch1 = ch >>3 // 이 연산은 컴파일 에러가 발생하게된다. char를 2항연산 할 수 없기때문이다. |
- 3항 연산은 truncation이 발생한다.
short = (true ? short : 1967) // 1967이 int형이지만 shot의 범위를 넘어서지않기 때문에 truncation이 발생하여 에러가 발생하지 않는다. 하지만 short의 단위인 2바이트의 크기를 벗어나게되면 컴파일 에러가 발생하게된다. |
2) 논리연산자
-
int a=5, b=9, x=15; if (a>x && ++b>x){ System.out.println("true"); } else { System.out.println("false"); } System.out.println("b = "+b); |
- &&는 앞의 결과에 따라 거짓이기 때문에 뒤의 연산은 수행하지 않는다. 그렇기 때문에 b의 결과는 9가 출력된다. |
int a=5, b=9, x=15; if (a>x & ++b>x){ System.out.println("true"); } else { System.out.println("false"); } System.out.println("b = "+b); |
- &는 앞의 결과에 관계없이 뒤의 모든 연산을 수행하게 된다. 그렇기 때문에 b의 결과값은 10이된다. |
3. 형변환
1) 암시적,묵시적 형변환
2) 강제적,명시적 형변환 : cast연산자
ps.----------------------------------------------------------
1. 메소드 내에서는 절자적인 성향을 같는다.
2. 자바는 Class 밖에서 변수를 선언 할 수 없다.
3. int 를 String으로 : String.format("%5s", String.valueOf(red))
4. int 를 16진수로 : Integer.toHexString(red).toUpperCase()
5. String 을 int 로 : int red = Integer.parseInt(red);
'Programming > JAVA' 카테고리의 다른 글
자바 배열이란? (2) | 2011.03.24 |
---|---|
자바 제어문(조건/반복/분기) (2) | 2011.03.24 |
JAVA 언어의 법칙 (1) | 2011.03.24 |
JAVA의 특징과 설치 (2) | 2011.03.24 |
자바(JAVA)란? (1) | 2011.03.24 |