자바의 정석 스터디

Jay_u·2023년 8월 12일
0

스터디

목록 보기
1/5


public class VariableTypes {
	int 인스턴스 변수;
    static int 클래스 변수;
}

클래스 변수는 클래스를 인스턴스화 하지 않더라도 어디서든 접근할 수 있는 변수이다.

static 클래스 변수를 쓰는 이유
고정값이 있고 어디서든 사용해야 할 때
ex) 숫자의 시작 - 0
ex) 게시판의 첫 번째 글의 숫자는 1이다 <= 약속 , 이때 약속의 값은
static 변수로 선언하는 경우가 있다.


  • 자동타입 변환
    작은 타입이 => 큰 타입으로 자동 변환
    int => long으로 자동으로 변환된다.

  • 강제타입 변환
    언제 쓰이나?
    : 똑같은 데이터지만 형태를 바꿔서 보고싶을 때
    게시판의 특정 아티클을 다른 게시판으로 바꾸고 싶을 때
    목록으로 볼때와 detail한 뷰로 볼 때

vo로 생각해봤을 때 글제목만 있는 titleVO와
detatilVO에는 글제목, 내용, 작성일자 등 다양한 정보가 있을 때
detailVO를 titleVO로 캐스팅하여 불필요한 정보를 제외하고 리스트업할 수 있다.


result = ( x > y ) ? x : y;

if(x > y) 
	result = x;
else 
	result = y;

삼항연산자를 활용한 방식과 코드는 길지만 읽기 편한 연산자 사용법
어떤게 더 가독성이 좋을까? (마구잡이 if else문은 지양해야 하지만 가독성은 편하다. 소스코드는 우리 모두의 것이기에 후자 방식을 활용하면 좋다.)


if else는 분기를 위한게 아니다.
예외를 처리하기 위한 것이다.
게시판 페이징 처리에서 현재 게시글이 1~10개만 있고
1페이지만 존재한다면
pageNo로 2 이상 요청하면 안되고 음수 요청하면 안되고
0 요청하면 안되고 숫자가 아닌 다른 문자 요청하면 안된다.
이런 모든 예외처리를 해주기 위해서 사용하는 것이다.


for(무조건 한번 실행하는 식, loop문을 제어하는 제어자, 제어권을 갖고 있는 제어자)

단순히 int = 0; i < n; i++ 이 아니다.

개선된 for문은 for문을 제대로 못쓰는 개발자들을 위한 것이다..
데이터가 수십억개인데 collection을 전부 돌 수는 없다.


while문을 하나의 엔진이라고 생각하자
예컨데 서버, 톰캣은 계속해서 반복해서 도는 while문이다.
그러다가 예외가 터지면 톰캣이 잡아채는 것처럼

고수 개발자는 while문을 돌다가 예외처리한다.


숙제 어노테이션은 뭘까? @
어노테이션 안으로 들어가면
@interface 라고 되어 있는데 @가 왜 붙어 있을까?

profile
정확한 정보를 전달할려고 노력합니다.

0개의 댓글