국비학원 1주차) Java + Java Script

oatraspberry·2022년 9월 19일
post-thumbnail

🐣

1일차

[Java]

JDK 11 설치하기- https://www.oracle.com

이클립스 설치하기- https://eclipse.org

자바 프로젝트 생성 → 패키지 생성 → 클래스 생성(.java) → 컴파일 및 바이트 코드 생성(.class) → Run

문자열 표현하기

큰따옴표"" 안에 표기해야 함

System.out.println("화면 출력"); 	 // 화면출력
System.out.println("화면" + "출력"); // 화면출력
System.out.println("화면" + 3);    // 화면3

// 1줄 이상 주석 처리는 ctrl+/, 두줄 이상은 ctrl+shift+/

변수 넣어서 출력하기

int a=3;
String b="화면";
System.out.println(a); 			// 3
System.out.println(b);		   // 화면
System.out.println(b + "출력"); // 화면출력

한줄로 출력은 print, 줄바꿈은 println 혹은 print("\n");

형식대로 출력하기

printf()- 지시자를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능
정수형 변수에 저장된 값을 10진 정수로 출력할 때는 지시자 %d사용,
변수의 값을 지정된 형식으로 변환해서 지시자 대신 넣는다.

System.out.printf("age:%d", age);
System.out.printf("age:%d", 14);
System.out.printf("age:14"); // "age:14"가 화면에 출력됨

printf()는 줄바꿈을 하지 않기 때문에 줄바꿈을 하고 싶다면 %n을 넣어야 함.


🐣

2일차

[Java]

변수 variable

  1. 변수의 선언 이유: 값을 저장할 공간을 마련하기 위해서

  2. 변수의 선언 방법

    변수타입 변수이름;
     int age;
  3. 변수의 초기화 - 변수에 처음으로 값을 저장하는 것

  4. 변수의 값 읽어오기

    • 변수의 값이 필요한 곳에 변수의 이름을 적는다.

프로그램 실행 중에 값 변경 가능
사용되기 이전에 선언되어야 한다.
프로그램에서 사용되는 자료를 저장하기 위한 공간

int age; 		// 정수(int)타입의 변수 age를 선언
age = 25; 		// 변수 age에 25를 저장
int age = 25;   // 위의 두 줄을 한 줄로

int x = 0; 			// 변수 x를 선언 후, 0으로 초기화
int y = 5; 			// 변수 y를 선언 후, 5로 초기화
int x = 0, y = 5;   // 위의 두 줄을 한 줄로
  • Java의 변수는 하나의 값만 저장할 수 있다.

  • 변수, 상수, 메서드의 이름을 지을 때 반드시 지켜야 하는 공통사항
    1. 특수문자는 밑줄(_)달러($) 표기만 사용할 수 있다.
    2. 아라비아 숫자를 사용할 수 있지만 첫 번째 글자로는 사용할 수 없다.
    3. 자바에서 사용하는 예약어는 사용 못 한다.

  • 변수명을 지을 때 권장 사항
    1. 영문 소문자로 시작한다.
    2. 영문 단어 2개 이상 결합할 때는 새로운 단어의 첫 글자를 대문자로 한다.

  • 상수명을 지을 때 권장사항
    1. 상수는 변수와 구분하기 위해 모두 대문자로 표기한다.

    1. 단어 여러 개 결합하면 가독성이 떨어지므로 각각 밑줄(_)을 사용해 분리한다.

상수
한 번만 값을 저장 가능한 변수. 변하지 않는 값(cf 변수: 변하는 값)
상수를 선언: final 키워드 사용
final로 선언된 상수는 다른 값을 대입할 수 없음.

final double PI = 3.14;
final int MAX_NUM = 100; // MAX는 상수

리터럴(literal)
그 자체로 값을 의미하는 것

  • 리터럴의 접두사와 접미사
int i = 100; 		// 10진수
int oct = 0100; 	// 8진수
int hex = 0x100; 	// 16진수

