🔖Java

Java 기초 정리

Jerry_K 2025. 3. 9. 17:41

 

인프런의 김영한님의 Java 기초를 보고 정리를 하였다. 

추후에 복습에 편리함을 목적으로 이 포스팅으로 기록을 남긴다.

 

이 부분에 특히 메서드 부분하고 오버로딩을 잘 보자 ! 


변수 종류

// 정수: byte, short, int, long
int a = 10;

// 실수: float, double
double b = 20.4;

// 불리언: boolean
boolean c = true;

// 문자 char
char d = 'h';

// 문자열 String
String e = "jerry";
  • 위에 쓰여있는 변수들은 자주 쓰이는 변수들이다.

 

실무에 거의 쓰지 않는 변수 타입

  • byte, short
  • float
  • char 

 

변수 선언 규칙 

  • 변수Camel case 사용  →  ex) orderDetail
  • 클래스 첫글자를 대문자로 사용   →  ex)  OrderDetail 
  • 상수모두 대문자로 사용하고 언더바로 구분   →  ex)  USER_LIIMT
  • 패키지모두 소문자를 사용   →  ex)  org.spring,boot

각각의 용도에 맞는 이름을 정하는게 엄청 중요하다 !


산술 연산자

a + b 
a - b
a / b 
a * b
a % b (나머지)

 

 

문자열 더하기 

String a = "Hello";
String b = "World";
int c = 10 ;
HelloWorld10
  • 문자열에 무엇을 더하든 문자열로 변경 됨 
  • integer가 String으로 업캐스팅

 

연산자 우선순위 

  • 상신선으로 생각하고 애매하면 괄호 사용 
  • 개발에서 가장 중요한 것은 단순함과 명확함 !

 

비교 연산자

a == b
a != b
a > b
a < b
a >= b
a <= b

 

 

논리 연산자 

AND 연산 : &&  
OR 연산 : ||
NOT 연산 : !

 


지역 변수

  • 자신이 선언된 코드 블록 안에서만 생존 
  • 자신이 선언된 코드 블록을 벗어나면 제거 

 

스코프가 필요한 이유 

  • 비효울적인 메모리 사용 제어
    • 스코프를 정하면 필요없는 변수를 메모리에서 제거하여 효율적으로 메모리 사용 가능
  • 코드 복잡성 감소

자동 형변환

  • 작은 범위에서 큰 범위로는 문제 없음
    • 자동 형변환 
    • Integer가 String, Float 형으로 가는거는 아무 문제 없음

 

명시적 형변환 (캐스팅) 

double doubleValue = 1.5;
int intValue ;

intValue = (int) doubleValue;
System.out.println(intValue);
  • 문제는 큰 범위에서 작은 범위 넣을 경우 문제
  • 숫자가 손실되는 문제가 발생 (소수점 버림)
  • int의 범위를 초과하면 오버플로우가 발생 (int가 표현하는 가장 작은 수)
    • 오버플로우가 절대 발생하지 않도록 ...!!

 

double a= 3;
int b = 2 ;
System.out.println("result = " + (a/b));
  • 서로 다른 타입의 계산은 큰 범위로 자동 형변환 

 

 

좋은 프로그램은 무한한 자유가 있는 프로그램이 아니라 적절한 제약이 있는 프로그램이다 . 

적절한 제약은 유지보수성을 높힘 !!

 


배열

int[n] student = new int[n]
  • type 변수명 = new 클래스명( );
int[] student ;
student = new int[5] ;
int[] student ;
student = new int[]{1,2,3,4,5} ;
int[] student = {1,2,3,4,5} ;
  • [ ] 사이에 배열의 크기를 넣어주면 된다. 

 

기본형과 참조형

기본형으로는 변수에 사용할 값을 직접 넣을수 있는 타입

  • int, long, double, boolean  등등

참조형참조(주소)를 저장하는 데이터 타입 

  • 배열, 객체, 클래스

향상된 For 문

int[] number = {1,2,3,4,5,6};
for(int i : number){
    System.out.println("i = " + i);
}
  • 배열의 인덱스를 사용하지 않고, 종료 조건을 주지 않아도 됨
  • 단순히 배열의 처음부터 끝까지 탐색 

메서드

  • 변수명은 일반적으로 명사 → totalSum, customerName
  • 메서드명은 일반적으로 동사로 시작 → printReport, getEmployeeCount

 

매서드 용어 정리 

public static int  add(int a,int b) {
        return (a+b);
}


public static void main(String[] args) {
    int sum1 = add(5,10);
}

 

매개변수, 인수, 파라미터, Argument(아규먼트) 맨날 헷갈린다...

 

인수 (Argument)

  • add에서  5,10 처럼 넘기는 값을 의미한다.
  • 한글로는 인수, 영어로는 아규먼트라 한다. 
  • Argument는 논쟁,근거라는 뜻으로 함수가 동작하려는 근거라는 의미로 전달되는 값을 Argument(인자)라고 부른다.

 

매개변수 (Parameter)

  • add 함수에서 int a, int b 와 같이 선언된 변수를 매개변수 또는 파라미터라 한다.
  • 매서드를 호출할 때 인수를 넘기면, 그 인수가 매개변수에 대입된다.
  • 매개변수 → "중간에서 전달하는 변수" 
  • 매개변수는 앞으로 코딩하면서 정말 정말 많이 쓰는 말이니 헷갈리지도 말자 !

오버로딩 (OverLoading)

add(int a, int b)
add(int a, int b, int c)
add(double a, double b)
  • 이렇게 이름이 같고 매개변수가 다른 메서드를 여러개 정의하는 것을 의미
  • Over Loading는 과적, 과부화라는 뜻으로 하나의 메서드명에 여러개의 메서드를 과적 한 거라 생각하면 된다.
int add(int a, int b)
double add(int a, int b)
  • 하지만 이렇게 반환형이 다른 경우 컴파일 오류 발생