[Java] Java 특징 및 기본 문법

JOY·2023년 3월 2일
0

[Java]

목록 보기
2/15
post-thumbnail


JDK의 javac로 인해 컴파일 되어 실행 가능

  • 코딩 순서(디버깅)와 실행 순서(호출 순서)는 다름
  • 시작점 메소드가 따로 있음, 실행을 위해 반드시 필요 - 메인 메서드
public static void main(String[] args){}

파일명.java - Test.java --> 코드

 class Test{
 }

↓ 컴파일 ↓ javac.exe 파일 필요
오류가 없으면
파일명.class 파일 생성 -->실행파일(bytecode 변환)

↓ 실행 ↓ java.exe 파일 필요
확장자는 생략이지지만 파일명.class 실행
OS에 맞게 실행되기 위해서 JVM 필요

객체(Object)란?

모든 사물에는 각자의 기능이 있음

  • 속성, Method

객체(Object) - ex)붕어빵
속성 - 멤버 필드 ex) 밀가루, 팥, 우유
기능 - Method ex)팔린다(), 먹는다()

↓ Java ↓
붕어빵.java

class 붕어빵{
	속성
	메소드(){}
}

👉 class 안에는 선언만 가능, 기능적인 부분은 메소드에 작성

Java 특징

1) 운영체제에 독립적 - Write Once, Run Anywhere!
JVM(Java Virtual Machine)이 운영체제에 독립적일수 있도록 해준다.

2) 객체지향 언어(Object Oriented Programming)
"OOP is A, P , I , E"

A - Abstraction (추상화)
P - Polymorphsim(다형성)
I - Inheritance(상속)
E - Encapulattion(캡슐화-은닉)

3) C에 비해상대적으로 배우기 쉽다

4) 다양한 API 제공(Aplication Programming Interface)

5) 가비지 콜렉터(Garbage Collector : GC)
사용하지 않는 메모리 공간을 자동으로 제거, 개발자가 직접 메모리 관리 안함. 👉 메모리 관리 최적화

Java 문법

1) Camel 표기법 사용
2) 유니코드 지원 (한글 지원)
3) 클래스 이름 첫글자 : 대문자
메소드 이름 첫글자 : 소문자()
변수 이름 첫글자 : 소문자
단, 상수는 모두 대문자. 단어 조합시 _ 사용
final int a = 10; //final 필드
static int b = 10; //상수

  • 변수 : 데이터 저장 공간, 한가지 타입, 한가지 값만 저장가능, 변경 가능
    언더바, $ 이외 특수문자 사용 안됨
    첫글자는 반드시 영문, 언더바,$ / 두번째부터 숫자 가능

자료형 - 데이터 타입 종류

1) primitive type = 기본형(8가지)

  • 정수형 : byte(1byte) - short(2byte) - int(4byte) -> long(8byte)

  • 실수형 : float(4byte) - double(8byte) : 기본형은 double

  • 문자형 : char(2byte) - 한글자 만 저장가능 ex) 'A'
    👉 String은 문자열이며 객체. "A"
    'A' 와 "A"는 완전 다른 것

  • 논리형 : boolean - true, false 값만 가능한다. 형변환 불가 ex) if(true)

    값의 범위에 따라 overflow 발생 가능

    byte a = 5, b=3;
    byte c = a+b; //컴파일 에러

    👉 연산을 할때는 최소 int형 크기가 필요
    ❗ 위 문장을 형변환(Casting)을 이용하여 byte에 저장 가능
    👉 데이터 손실 있을 수 있음

    byte c = (byte)(a+b);

    작은 타입 👉 큰 타입 : 프로모션(자동)
    큰타입 👉 작은 타입 : 형변환(Casting)

    객체는 형변환이 불가하지만 상속 관계에 있을 때 형변환 가능

2) Object type = reference type = 참조타입

만약 class가 존재한다면 그 class의 이름이 타입이 될 수 있다

class Hello{   }
class Cat{  }
  • 변수선언
int i; //정수형선언
Hello h; // Hello 형 선언
Cat t ;// Cat 타입 변수 선언

중요! String 은 Object 타입이다. String은 문자열 저장.

연산자

대입연산자 : =
같다 : ==
같지않다 : !=

1) 산술연산자
2) 대입연산자
3) 논리연산자 : &&, ||
4) 비트연산자
5) 삼항연산자
6) 증감연산자

제어문

1) 조건문

  • if문
	
        if(조건식){ //만약 조건식이 true라면 블럭을 실행해라
            실행문장;
        }
     
       if(조건식){
          //실행문장;
      }else{
          //실행문장;
      }
      
        if(조건식){
        }else if(조건식){
        }else if(조건식){
        }...
      
      if(조건식){
        }else if(조건식){
        }else if(조건식){
        }else{
        }
  • switch문
    : 조건을 비교할때 조건의 범위를 비교할수 없고 값이 일치해야한다.
    break 키워드를 적절하게 사용해서 여러 실행문장을 한번에 실행 하게 할수 있다.
1)
        switch(비교대상){
        // 비교대상에 표현식이 올수 있고 그 값이 case에 비교된다.
        //(byte, short, char, int ,  java 1.7에서 String 지원)
          case: 실행문장 ; break;
          case: 실행문장 ; break;
          case: 실행문장 ; break;
         ....
         default : 실행문장;
    }
    
    2) version16에 추가된 기능
    	switch (비교대상){
         case,,,... : 실행문장 ; break;
        }

2) 반복문

  • for문 : 조건식이 true일 동안 실행문장을 반복
  • while문 : 실행문장과 증감식 순서 바뀔 수 있음
  • do while문 : 조건에 관계없이 무조건 한번은 실행
for( ⓛ초기화; ②조건식; ③증감식 ){
     ④실행문장;
}
    
초기화;
while(조건식){
    실행문장;
   증감식;
}
    
초기화;
do{
    실행문장;
    증감식;
}while(조건식);

3) 무한루프

for(;;){
      
}

while(true){

}

do{

}while(true);

4) while문의 이중 for문

초기화;
while(조건식){
    초기화;
while(조건식){
    문장;
    증감식;
}
    증감식;
}
  • 난수발생
    1~5 사이 정수를 난수 발생
    (Math.random() 경우의수) + 최솟값;
    (int)(Math.random()
    5) + 1;
profile
Just Do IT ------- 🏃‍♀️

0개의 댓글