자료형의 종류

  • 기본형(8개 타입)
  1. 논리형(true, false) - 조건식논리적 계산에 사용된다. boolean(1byte)
  2. 문자형 - 문자를 저장하는데 사용되며 변수에 하나의 문자만 저장할 수 있다. char(2byte)
  3. 정수형 - 정수를 저장하는데 사용되며 주로 int가 사용된다. byte(1byte) < short(2byte) < int(4byte) < long(8byte)
  4. 실수형 - float, double, 실수를 저장하는데 사용되며, 주로 double이 사용된다. float(4byte) < double(8byte)
  • 참조형(기본형 이외)

기본 자료형 간의 타입 변환

자료형 A 변수명 = (자료형 A)값
long 변수명 = 값+L;
long 변수명 = 값+l;
float 변수명 = 값+F;
float 변수명= 값+f;
  • 실수형에서는 double이 기본형이라 접미사 D or d는 생략이 가능하지만, float타입의 접미사 F or f는 생략 불가능하다.

  • 자료형의 크기는 byte<short/char<int<long<float<double의 순서로 커진다.

  • char 문자 자료형
    인코딩 - 각 문자에 따른 특정한 숫자 값(코드 값)을 부여
    디코딩 - 숫자 값을 원래의 문자로 변환


🐣

3일차

[Java]

연산자

항: 연산에 사용되는 값
연산자: 항을 이용하여 연산하는 기호
모든 연산자는 연산결과를 반환한다.
연산자의 우선순위와 결합법칙은 "세가지만 기억하자"

  1. 산술>비교>논리>대입
  2. 단항(1)>이항(2)>삼항(3)
  3. 대입과 단항 연산자를 제외하면, 모두 왼쪽→오른쪽
+: 두 항을 더한다.
-: 앞에 있는 항에서 뒤에 있는 항을 뺀다.
*: 두 항을 곱한다.
/: 앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구한다.
%: 앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구한다.

대입 연산자 변수에 값을 대입하는 연산자. 왼쪽 변수에 오른쪽 변수를 대입
증가 연산자 (++) 피연산자의 값을 1 증가
감소 연산자 (--) 피연산자의 값을 1 감소

전위형 ++i; 왼쪽, 값이 참조되기 전에 증가

j = ++i; // 전위형

++i; // 증가 후에
j = 1; // 참조하여 대입

후위형 i++; 오른쪽, 값이 참조된 후에 증가

j = i++; // 후위형

j = i; // 참조하여 대입 후에
i++; // 증가

독립적으로 쓰였을 때는 전위형과 후위형의 차이가 없다.

-는 피연산자의 부호를 반대로 변경한다.

  • 형변환 연산자
    형변환: 변수 또는 상수의 타입을 다른 타입으로 변환하는 것
(타입)피연산자
double d = 85.4;
int score = (int)d;

int score = (int)85.4;
int score = 85;

자동 형변환

float f = 1234; // int 타입의 값을 float타입의 변수에 저장
float f = (float)1234;

형변환을 하는 이유는 주로 서로 다른 두 타입을 일치시키기 위해서인데, 형변환을 생략하면 컴파일러가 알아서 자동적으로 형변환을 한다.

등가 비교 연산자(==) : 두 값이 동일한지의 여부를 확인한 후 동일 여부를 참(true) 또는 거짓(false)으로 반환하는 연산자

문자열 비교에는 == 대신 equals()를 사용해야 한다.

String str1 = "abc";
String str2 = "abc";

System.out.println(str1.equals(str2)); // true

대입 연산자(=) : 오른쪽의 값을 왼쪽에 대입하는 연산자, 대입 연산자의 축약 표현

a = a + b = a += b
a = a * b = a *= b
a = a & b = a &= b

✏️ 등가 비교(==)와 대입 연산자(=)를 혼동하지 말자

산술 변환

연산 전에 피연산자의 타입을 일치시키는 것

  1. 두 연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
long + int -> long + long -> long
float + int -> float + float -> float
double + float -> double + double -> double
  1. 피연산자의 타입이 int보다 작은 타입(byte, short, char)이면 int로 변환된다.
