| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 노드삭제
- access token
- 노드제외
- SSC
- 구글시트
- kubelet
- 자바 #JAVA #기본형 #참조형 #primitive #reference
- googlesheet
- 자동 기록
- 노드
- Kubernetes
- oauth
- rke2-agent
- 노드드레인
- 자바 #JAVA #List #Set #Map #collection #컬렉션
- 이벤트
- 자동
- K8s
- Google Sheet API
- 쿠버네티스
- Today
- Total
이 또한 지나가리
[10/12] Java 기초 - 김영한의 자바 무료 입문 강의 본문
Java를 아예 모르는 것은 아니나 공부를 어디서부터 시작해야할지 모르겠어서 기본 강의 부터 들어보려한다.
첫 강의는 김영한 선생님의 자바 무료 입문 강의이다.
Eclipse만 사용해봤는데 김영한 선생님의 강의는 Intellij로 진행되어 처음으로 Intellij를 써보았다.
기초적인 내용 부터 다뤄주셔서 초심자에게 좋을 것 같고, 나는 배속으로 재생하여 기억을 환기시키는용으로 강의를 들었다.(스킵도 많이 했다ㅎㅎ)
입문 강의는 Java를 처음 접하는 사람에게만 추천할 것 같다.
https://www.jetbrains.com/ko-kr/idea/download/?section=windows
IntelliJ IDEA 다운로드
www.jetbrains.com
1. hello java 출력하기
- java 언어는 대소문자를 구문한다.
- Intellij에서 psvm = public static void main(String[] args){}
2. 주석(Comment)
- '#' : 한 줄 주석(single line comment)
- '/* */' : 범위 주석 (multi line comment)
3. Java란?
- 자바 표준 스펙과 구현으로 나누어짐
- 자바 표준 스펙(자바 커뮤니티 프로세스, JCP 통해 관리됨)
1) 자바 컴파일러
2) 자바 실행 라이브러리
3) 자바 가상 머신(JVM)
- 다양한 자바 구현
- 여러 회사에서 자바 표준 스펙에 맞추어 실제 작동하는 자바 프로그램을 개발한다.
- ex) 오라클 Open JDK, Amazon Corretto ...
4. 컴파일과 실행
- .java -> (complie) -> .class
- .class -> 실행 -> JVM이 실행되면 프로그램 작동
- 컴파일할 때 javac라는 프로그램을 사용하는데, IDE를 통해 코드를 실행하면 자동으로 처리해준다.
5. 자바와 운영체제 독립성
- 각각의 OS 환경에 맞춰 자바를 설치하는 것이 가능하다.
6. 변수
- 패키지 : 자바 파일 첫 줄에 소속된 패키지 선언해야한다.
- 변할 수 있는 값을 지정
- 변수를 선언하면 컨퓨터의 메모리 공간을 확보해 그곳에 데이터 저장한다.
- 변수 선언 -> 변수 초기화(값을 대입) -> 변수 읽기
- 변수 초기화는 선언과 동시에 진행할 수 있고(int a = 1), 변수 초기화를 하지 않으면 컴파일 에러 발생(java: variable a might not have been initialized)
- 컴파일에러는 자바 문법이 맞지 않았을 때 발생하는 에러이다.
6-1. 변수타입1
- 정수(int), 실수(double), boolean(true/false), 문자(char), 문자열(String)
- 변수는 종류에 따라 다양한 형식이 존재하고 이러한 형식을 타입이라 한다.
- literal : 개발자가 직접 적은 고정된 값 나타내는 프로그래밍 용어(정수 리터럴, 실수 리터럴 ...)
6-2. 변수타입2
- 정수 : byte(-128 ~ 127, 2^8) < short(-32,767 ~ 32,767,2^16) < int(2^32) < long(2^64)
- 실수 : float < double
- 표현 범위에 따라 메모리 공간을 차지한다.
- 메모리 용량은 매우 저렴하여 메모리 용량을 약간 절약하기 보다는 개발 속도나 효율에 초점을 맞추는 것이 더 효과적이다.
- 실수에서 자주 사용하는 타입은 int, long, double, boolean, String
6-3. 변수 명명 규칙
- 규칙
1) 변수 이름은 숫자로 시작할 수 없음
2) 자바 예약어로 이름 사용할 수 없다.
3) 변수 이름에는 영문자, 숫자, '$', '_' 만 사용 가능
- 관례
1) 소문자로 시작하는 낙타 표기법
my account -> myAccount
- 변수 이름은 의미있고 용도를 명확하게 설명해야 한다.
- 클래스는 첫글자를 대문자로 시작하고 나머지는 다 소문자로 첫글자를 시작한다.
- 예외는 상수(모두 대문자)와 패키지(모두 소문자)
7. 연산자
- % : 나머지를 구하는 연산자
- 연산자 우선순위 (다 외우기 보단 상식선에서 우선순위 적용하면 된다)
1) 괄호
2) 단항 연산자( ++. --, ~ !, new, (type))
3) 산술 연산자( *, /, % -> +, - )
4) Shift 연산자 ( <<, >> >>>)
5) 비교 연산자(<. <=, >, >=, instanceof)
6) 등식 연산자(==, !=)
7) 비트 연산자(&, ^, |)
8) 논리 연산자(&&- and, ||-or, !)
9) 삼항 연산자(? :)
10) 대입 연산자(=, +=, -=, *=, /=, %= ...)
8. 조건문(if else)
- 조건이 참인지 확인하고 참일 경우 코드 블럭을 실행한다.
- else문은 if문에서 만족하는 조건이 없을 때 실행하는 코드를 제공한다.
- else if
- if문 명령이 한개일 경우 중괄호 생략해도 되지만 가독성과 유지보수성을 위해 중괄호를 써주는게 좋다.
8-1. switch문
- 단순히 값이 같은지 비교할 수 있다.
- break가 없으면 다음 case를 실행한다.
public class Switch1 {
public static void main(String[] args) {
int grade = 2;
int coupon;
switch (grade) {
case 1:
coupon = 1000;
break;
case 2:
coupon = 2000;
break;
case 3:
coupon = 3000;
break;
default:
coupon = 500;
}
System.out.println(coupon);
}
}
- java 14에는 새로운 switch문이 도입되었다.('->' 사용)
public class Switch2 {
public static void main(String[] args) {
int grade = 2;
int coupon = switch (grade) {
case 1 -> 1000;
case 2 -> 2000;
case 3 -> 3000;
default -> 500;
};
System.out.println(coupon);
}
}
8-2. 삼항연산자
- 단순히 참과 거짓에 따라 특정 값을 구하는 경우에 사용한다.
- (조건) ? 참_표현식 : 거짓_표현식
public class CondOp1 {
public static void main(String[] args) {
int age = 18;
String status = (age >= 18) ? "성인" : "미성년자";
System.out.println(status);
}
}
9. 반복문
9-1. while문
- while(조건식) {코드};
-조건식이 true일때 코드 반복한다.
9-2. do-while문
- do {코드} while (조건식);
- while문과 비슷하지만 조건에 상관없이 무조건 한 번은 코드를 실행한다.
- continue, break
9-3. for문
- 초기화, 조건검사, 반복 후 작업이 한 줄에 모두 들어있어 코드를 이해하기 쉽다.
- 중첩 반복문
10. Scope(범위)
- 변수는 선언한 위치에 따라 지역 변수, 멤버 변수(클래스 변수, 인스턴스 변수)와 같이 분류된다.
- 지역변수는 특정 지역 즉, 특정 코드 블럭에서만 사용 가능한 변수이다.
- 변수의 범위를 한정하여 비효율적인 메모리 사용을 줄이고 코드 복합성을 막는다.
11. 형변환
- 작은 범위에서 큰 범위로 대입은 허용한다.
- 큰 범위를 작은 범위에 대입하려하면 컴파일 에러가 발생한다.
- 명시적 형변환
- 오버플로어가 발생하면 변수 타입 범위 내에서 처음부터 다시 시작한다.(마치 시계가 도는 것처럼)
- 오버플로어가 발생하면 계산하지 말고 타입을 바꾸는게 좋다.
- 같은 타입끼리의 계산은 같은 타입의 결과를 낸다.
- 서로 다른 타입의 계산은 큰 범위로 자동 형변환 된다.
ex) int + long => long + long 으로 자동 형변환
12. Scanner
- System.in을 통해 사용자의 입력을 받을 수 있다.
- 자바는 Scanner라는 클래스를 제공하여 사용자의 입력을 편리하게 받을 수 있게 한다.
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력하세요:");
String str = scanner.nextLine();
System.out.println("입력한 문자열 " + str);
}
}
13. 배열(Array)
- 같은 타입의 변수를 편하게 사용하기 위해 묶어둔 것
- 배열 선언 ( int[] students), 배열 생성 및 초기화(new int[4])
- 배열을 생성하고 나면 자바는 메모리 어딘가에 배열에 접근할 수 있는 참조값(주소)을 반환한다.
- int[] students를 선언하면 변수는 배열의 참조값을 보관한다.
public class Array1 {
public static void main(String[] args) {
//배열 선언
int[] students;
//배열 생성과 초기화
students = new int[] {90, 80, 70, 60, 50};
//배열 선언, 생성 초기화
//int[] students = {90, 80, 70, 60, 50};
//변수 값 사용
for(int i = 0; i < students.length; i++) {
System.out.println("student" + (i + 1) + "점수는 : " + students[i]);
}
}
}
- 배열의 위치를 나타내는 숫자를 인덱스(index)라고 한다.
- 변수에 값을 직접 넣을 수 있는 기본형, 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라 한다.
배열은 참조형!
- 2차원 배열 : arr[행][열]
public class Array2 {
public static void main(String[] args) {
int[][] arr = {
{1,2,3},
{4,5,6}
};
for (int row = 0; row < arr.length; row++) {
for (int column = 0; column < arr[row].length; column++) {
System.out.print(arr[row][column] + " ");
}
System.out.println();
}
}
}
14. 향상된 for문
- 배열의 처음부터 끝까지 탐색한다.
- ':' 오른쪽에 탐색할 배열을 선택하고 , 왼쪽에는 찾은 값을 저장할 변수를 지정한다.
- 증가하는 index값이 필요할 경우 for-each문을 사용할 수 없다.
public class EnhancedFor1 {
public static void main(String[] args) {
int[] numbers = {1,2,3,4,5};
for (int num : numbers) {
System.out.println(num);
}
}
}
*유투브 강의
https://www.youtube.com/watch?v=JEzBDk0E9Rw&t=24901s
*인프런
[지금 무료]김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음| 김영한 - 인프런 강의
현재 평점 5.0점 수강생 52,238명인 강의를 만나보세요. 프로그래밍에 처음 입문하는 분들을 위한 자바 강의입니다. 코드를 따라하면서 손쉽게 자바를 배울 수 있습니다. 자바(Java) 프로그래밍 언
www.inflearn.com
'개발 일만시간의 법칙' 카테고리의 다른 글
| [JAVA Study02] List / Set / Map (0) | 2026.02.22 |
|---|---|
| [JAVA Study01] 기본형과 참조형 (1) | 2026.02.22 |
| Codex 사용하기 (0) | 2026.01.25 |
| JDK 환경 변수 세팅(IDE STS 5, JDK25) (1) | 2026.01.05 |