자바 기본 내용들을 복습하기 위해 정리하였습니다.
다른 언어와 유사한 부분은 생략하였습니다. (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)
- 중괄호 {} 안에서 선언된 변수는, 그 안에서만 사용 가능하다(=지역변수)