2019백업

2.자바 기본

728x90

1. 데이터 형 


타입형 

표현 

크기/ 설명/ 범위

boolean 

T/F 

크기 : 1byte

[][][][][][][][여기] 8bit 중 1칸만 사용하지만 1byte를 차지함.

 byte

정수 

크기 : 1byte

설명 : 1byte(8bit) -> 2^8 -> 256개

범위 : -128 ~127 

c언어 unsigned는 : 0~255 

 short

정수 

크기 : 2byte

설명 : 256 * 256 개

범위 :  (-32,768 ~ 32,767)

 float

실수 

크기 : 4byte

short와 같음 

 long 

정수 

크기 : 8byte

범위 : (-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775, 807)

 double

실수 

크기 : 8byte 

 char

문자 

크기 : 2byte 

설명 : \u4973,2byte이기 때문에 한자도 표현이 가능하다. (\u0000 ~ \uffff)

범위 : Unicode (0 ~ 65535) 

참고 : https://wikidocs.net/261


 int

정수 

크기 : 4byte 

설명 : 256 * 256 * 256

범위 : -2,147,43,648 ~ 2,1747,483,647


2. String 객체


String str1 = " Hello Java"


String은 클래스, str1은 인스턴스 변수이다. (참조형 변수라고도함)


객체 변수의 크기 : 언제나 4byte


자바는 개발자에게 주소를 신경쓰지않게 GC(Garbage Collector)가 처리하고 주소값을 따로 나타내지않는다.

객체 변수가 언제나 4byte인 이유는 값이 담겨져 있는 해쉬코드를 담고있기 때문인데 이는 주소와 비슷하다.

C언어에서는 주소라는 말을 쓰지만 Java에서는 해쉬코드라 하는 값이 있다.


=> 왜 주소를 안써주고 해쉬코드를 사용할까?



3. JAVA 명명법, 직영법


클래스 : 파스칼 기법 : (public class HelloWorld)

메서드 : 카멜 기법 : (public class helloWorld(int a, int b))

변수 : 1. 길이제한이 없다

        2. 의미를 부여한다. (추상)

        3. 예약어 사용금지

        4. 숫자로 시작금지

        5. 허용되는 특수문자 ($,_)


4. java 언어의 실행과정, 목적


JAVA : OS -> JVM -> .class (class안에 main함수를 호출)

          JVM만 새로 설치해주면 되기에 이식성이 높다.


C언어 : OS -> exe

         OS 가 변경되면 그에 맞게 exe파일도 변경해야하기에 이식성이 낮다.


알게된 사실

JAVA언어의 목표 

1. 플랫폼 호환성

2. 플랫폼 독립적인 언어개발

3. 메모리 사용량이 적고 다양한 플랫폼을 가지는 가전 제품에 적용


3번에서 자바가 메모리 사용량이 적다는 문구가 이해가 되지 않았다. 말 그대로 JAVA의 원래 목표였던 내용이였고 웹으로 더 많이 사용되게되었다. 그 이유는 Applet 기능 때문이였는데 당시 웹페이지에서 그림을 그리는 기능이였고 다음으로 Flash가 뜨게 되면서 가라앉았지만 jsp가 나오게 되면서 java가 다시 높은 사용률을 보였다. 

원래 목적이 임베디드 였다는 것에 놀라웠다.


5. 자바의 특징


1) Write Once Run Anywhere : 한 번만 작성하면 모든 플랫폼에서 실행가능하다.

2) 바이트 코드 : 플랫폼 종속성이 없이 JVM에 동작하는 바이너리 코드

                     클래스 파일(.class)에 저장 (자바소스가 컴파일 되면 생성됨)

                     바이트 코드는 컴퓨터 CPU에 의해 직접 실행되지 않음, JVM 가 인터프리터 방식으로 바이트 코드를 해석하여 해당 플랫폼에서 실행.


6. 진수


10진수 : 1,2,3,4,5,6,7,8,11


8진수 : 012, 013,052 (0으로 시작한다면 8진수)


16진수 : 0x16, 0x18, 0xFF (0x로 시작하면 16진수)



7. 지수 표현법


12,34E3 => 12,34E+3 = 12.34 * 10^3

12,34E-3 => 12.34 / 10 ^3


8. 출력 연산


System.out.println(100 + 200 + " Hello " + "Java " + 100 + 200);


출력 : 300 Hello Java 100200


이유 : 100+200 보다 "Java" + 100 이 먼저 실행되기 때문에 뒷 부분이 문자열로 변경된다.


( ) 를 사용하여 우선연산하게 할 수 있다. " Hello " + "Java " + (100 + 200)


9. 형변환


작은애 = (작은애 데이터 타입)큰애; => (cast)연산자가 필요하다.

*형변환을 하되 값의 손실이 일어나면 안된다.


큰애 = 작은애; (자동으로 형변환이 일어난다.)


10. 연산자


기본


+, -, *, /, %, +=, -=, /=, %=, x++, ++x 


비트


&(and) : 둘 모두 1 

|(or): 한 쪽만 1이라도 1

 ^(xor): 서로 다를 경우 1


부정연산자


! : 부정(논리) T <-> F

~ : 비트 부정(비트) 1 <-> 0


반응형