byte + short -> int + int -> int
char + short -> int + int -> int

반올림 - Math.round()
실수를 소수점 첫째자리에서 반올림한 정수를 반환

long result = Math.round(4.52); // result에 5가 저장된다.

나머지 연산자 %
오른쪽 피연산자로 나누고 남은 나머지를 반환
나누는 피연산자는 0이 아닌 정수만 허용(부호는 무시됨)

System.out.println(10 % 8); // 10을 8로 나눈 나머지 2가 출력된다.

비교연산자
>, <, >=, <=, ==, !=
두 피연산자를 비교해서 true(참) 또는 false(거짓)을 반환

논리 연산자
조건식을 연결할 때 사용하는 연산자
&&(AND) : 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다.
||(OR) : 피연산자 중 어느 한 쪽이 true이면 true를 결과로 얻는다.
^(XOR) : 두 값이 다를 때는 true, 같을 때는 false를 결과로 얻는다.
!(NOT) : true를 false로, false는 true로 바꾼다.

boolean b = true;
!!b -> !!true -> !false -> true

삼항 연산자

// (참 또는 거짓) ? 참일 때 연산 결과 : 거짓일 때 연산 결과
int a = (true)  1 : 2;
System.out.println(a); // 1
int b = (a % 2 == 0) ? 10 : 20;
System.out.println(b); // 20

제어문

  • 조건문: 조건을 만족할 떄만 {}를 수행(0~1번) if, switch
  • 반복문: 조건을 만족하는 동안 {}를 수행(0~n번) for,while
  • if문: 조건식이 참(true)일 때, 괄호{}안의 문장들을 수행한다.
if(score>60)
System.out.println("합격입니다.");
System.out.println("축하드립니다.");
  • if-else문: 둘 중의 하나 - 조건식이 참일 때와 거짓일 때로 나눠서 처리
if(조건식) {
	// 조건식이 참(true)일 때 수행될 문장들을 적는다.
	} else {
	// 조건식이 거짓(false)일 때 수행될 문장들을 적는다.
}
  • if-else if문: 여러 개 중의 하나-여러 개의 조건식을 포함한 조건식
if (조건식1) {
	// 조건식1의 연산결과가 참일 때 수행될 문장들을 적는다.
	} else if ( 조건식2) {
	// 조건식2의 연산결과가 참일 때 수행될 문장들을 적는다.
	} else if (조건식3) {
	// 조건식3의 연산결과가 참일 때 수행될 문장들을 적는다.
	} else { // 생략 가능
	// 위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다.
}
  • switch문: 처리해야 하는 경우의 수가 많을 때 유용한 조건문
    같은 값인지를 비교하는 경우에 사용하기 좋은 문장
    • 제약조건
      1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
      2. case문의 값은 정수, 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다
      1. 중괄호는 한번만 사용. break문 반드시 사용하기!
switch (조건식) { // 조건식에는 정수, 문자열이 올 수 있다.
	case 값1:
    	// 조건식의 결과가 값1과 같을 경우 수행될 문장들
        // ...
        break;
    case 값2: 
    	// 조건식의 결과가 값2와 같을 경우 수행될 문장들
        // ...
        break;
   	//...
    default:
    	// 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들
        // ...
}
  • 임의의 정수 만들기
    Math.random() - 0.0과 1.0 사이의 임의의 double값을 반환
    0.0 <= Math.random() < 1.0

반복문

  • for문: 수의 특정 범위, 횟수와 관련한 반복수행에서 주로 사용
    1++ 1씩 증가
    1-- 1씩 감소
    1+=2 2씩 증가
    1*=3 3배씩 증가
for(초기화식; 조건식; 증감식) {
	수행문;
}
num이 1에서부터 5일 때까지 하나씩 증가하면서 출력하는 for문

int num;
for(num = 1; num <= 5; num++)
{
	System.out.println(num);
}
  • while문: 하나의 조건에 대해 반복수행이 이루어질 때 사용
    조건이 맞지 않으면 수행문이 수행되지 않음
    주로 조건식이 true, false로 나타남
