@markdown
# Java 변수형
________
- 지역변수는 반드시 초기화 후 사용한다.
- 실수의 default는 double형이다.
- 정수의 default는 int형이다.
<pre><code class="java" style="font-size:14px">형변환
double = int(묵시적 변환)
int = double(명시적 변환)
</code></pre>
* 기본형 : `byte`, `char`, `int`, `float`, `double`, `boolean`
* 참조형 : `String`, `Integer`, `Double` 등 기본형에 대문자로 된 클래스
- 참조형은 기능이 없는 기본형에 추가 기능을 추가하여 기본형 역할을 하면서 동시에 추가 연산 혹은 기능이 있는 타입이다.
- `WrapperClass`라고도 함
- `String` 참조형은 초기화하면 고정적인 문자이다.
- `+` 연산자로 문자 연결시, 문자열이 변하지 않는다.
하지만 `+` 연결을 사용해도 효과가 나타난다.
- `String + String` 연산시 임시로 `StringBuffer`를 만들어 `String + String`을 생성하고, 이것을 `StringString`의 `String` 형태로 변환 후 해당 주소값을 할당하여 연결한 것 처럼 연산하는 것이다.
- 이 과정에서 불필요하게 메모리를 사용하기 때문에 `+` 연산으로 `String` 연결하는 방법은 메모리 낭비이므로 메모리가 제한되는 모바일 애플리케이션 개발에서는 비효율적인 방법이다.
# Java 연산자
________
- `&` `&&` `and` 연산자
- `&` 한개를 사용할 경우, 앞 조건이 거짓이더라도 뒷 조건이 수행된다.
- `&&` 두개인 경우, 앞 조건이 거짓이면 뒤 조건은 수행하지 않는다.
- `|` `||` `or` 연산자
- `|`는 앞 결과에 상관없이 뒷 조건 수행한다.
- `||`는 앞 결과가 참이면 뒤에 문장 수행하지 않는다.
<pre><code class="java" style="font-size:14px">int i = 10;
boolean a = i>10 && ++i > 10;
System.out.println("i= " + i + " a= " + a);
a = i>10 | ++i > 10;
System.out.println("i= " + i + " a= " + a);
</code></pre>
<pre><code class="java" style="font-size:14px">실행결과
i= 10 a= false
i= 11 a= true
</code></pre>
# JavaBeans
________
- `JavaBeans`는 `Java`로 작성된 소프트웨어 컴포넌트
- `JavaBeans`는 `VO`(Value Object), `DTO`(Data Transfer Object)라고도 함
- `DTO`는 `DAO`에서 `Controller`에 넘기는 것
- `JavaBeans`의 관례
- 클래스는 직렬화되어야 한다.(클래스의 상태를 지속적으로 저장 혹은 복원 시키기 위해)
- 클래스는 기본 생성자를 가지고 있어야 한다.
- 클래스의 속성들은 get, set 혹은 표준 명명법을 따르는 메서드들을 사용해 접근할 수 있어야 한다.
- 클래스는 필요한 이벤트 처리 메서드들을 포함하고 있어야 한다.
# 접근제한자
________
- 접근방법 : `public`, `private`, `protected` 등
- 활용방법 : `abstract`, `final`
- `public` : 모든 패키지
- `private` : 정보 은닉 캡슐화, 클래스 내에서만 유효
- `protected` : 같은 패키지 내에서 사용가능, 다른 패키지 상속받으면 가능
- `static` : Class 변수, Class 메소드, Class 로드 시 메모리에 올라옴
- `non-static` : object 변수, object 메소드, new할때 메모리에 올라옴
'Java' 카테고리의 다른 글
Java 문법 - hashCode(), 객체 복제 (0) | 2017.05.02 |
---|---|
Java 문법 - Inner 클래스, 예외처리 (0) | 2017.05.01 |
Java 문법 - 추상클래스, 인터페이스 (1) | 2017.04.28 |
Java 문법 - 접근제한자 활용 (0) | 2017.04.27 |
Java 정규식 표현 정리 (0) | 2017.04.27 |