[Java] 자바 기본 정리하기

2024. 3. 29. 23:44·Development/Java
자바 기본 내용들을 복습하기 위해 정리하였습니다.
다른 언어와 유사한 부분은 생략하였습니다. (Python, PHP, C)

🧑🏻‍🏫 유튜브의 나도코딩님 '자바 코딩 무료 강의(기본편)' 9시간 영상을 참고하였습니다.

 

자바란?

자바는 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 현재 웹 개발에서 가장 많이 사용되고 있으며, 안드로이드 애플리케이션 개발에도 사용된다.

사용 툴

  • 인텔리제이

팁

  • psvm 또는 main을 입력하면 자동으로 public static void main () 이 자동으로 생성된다.
  • sout 입력하면 System.out.println()이 만들어짐
  • 한 줄 주석 단축키: Ctrl + /
  • 여러 줄 주석 단축키: Ctrl + Shift + /

 

변수와 상수

  • 기본적으로 변수는 카멜 표기법, 절대 변하지 않는 상수는 대문자로
  • 상수는 final 키워드로, 상수명은 대문자로 표기
    final String CODE = "KR";
  • 형변환 TypeCasting
    int score = 93;
    System.out.plintln(score); // 93
    System.out.plintln((float) score); // 93.0
    System.out.plintln((double) score); // 93.0

연산자

  • AND 연산: &&
  • OR 연산: ||
  • 삼항연산자
// 결과 = (조건) ? (참일 경우 결과값) : (거짓의 경우 결과값)
int x = 5;
int y = 3;
int max = (x > y) ? x : y;
System.out.println(max); // 5

boolean b = (x == y) ? true : false;
System.out.println(b); // ture

String z = (x != y) ? "true" : "false";
System.out.println(z); // false

 

문자열

String text = "I like Java and Python and C.";
System.out.println(text);
// I like Java and Python and C.

 

대소문자 변환

// toUpperCase(), toLowerCase
System.out.println(text.toUpperCase()); // 대문자로
System.out.println(text.toLowerCase()); // 소문자로

 

포함관계

System.out.println(text.Contains("Java")); // true
System.out.println(text.Contains("C#")); // false
System.out.println(text.indexOf("Java")); // 7
System.out.println(text.indexOf("C#")); // -1
System.out.println(text.indexOf("and")); // 12
System.out.println(text.lastIndexOf("and")); // 23
System.out.println(text.startWith("I like")); // ture

 

문자열 변환

System.out.println(text.relace("and", ",")); // and를 ,로 변환
System.out.println(text.substring(7)); // 인덱스 7부터 자르기
System.out.println(text.substring(text.indexOf("Java"))); // Java가 시작하는 위치부터 끝까지
System.out.println(text.substring(text.indexOf("Java"), text.indexOf("."))); // Java가 시작하는 위치부터 "." 전까지

 

공백제거

text = "           I love Java.     ";
System.out.println(text.trim()); // 모든 공백 제거 -> I love Java.

 

문자열 결합

String s1 = "Java";
String s2 = "Python";
System.out.println(text.concat(",").concat(s2)); // Java, Python

 

문자열 비교

String s1 = "Java";
String s2 = "Python";
System.out.println(s1.equals("Java")); // 문자열 내용이 같으면 true 아니면 false
System.out.println(s1.equals("python")); // false

System.out.println(s2.equalsIgnoreCase("python")); // 대소문자 구분없이 체크

 

문자열 비교 심화

s1 = "1234"; // 메모리에 할당
s2 = "1234"; // 참조
System.out.println(s1.equals(s2)); // true (내용)
System.out.println(s1 == s2); // true (참조)

s1 = new String("1234"); // new String() 시 할당 되는 메모리가 다르므로
s2 = new String("1234");
System.out.println(s1.equals(s2)); // true
System.out.println(s1 == s2); // false (참조가 다르므로 false)

 

특수문자, 이스케이프 문자

\n: 줄바꿈
\t: 탭
\\: \ (하나의 백슬래시)
" : \" (문자열 안에서 " 사용시) 
' : \' (문자열 안에서 ' 사용시) => char 타입일 때 사용 (ex. c='\'';)

 

메소드

다른 언어에서 사용되는 함수와 비슷하다.

  • 코드 내에서 동작을 하는 (기능을 하는) 묶음
  • 메소드 내에서도 또 다른 메소드를 호출할 수 있다.

메소드는 클래스 내에 작성하며, main 과는 다르다.

public class Method {
    // 메소드
    public static void sayHello() {
        System.out.println("메소드입니다.");
    }
    // 메인
    public static void main(String[] args) {
        sayHello(); // 메소드입니다.
    }
}
  • void는 리턴값이 없다. 이외에는 값을 return 해줘야한다.

 

메소드 오버라이딩

같은 이름의 메소드명을 여러 번 선언하는 것을 메소드 오버라이딩이라고 한다.
전달값의 타입이 다르거나, 전달값의 개수가 다를 경우 메소드 오버라이딩을 사용할 수 있다.
리턴값의 반환형(타입)이 다를 경우에는 사용할 수 없다.

 

변수의 범위(Scope)

  • for문의 i는 for문 내에서만 사용가능하다.
  • 클래스 내의 변수는 클래스 내에서만 사용 가능하다. (main 사용 x)
  • 중괄호 {} 안에서 선언된 변수는, 그 안에서만 사용 가능하다(=지역변수)

 

Reference

  • https://www.youtube.com/watch?v=NQq0dOoEPUM

'Development > Java' 카테고리의 다른 글

[Java] ArrayList VS LinkedList  (0) 2026.02.28
[Java] Refactor: switch statement can be replaced with enhanced 'switch'  (0) 2026.02.09
[Java] Refactor: Non-constant string concatenation as argument to logging call  (0) 2026.02.09
[Java] Getter/Setter 지양과 trim 책임 분리 (feat.model 리팩토링)  (3) 2026.02.06
'Development/Java' 카테고리의 다른 글
  • [Java] ArrayList VS LinkedList
  • [Java] Refactor: switch statement can be replaced with enhanced 'switch'
  • [Java] Refactor: Non-constant string concatenation as argument to logging call
  • [Java] Getter/Setter 지양과 trim 책임 분리 (feat.model 리팩토링)
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (218) N
      • Development (204) N
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (5) N
        • SpringBoot (4)
        • JavaScript (2)
        • React (11)
        • MySql (19)
        • MongoDB (1)
      • Daily (6)
      • Study (7)
        • TIL (2)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    리눅스
    Selenium
    Linux
    크롤링
    HTML
    php
    CentOS7
    MySQL
    IP
    JavaScript
    스프링부트
    docker
    GPT
    nodejs
    react
    ssh
    Mac
    인코딩
    AI
    chromedriver
    Python
    springboot
    Java
    Shell
    db
    정규표현식
    리액트
    SQL
    CentOS
    UTF8
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
곽진돔
[Java] 자바 기본 정리하기
상단으로

티스토리툴바