초기식;
while (조건식) { // 조건식 생략불가
	실행구문; // 조건식이 true인 동안 실행
    증감식;
}
  • do-while문: 하나의 조건에 대해 반복수행이 이루어질 때 사용
    먼저 수행문을 한 번 수행하고 조건식 체크.
    단, 수행문이 반드시 한번 이상 수행됨.
초기식;
do {
	실행구문;// 조건식의 연산결과가 참일 때 수행될 문장들을 적는다.(처음 한 번은 무조건 실행)
    증감식;
} while (조건식); // 문법 구조상 중괄호가 없으므로 세미콜론(;)으로 끝남.
  • break문: 반복문에서 break문을 만나면 더 이상 반복을 수행하지 않고 반복문을 빠져나옴.
    중첩된 반복문 내부에 있는 경우 가장 가까운 반복문 하나만 빠져나옴.

  • continue문: 반복문과 함께 쓰이며, 반복문 내부 continue문을 만나면 이후 반복되는 부분을 수행하지 않고 조건식이나 증감식을 수행함.
    break문과 달리 반복문을 벗어나지 않는다.

for(num = 1; num <= 100; num++) { // 100까지 반복
	if(num % 2 == 0) 			  // num값이 짝수인 경우
    	continue;				  // 이후 수행을 생략하고 num++ 수행
    total += num; 				  // num값이 홀수인 경우에만 수행
}

[Java Script]-HTML5

<!DOCTYPE html> // 현재 문서가 HTML5 언어로 작성한 웹 문서라는 뜻
<html>~</html> // 웹 문서의 시작과 끝을 나타내는 태그
<head>~</head> // 웹 브라우저가 웹 문서를 해석하는 데 필요한 정보를 입력하는 부분
<body>~</body> // 실제로 웹 브라우저에 나타나는 내용
  • 비쥬얼 스튜디오 다운로드 후 환경설정
  • 라이브 서버, 라이브 프리뷰 설치하기
  • MARK DOWN, README.md 링크 걸기

🐣

4일차

[Java]

배열

동일한 자료형을 묶어 저장하는 참조 자료형.
생성할 때 크기를 지정해야 하고, 한 번 크기를 지정하면 절대 변경할 수 없는 특징이 있다.

  1. 배열 선언
  2. 배열 객체 생성
int[] a = new int[3]; // int[] - 배열 자료형 a = 참조변수  new = Heap 메모리에 넣어라 int[3] = int 자료형 3개를 저장할 수 있는 공간
=>int 자료형 3개를 저장할 수 있는 공간을 Heap 메모리에 넣어두고 어디에 넣었는지를 참조변수 a에 넣어라

자료형[] 배열이름 = new 자료형[개수];
int[] arr = new int[10];

자료형 배열이름[] = new 자료형[개수];
int arr[] = new int[10];
  • 배열 초기화 / 대입
  1. 배열은 선언과 동시에 초기화까지 할 수 있음

  2. 배열을 초기화 할 때는 배열의 개수를 명시하지 않음
    int[ ] studentsIDs = new int[ ] {101, 102, 103} // 개수 생략
    int [ ] studentIDs = new int[3] {101, 102, 103} // 오류 발생

  3. 아무런 초기화 값이 없이 선언만 한 경우, 정수는 0, 실수는 0.0 객체 배열은 null로 초기화됨.

  4. 배열 사용하기
    []: 인덱스 또는 첨자 연산자로 표시

참조 자료형

  • 동일한 자료형을 묶어 저장하는 참조 자료형.
  • 생성할 때 크기를 지정해야 하고, 한 번 크기를 지정하면 절대 변경할 수 없는 특징이 있다.
int[] a;	 // int 자료형만 저장 가능
double[] a;  // double 자료형만 저장 가능
String[] a;  // String 자료형만 저장 가능

new 자료형[배열의 길이]

