dev/Java

[Java]시작하기

mingracle 2021. 12. 31. 02:26

프로그래밍 관련 용어

  - project: 하나의 프로그램

  - class: 기능

  - package: class를 모아둔 단위. 패키지는 2~3단계 정도의 이름을 지정하는 것이 좋음.

              (1)sample.(2)test.(3)com

  - 프로그램: 컴퓨터를 작동시키기 위한 순차적으로 작성된 명령어 모음

  - 프로그래밍: 컴퓨터에게 일을 하도록 명령어를 만드는 것

  - 프로세스: 실행 중인 프로그램

  - 컴파일: 프로그램 언어를 컴퓨터가 알 수 있는 언어로 바꿔주는 일

  - 컴파일러: 기계어로 번역해주는 프로그램 자바를 설치하면 자바 컴파일러도 설치됨

 

JAVA의 특징

  - 플랫폼(운영체제)에 독립적

  - 객체지향언어

  - 멀티 스레드 지원

  - garbage collection 지원(사용하지 않는 데이터 쓰레기통에 모아줌. 메모리 관리 자동)

 

이름 표기 규칙

  - 패키지 sample.test.com

   : 전부 소문자

  - class JavaTest

   : 자바에서는 파스칼 표기법을 따른다. 단어의 첫글자 대문자.

   : 공백x, 숫자로 시작x, 키워드(예약어)사용x, 특수기호는 _ $만 가능

  - 변수명 binaryNumber

   : 카멜표기법을 사용 소문자로 시작, 두 개의 단어가 합쳐지면 두 번째 단어의 첫글자는 대문자.

  - 상수이름 JAVATEST

   : 모든 글자를 대문자로, 합치는 경우 _ 사용.

 

변수선언   =:  값을 오른쪽에서 왼쪽으로 저장/대입함을 뜻함

타입 이름; //해당 타입의 데이터를 저장할 공간 생성
이름 = ; //공간에 값을 저장
타입 이름 = ;  //변수 선언과 동시에 초기화

데이터 타입

1. 기본형 데이터 타입 : 값을 바로 저장 int a = 10;
  - boolean(1): true/false값 저장. 둘 중 하나의 상태를 가져야 하는 경우 사용. 기본값= false
    숫자 1,0 2진수이기 때문에 입력할 수 없음

  - char(2): 문자. 기본값= \u0000
    아스키 코드표에 따라 숫자로 바꿔서 저장(인코딩) 꺼내올 때는 다시 원본 글자로(디코딩)

  - byte(1), short(2), int(4), long(8): 정수 기본값= 0
  리터럴=int. int의 범위를 벗어나면 L/l을 붙여서 long타입의 데이터임을 명시한다. long i2 = 12334567890123L;

  - float(4), double(8): 실수 기본값= 0.0
  리터럴=double. float타입을 사용하려면 F/f를 붙여서 float타입의 데이터임을 명시한다. float f = 3.14F;
 
숫자를 저장하는 타입끼리는 형 변환이 가능
 - 작은타입큰 타입 : 문제X = 명시하지 않아도 자동으로 변환
                                double d = 100 + 100.0;
                                int+double double+double  크기가 작은 int가 보다 큰 double으로 변환
 - 큰 타입작은 타입 : 정보의 손실 발생해 변환X. , 변환 할 타입 명시하면 가능(+손실)
                                int i = 3.14; // error // 3.14 double!
                                int i = (int) 3.14; // int 3 저장 // 소수점을 빼고 정수만 필요할 때 사용
    ▶강제타입변환시 손실을 막기 위해
       최댓값(MAX_VALUE)/최솟값(MIN_VALUE) 벗어나는지 검사 후 벗어나면 변환하지 않아야한다.
    +) 정수→실수타입 변환시 정밀도 손실 발생
       int값을 실수타입으로 안전하게 변환시키기 위해 double타입을 사용한다.
       - float: 부호(1) + 지수(8) + 가수(23)
                = 23비트로 표현할 수 있는 값만 손실없이 변환 가능
       - double: 부호(1) + 지수(11) + 가수(52)
                = int는 32비트이기 때문에 안전하게 변환/복원 가능

※ char타입의 경우 int타입으로 자동 변환되면 유니코드 값이 int타입에 저장된다.
  char charValue = 'A';
  int intValue = charValue; //65가 저장됨
※ int타입은 char타입으로 자동변환되지 않기 때문에 강제 타입변환을 사용해야 한다.
  int intValue = 'A';
  char charValue = (char)intValue; //유니코드에 해당하는 문자 출력
2. 참조형 데이터 타입 : 메모리에 객체를 생성 후 주소값을 저장 기본값= null
  - 배열타입
  - 열거타입
  - 클래스
  - 인터페이스
  String s = "문자열 표현"; //연산이 필요 없는 경우 사용
  String str = "ABC"; // String의 변수 str에는 "ABC"가 저장된 주소값이 저장됨. 주소값이 저장된객체를 참조.
 
String은 주소값이 저장되기 때문에 형변환이 불가능.
  String ss = (String)100; // error
int에 빈 문자열 ""을 더하면 String으로 변환이 가능하다.(+연산자는 문자열 우선순위, , String으로 바꿔 계산)
  String c = 7 + "";  //int + String => "7" + "" => "7"
  String d = "" + 7;  //String + int => "" + "7" => "7"

값 처리의 원칙

  : 같은 종류끼리만 대입, 계산이 가능. 계산의 결과도 같은 종류의 값이 나와야함

   원칙이 지켜지지 않는 경우라면 형(타입)변환 뒤 처리

 

단축키

  - Run: ctrl + F11

           마우스 우클릭 → Run as → java application

  - 여러 줄 주석처리: shift + ctrl + / (주석풀기\)

  - 줄 맞춤: shift + ctrl +F