자바 기본 특징

대소문자를 구분한다.

Java KeyWord : 예약어로 식별자에 이름을 붙이지 못한다.  이클립스에서는 자주색으로 바뀜

클래스 작성시 관습적으로 지켜지는 식별자를 명명하는 방법이 정해져잇다 보통 약속이기 때문에 많이 따르는데

  • class 이름은 첫글자를 대문자로 시작하고, 나머지 글자를 소문자로 명명한다.
  • method 이름은 모두 소문자로 한다.
  • variable 이름도 모두 소문자로 한다.
  • constant 이름은 모두 대문자로 한다.
Java Data Types

기본형:기본적(일반적)인 값을 기억하는 변수의 type

숫자

  • 정수형:byte(1), short(2), int(4), long(8),char(2)
  • 실수형:float(4), double(8)

논리:boolean (참,거짓)

보통 프로그래밍 할때는 int, double  많이 쓴다. 

char:글자한개 저장이 목표

참조형

class, interface, array, enum...

java는 선언과 동시에 각 타입에 맞는 default 값이 들어간다. 

배열의 경우에는 각 배열이 0으로 채워지고 boolean은 false 값이 들어가있다.


형변환(Casting) 

byte < short < int < long < float< double (*float가 long 보다 저장하는 범위가 많아서 크다. 

큰 변수에 작은 변수를 넣는건 자동으로 형 변환이 된다, 또 정수형은 실수형으로 자동형변환 된다,

ex)

long var =100;

flat fvar = var;

int kvar ='A'; (O) //이럼 'A' 글자의 아스키 코드 (65) int 타입으로 출력된다.


작은 변수형에 큰 변수형을 넣는건 불가능하다, 또 실수형이 정수형으로 타입을 변경할 경우에는 형변환이 필요하다.

float favr =100;

long var=(long)favr; 

작은 변수(long)에 큰 변수형(float)를 넣을 경우에 형변환을 해주어야한다.

그래서 형변환을 해주던가 아예 변수 선언을 다시해준다.


ex)

byte b =120;

b=b+1; 

Type mismatch 오류가 난다.

이유는 

자바에서 정수리터럴을 사용해서 연살할때 그 값은 4byte에 저장된다.

1은 4byte에 저장이 되는 정수리터럴이고 b는 1바이트만 사용하는 변수인데 이를 1바이트에 저장하니까 오류가 난다 

byte b =120;
int b2=b+1;

이런 식으로 int 타입으로 크게 바꿔주거나

byte b =120;
b=(byte)(b+1);

계산 결과 값을 다시 byte 타입으로 형변환 시켜준다.

보통 이런 상황을 피하고자 int, double 타입을 많이 사용한다.


byte b1 =10;
byte b2 =20;
byte b3 =(byte)(10+20);
        
long i = 100L;
int j =(int)i;
float f =3.1415924168f;
double d=3.1415924168;
char c ='A';
String cc ="AB";
int k =66;
char ccc=(char)k;
boolean boo = true;
boolean bool = false;
     
System.out.println(b2+"."+b3);
System.out.println(i+"."+j);
System.out.println(f+"."+d);
System.out.println(c+"."+cc);
System.out.println(k+"."+ccc);
System.out.println(boo+"."+bool);


결과값:

20.30

100.100

3.1415925.3.1415924168 //float 형보다 double 형이 더 많이 나온다 

A.AB

66.B // int 형 k 를 char로 형변환 시켜줘서 66의 아스키 값인 B가 나온다.

true.false


'JAVA > JAVA 기본 문법' 카테고리의 다른 글

[JAVA]-Java 1차원 배열  (0) 2019.01.19
[JAVA]-Java 반복문  (0) 2019.01.19
[JAVA]-Java 조건문  (0) 2019.01.19
[JAVA]-Java 연산자  (0) 2019.01.19
[JAVA]-java 특징, 설치, 이클립스 단축기 소개  (0) 2019.01.19

+ Recent posts