new int[3];  	// 정수 자료형 3개를 포함할 수 있는 배열 객체 생성
new double[5];  // 실수 자료형 5개를 포함할 수 있는 배열 객체 생성
new String[10]; // 문자열 자료형 10개를 포함할 수 있는 배열 객체 생성
new int[]; 		// 객체의 크기를 지정하지 않아 오류 발생

자료형[] 변수명 = new 자료형[배열의 길이];
int[] a = new int[3];

자료형[] 변수명;
변수명=new 자료형[배열의 길이];
int[] a;
a = new int[3];
  • 배열의 길이
    배열이름.length-배열의 길이(int형 상수)
int[] arr=new int[5]; // 길이가 5인 int배열
int tmp=arr.length;   // arr.length의 값은 5이고 tmp에 5가 저장된다.
  • 배열의 활용
    총합과 평균
    배열의 모든 요소를 더해서 총합과 평균을 구한다.
int sum=0; // 총합을 저장하기 위한 변수
float average=-0f; // 평균을 저장하기 위한 변수
average=sum 
(float)score.length; // 계산 결과를  float로 얻기 위해서 형변환
  • 최대값과 최소값
    배열의 요소 중에서 제일 큰 값과 제일 작은 값을 찾는다.
int max=score[0]; // 배열의 첫번째 값으로 최대값을 초기화 한다.
int min=score[0]; // 배열의 첫번째 값으로 최소값을 초기화 한다.
  • 2차원 배열의 출력
    테이블 형태의 데이터를 저장하기 위한 배열
    이중 for문을 이용한 2차원 배열 원소 출력
int[][] score = new int[4][3]; 	   // 4행 3열의 2차원 배열을 생성한다.
score[0][0] = 100;				  // 배열 score의 1행 1열에 100을 저장.
System.out.println(score[0][0]); // 배열 score의 1행 1열의 값을 출력.

int[][] a = {{1, 2}, {3, 4, 5}};

for(int i = 0; < a.length; i ++) {
	for(int j = 0; < a[i].length; j++) {
    	System.out.println(a[i][j]);
    }
}
  • 2차원 배열의 초기화
int[][] arr = new int[][]{ {1, 2, 3}, {4, 5, 6} };
int[][] arr = new { {1, 2, 3}, {4 , 5, 6} }; // new int[][]가 생략됨.

int[][] arr = { { 1, 2, 3 },
				{ 4, 5 ,6 }
              };
  • String 참조 변수명 = new String("문자열")
String str = new String("안녕");
  • String배열의 선언과 생성
String[] name = new String[3]; // 3개의 문자열을 담을 수 있는 배열을 생성한다.

name[0] = "Kim";
name[1] = "Park";
name[2] = "Yi";
  • String 클래스
  1. String 클래스는 char[]와 메서드(기능)를 결합한 것
    String클래스=char[] + 메서드(기능)
  2. String 클래스는 내용을 변경할 수 없다. (read only)
String a = "a";
String b = "b";
a = a + b;
  • Arrays로 배열 다루기
    배열의 비교와 출력 - equals(), toString()
int[] arr = {0, 1, 2, 3, 4};
int[][] arr2D = {{11, 12}, {21, 22}};

System.out.println(Arrays.toString(arr)); 		// [0, 1, 2, 3, 4]
System.out.println(Arrays.deepToString(arr2D)); // [[11, 12], [21, 22]]

String[][] str2D = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
String[][] str2D2 = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};

System.out.println(Arrays.equals(str2D, str2D2)); 		// false
System.out.println(Arrays.deepEquals(str2D, str2D2));   // true

배열의 복사 - copyOf(), copyOfRange()

배열의 정렬 - sort()

int[] arr = {3, 2, 0 ,1 ,4};
Arrays.sort(arr); 					  		// 배열 arr을 정렬한다.
System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3, 4]

🐣

5일차

[Java Script]-HTML5

자바스크립트 변수, 객체

출처: 자바의 정석, 자바 완전 정복, HTML+CSS+자바스크립트 웹 표준의 정석
profile
개발자가 될테야

0개의 댓글