Post
KO

[공유] ~ 2.1까지 ) 2~3장 간단히 정리 해봤습니다.

너무 늦게봐서

제대로 정리가 안되네요

주말을 이용해서 정리하도록 하겠습니다~!

  1. 변수

 - 값을 저장할 수 있는 기억 공간.

숫자나 문자에 따라 다양한 변수들이 존재 합니다.

  1. 변수 타입

char : 문자

byte, short, int, long : 정수

float, double : 실수

boolean : 논리 (true, false)를 담을 수 있는 변수 입니다.

기본형 : 실제 값을 저장.

(boolean, char, byte, short, int, long, float, double)

  - 기본형에는 논리형, 문자형, 정수형, 실수형 으로 나뉘어 집니다.

참조형 : 객체의 주소를 저장.

(String, system 등)

  1. 변수 크기

1byte = 8bit

boolean, byte : 1 byte

char, short     : 2byte

int, float         : 4byte

long, double   : 8 byte

byte 크기에 따라서 담을 수 있는 값들도 다르기 때문에

나중에 범위를 넘지 않도록 프로그래밍 할때 신경쓰셔야 합니다. ^^

ps) float나 int 이런건 많이 써봤고, long은 시간 다룰때 써봤던 것 같네요. boolean도 그렇게는 안써본듯 ^^;

  1. 선언 방법

(변수형) 이름;

하시면 됩니다.

float나 double는 뒤에 f나 L을 적어주셔야 됩니다.

  1. 명명 규칙

  2. 대소문자가 구분되며 길이에 제한이 없다.

  3. 예약어(Reserved word)를 사용해서는 안 된다.

—————— 예약어 리스트 —————–

abstract - 추상클래스 또는 추상 메소드로 선언default - switch문에서 적절한 case가 없을경우 실행되는 구문 goto* - BASIC에서 같이 label을 사용해서 이동할 수 있슴package - 프로그램을 패키지로 묶음synchronized - 메소드 동기화 또는 동기화 블럭 생성boolean - 기본 데이터타입. true와 false로 이루어져있슴do - do-while 루프에 쓰임if - else if 제어문에 쓰임private - 메소드, 또는 변수를 클래스 내부에서만 사용가능this - 클래스 자기자신이 만들어낼 객체의 주소값을 의미, this() - 클래스 자신의 생성자 호출break - 가장 가까운 루프문 탈출, switch - case 문 종료double - 기본 데이터타잎. 8byte 실수형implements - 인터페이스 구현에 쓰임protected - 메소드, 또는 변수를 페키지 내에서 또는 상속받은 클래스에만 허용throw **- 임의로 exception 발생byte - 기본 데이터타잎, 바이트형 **else - if else 조건문에 쓰임import - 외부클래스의 path설정public - 클래스, 메소드, 또는 변수를 외부에서 접근 가능케 함throws - 발생한 exception 메소드 밖으로 넘김switch - case 선택 제어문에서 쓰임enum - Enumeration 으로 정의된 클래스의 타입을 나타낼때instanceof - 두 객체의 타입을 동일성 검사return - 메소드 리턴transient - 객체 직렬화대상에서 제외시킴try - catch - 예외를 처리하는 구문extends - 클래스 상속시 쓰임int - 기본 데이터타잎. 4byte 정수 타입short - 기본 데이터타잎, 2byte 정수 타입char - 기본 데이터타잎. 2byte character 타입final - 메소드, 변수 변형 불가능interface - 인터페이스로 선언static - 변수 또는 메소드를 static 메모리 영역에 선언 (공용의 의미)void - 리턴값이 없음class - 클래스. finally - try catch문에서 예외발생 여부와 상관없이 무조건 실행되는 구문long - 기본 데이터타잎 8byte정수 타입strictfp ** - 부동소수타입 계산volatile 스레드 이용시 변수의 동기화 문제해결 5.0이상에서 정상작동const*float - 기본 데이터타잎 4바이트 실수native - 자바이외의 프로그래밍 언어로 작성된 부프로그램을 호출 할 때 사용super - 부모클래스의 객체의 주소값을 나타냄super() - 부모의 생성자를 호출while - 반복문continue - 루프문의 조건절로 이동하여 조건 비교for - for 루프new - 인스턴스를 새로 만들때 쓰임

[출처] 자바 예약어 작성자 앨비쓰

  1. 숫자로 시작해서는 안 된다.

 - top10 (ok) , 7up (no)

  1. 특수문자는 ‘_‘와 ‘$’만 허용 된다.

명명 규칙 권장 사항 (나름 중요한 것 같습니다.)

1). 클래스 이름의 첫 글자는 항상 대문자로 한다.

  - 변수와 메서드 이름의 첫 글자는 항상 소문자로 한다.

2). 여러 단어 이름은 단어의 첫 글자를 대문자로 한다.

  - lastIndextOf 이렇게 되어 있는데, 실제로도 코딩 하실때 거의 그렇게 하게 됩니다.

    고객(member)을 조회한다 이런게 있다면, 메소드 명도 selMemeberList 뭐 이런 방식으로요. ㅎㅎ

3). 상수의 이름은 대문자로 한다. 단어는 ‘_‘로 구분한다.

  -  이건 몰랏네요.


  1. 변수, 상수, 리터럴

1) 변수 (variable) - 하나의 값을 저장하기 위한 공간

2) 상수 (constant) - 한 번만 값을 저장할 수 있는 공간

3) 리터럴(literal) - 그 자체로 값을 의미하는 것

  1. 변수의 기본 값과 초기화

 변수의 초기화 : 변수에 처음으로 값을 저장하는 것

  * 지역 변수는 사용되기 전에 반드시 초기화 해주어야 한다.

ps) 추후에 초기화 하는 내용은 추가하도록 하겠습니다. ㅎㅎㅎ

  1. 문자와 문자열

  추후

  1. 정수의 오버 플로우 (overflow)

 추후

  1. 형변환 (Casting)

 - 값의 타입을 다른 타입으로 변환하는 것이다.

  Integer i = 0;

  int b =0;

  b= (int) i;

  String val = “1”;

   int i = 0;

    i = Integer.parseInf(val);

ps) 이런 저런 방법이 많으니 나중에 좀더 추가하도록 하겠습니다.

      Collection 에서도 List나 뭐 다른 걸로 변환 할 때도 쓰이기 때문에 ㅎㅎ

—————————————- 연산자 ————————————————

———— 2013.02.03 ——————–

  1. 연산자

 연산자는 프로그래밍 언어에서 가장 기본적이면서도 중요한 요소.

연산자 분류는

단항 연산자

산술 연산자

비교 연산자

논리 연산자

삼항 연산자

대입 연산자

등이 있다.

연산자의 진행 방향에 관한 내용이 있는데

이부분은 충분히 ()를 사용하시면 제어 하 실 수 있을 것 같습니다.

책 내용에 따르면

곱셈연산자 (*)는 왼쪽에서 오른쪽으로 실행 되고

대입연산자 (=)는 오른쪽에서 왼쪽으로 진행 됩니다.

  1. 연산자 우선순위
  • 산술 > 비교 > 논리 > 대입. 대입은 제일 마짐가에 수행된다.

  • 단한(1) > 이항(2) > 삼항 (3). 단항 연산자의 우선순위가 이항 연산자 보다 높다.

  • 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.

  1. 단항 연산자

 - 증감 연산자 (-, ++, –)

 일반적으로 단항 연산자는 피연산자의 왼쪽에 위치하지만, 증가 연산자 ‘++’와 감소 연산자 ‘–‘는 양쪽 모두 가능하다. 단, 연산자를 어느 위치에 놓는가에 따라서 연산 결과가 달라질 수 있다.

ex)

for(int i=0; i<10 ; i++)

{

   // i 는 포문을 한바퀴 진행 한 다음 i = i+1 로 된다.(진행 후 1증가)

}

for(int i=0; i<10 ; ++i)

{

  // i 는 1 부터 시작 된다. (1증가 후 진행)

}

ps ) 단항 연산자 가 일반 연산보다 속도가 빠르다고 합니다.

(i=i+1< i++)

 - 부호 연산자 -, +

부호 연산자는 피연산자의 부호를 변경하는데 사용되며, boolean 형과 char형을 제외한 나머지 기본형에 사용할 수 있다.

 - 비트전환 연산자 ~

비트 전환 연산자 ‘~’는 정수형과 char형에만 사용될 수 있으며, 피연산자를 2진수로 표현했을 때, 0은 1로 1은 0으로 바꾼다. 그래서 연산자 ‘~’에 의해 비트전환 되고 나면, 피연산자의 부호가 반대로 변경된다.

ps) 정확하게 감은 오지 않지만

책 내용에서는 bit에 저장된 0,1 값을 반대 값으로 바꿔준다고 적혀있네요.

  • 논리 부정 연산자 !

 이 연산자는 boolean형에만 사용할 수 있으며, true는 false로 flase는 true로 변경한다.

연산자 ‘!’를 이용해서 한번 누르면 켜지고, 다시 한번 누르면 꺼지는 TV의 전원버튼과 같은 토글버튼(toggle button)을 논리적으로 구현할 수 있다.

  1. 산술 연산자

 - 사칙 연산자 ( +, -, *, /)

 - 나머지 연산자 (%)

   -> 10%3 하면 10을 3으로 나눈 후 나머지 값이 나오게 된다. 따라서 1이 나온다.

 - 쉬프트 연산자 «, », »>

 쉬프트 연산자는 정수형 변수에만 사용할 수 있는데, 피연산자의 각 자리(2진수로 표현했을 때)를 오른쪽 또는 왼쪽으로 이동(shift)한다고 해서 쉬프트 연산자 (shift operator)라고 이름 불려졌다.

 결과값 공식은

    x « n  -> (x * 2^n) 의 결과 값과 같다.

    x » n  -> (x / 2^n) 의 결과 값과 같다.

  1. 비교 연산자.

 - 대소비교 연산자  <, >, <=, >=

 - 등가비교 연산자 ==, !=

ps) if 문이나 반복문 등에서 많이 쓰임.

  1. 논리 연산자 &&,  
  (OR 조건 )  - if( i = 2    j = 3) (i가 2 또는 j가 3일때 참)

&&(AND 조건) - if( i = 2 && j = 3) (i가 2이고 j도 3일때 참)

  1. 비트 연산자 &, , ^
(OR연산자) - 피연산자 중 한 쪽의 값이 1이면, 1을 결과로 얻는다. 그외는 0을 얻는다.

&(AND연산자) - 피연산자 양 쪽이 모두 1이어야 1을 결과로 얻는다. 그 외에는 0을 얻는다.

^(XOR)연산자 = 피연산자의 값이 서로 다를 때만 1을 결과로 얻는다. 같을 때는 0을 얻는다.

책 70페이지 [표 3 -15]  참조

  1. 그외 연산자

 - 삼항 연산자    :

(조건식) ? 식1 : 식2

result = (x>0) ? x : -x;

ps. 자주 써보지 않으면 더 난해해지는 같음. ㅎㅎㅎ 코드는 줄어 들지만 가독성은 떠러질수도..

 - 대입 연산자    = , op=

자바의 정석 2~3장 요약

This article is licensed under CC BY 4.0 by the author.