참여 프로그램: 블록체인기반 핀테크 서비스 개발자 양성,
기간: 약 6개월(1030시간)간 주 5일, 오전 9:30부터 오후 6:30까지 수업
(feat.더조은아카데미 컴퓨터 학원 _집에서 넘나 먼것.. )
다른 과정 들으려고 (온라인)지원했는데 다되는것도 아니라서 이 과정 수강.. 소중해
코시국이라 수업시작일이 미뤄지다가 2/7일부터 수업시작
열심히 듣는 것이 내가 할일!
01일차 학습내용
0. 개발환경 설정
1. 자바
3. 변수
2. 데이터타입
4. 변수의 선언과 사용
5. 출력문
0. 개발환경 설정
0-0. 구글 크롬 브라우저를 기본 브라우저로 설정
0-1. jdk11 설치
- JDK : 자바플랫폼 Java Development Kit : 자바로 프로그램 개발,실행할 때 필요한 개발 툴.
Java SE (Standard Edition) : 일반적인 로컬 응용 프로그램 개발을 위한 API 파일 I/O, 콘솔 I/O, 윈도우 I/O, 네트워크 I/O, Thread, ... 등등의 기능
* jdk 검색
* 오라클에 가입 필요
* JRE 자바로 만든 프로그램 실행만 하는 경우라면 JRE만 있으면 됨 Java Runtime Environment
최신버전보다 안정적인 11버전으로 설치합니다.
❗❗JDK 설치 후 환경변수 설정 ❗❗
|
0-2. 이클립스 다운로드
이클립스는 작업시 경로설정을 쉽게 도와주는 툴입니다.
다운로드 주황색 버튼 X
아래 패키지 들어가 Java EE를 다운받습니다.
설치 후 작업폴더 경로를 잡아놓습니다.
실행 > browse 작업폴더 경로 잡기
오른편 위 + 표시 아이콘 클릭 (open perspective) > Java로 선택, 확인
Window> Preferences > encoding검색 > 왼편 모든 메뉴의 encoding UTF-8로 변경
1. 자바란
C언어에서 파생된 프로그래밍 언어입니다. 고급언어 중 하나로서 사람이 알아 볼 수 있는 언어로 작성된다. 컴퓨터가 이러한 개발자의 명령을 인식하기 위해서는 컴파일러가 한번 번역을 해줘서 컴퓨터로 전달하는 과정을 거치게 됩니다. 우리가 작업하는 파일은 .java이지만 컴파일러에 의해 파일이 .class로 내부에서 생성됩니다.(번역과정) 이 번역된 파일을 가지고 JVM 자바가상기계가 작동하게 됩니다.
* 기계어 -> 어셈블리어 -> 고급언어
초기 프로그래밍 고급언어는 대부분 절차지향이었습니다. 어셈블리어에서 C언어가 절차지향으로 나왔고, C언어에서 객체지향으로 나온 게 C++, Java 언어가 나왔습니다. C++에서 하나 업된 게 C#입니다.
* 절차지향 vs. 객체지향
객체지향 언어: 군사목적으로 시뮬레이션 돌리기 위해 생긴 언어.
Java는 2000년대 들어와서 컴퓨터 사양이 좋아지면서 널리 쓰이게 되었습니다.
1-1. 자바의 특징과 주요 용어들
플랫폼 독립성을 갖습니다. : 이말은 즉 하드웨어, 운영체제 등 플랫폼에 독립적인 바이트코드로 컴파일이 되어서, JVM만 맞게 설치한다면 윈도우, 리눅스, 맥 어디서든 실행 가능하다는 것입니다. 그 전 절차지향 언어는 그렇지 않다는 말이지요.
객체지향
멀티스레드 지원
가비지 컬렉션 : 메모리 점유를 일일이 해제할 필요 없이 알아서 해줘서 매우 편리합니다. 다만 가비지컬렉션 과정에서는 프로그램이 잠시 멈추기 때문에 실시간 게임 개발 같은 경우에는 맞지 않습니다.
자바가상기계 : 소프트웨어 서로 다른 플랫폼에서 자바프로그램이 실행되는 동일한 환경을 제공해줍니다. JVM자체는 플랫폼에 종속적이다. 구체적으로는 .class안의 데이터들을 메모리에 로딩을 시켜준다. 실행 중 다른 클래스파일 jdk클래스 파일이 필요한 경우 해당 파일도 같이 로딩 실행시켜주는 역할을 합니다. 적은양의 메모리로 실행할 수 있게끔해 주는데 우리가 여기에 직접 명령을 내리는 건 아니고 코드를 작성하면 알아서 작동합니다.
자바 플랫폼
Java API : 남이 만들어 놓은 소스코드. 공식 API java 11 document 에서 확인 가능하며, 앞으로 수업때 종종 볼 일이 있을 것이라고 하니 링크를 남겨둡니다.
https://docs.oracle.com/en/java/javase/11/docs/api/index.html
2. 변수 variable
: 값을 저장하는 공간으로, 데이터를 그냥 두면 쓸 수 없으니 변수에 담에서 쓰게 됩니다.
2-1. 변수의 타입 : 변수를 처음 만들 때 타입을 지정하게 되는데, 처음 지정한 타입으로만 계속 사용 가능합니다.
2-2. 변수의 명명규칙 : 소문자로 시작(클래스와 구분하기 위함), 띄어쓰기X, 특수기호_$ 만 사용가능,
키워드X, 대소문자 구분 Num num, 숫자로 시작X, 의미있는 이름으로,
블럭{} 안에 같은 이름X,
currentPosition 카멜표기법
current_position 스테이크표기법
3. 데이터 타입
* 메모리 단위
1bit = 0, 1 로 표현(2진수)되는 메모리 최소단위
1byte = 8bit
문자: char 한개
숫자 : 정수 byte, short, int, long (자바에서 100은 자동으로 int로 들어감)
실수 float(소수점8), double(소수점16) (자바에서 3.14는 자동으로 double로 들어감)
논리 : boolean (true, false) /자바에서는 1,0을 못넣지만 상식적으로 true1 false 0
3-1. 기본형 primitive type : 논리형, 문자형, 정수, 실수, 문자, 문자열, 숫자
논리형 : boolean : 1byte (1bit실제사용량, 지금 점유크기는 그냥 1byte): 1byte : true, flase 둘 중 하나의 값을 가진다.
(불리언이 조건문 반복문과 결합하는 엄청 중요한 데이터 타입)
문자형: char : 자바에서는 2byte를 차지함(유니코드체제라서) 한글자 (문자열은 String 클래스 사용)
정수 : 음수/양수 (소수점 없는 수)
- byte : 1byte: -128~127 까지의 숫자 표현 가능 (8bit)
- short : 2byte: -32768~32767
- int : 4byte(32bit) : 약 -21억~ 약21억
- long : 8byte: 많다~~
실수 : 소수점
- float : 4byte: 소수점 8자리
- double : 8byte: 소수점 16자리
문자 : 'a'
문자열 : "abc" "a"
숫자: 10 100 3.14
3-2. 참조형 reference type : 클래스
배열에 대한 레퍼런스, 클래스에 대한 레퍼런스, 인터페이스에 대한 레퍼런스(주소) 값을 저장하는 것
문자열: String
==> 앞으로 학습에 있어 기본형과 참조형의 구분. 기본형의 데이터 크기 구분은 매우 중요하니까 툭치면 나올정도로 숙달해야합니다.
변수의 선언과 사용
하나의 변수에는 하나의 값을 대입할 수 있다. 다른 값을 넣으면 덮어써짐
변수의 타입과 데이터 타입이 맞아야 대입이 성립한다. 사이즈도 넘지 않아야 한다.
데이터 값이 변수에 대입되거나 연산할 때 타입이 서로 맞지 않으면 자동형변환이 가능하면 상관없지만 그렇지 않으면 에러가 난다.
선언 대입 따로
int num; //타입 변수명; ㅡ변수 선언
num = 10;//변수명 = 값; ㅡ값 대입
선언과 대입 한번에 (메인 메서드 밖에서 배열은 이렇게만 가능? )
int num = 10; //타입 변수명 = 값; ㅡ 선언 = 값;
- 변수 명명규칙
- [ ] 문자로 시작(클래스와 구분하기 위함),
- [ ] 변수명 중복X. (같은 수준에서는 안되지만 지역변수 클래스변수 인스턴스변수 스코프가 다르면 가능)
- [ ] 띄어쓰기X,
- [ ] 특수기호_$ 만 사용가능,
- [ ] 키워드X, 대소문자 구분 Num num,
- [ ] 숫자로 시작X,
- [ ] 의미있는 이름으로,
- [ ] 블럭{} 안에 같은 이름X,
- 표기법 - 카멜 currentPosition 스네이크 current_position
대입연산자 (=)
- 오른편의 모든 연산을 마친 후, 그 결과를 왼편 변수로 담는다. == 대입연산자는 가장 후순위 연산자이다.
- 기본형은 메모리에 값으로 저장되고, 참조형은 주소가 저장된다.
- 변수를 변수에 대입하면 값이 복사된다.
- 접미사long b = 100L;정확한 타입 지정하기위한것float d = 10.123F;
- 8바이트를 4바이트에 넣으면 에러나니까 플롯표기를 해줘야int iii = (int)11; (형변화로 강제로 넣던지..)
- double d = 10.123;
- 2바이트를 4바이트에 넣으면 에러는 나지 않음,
- int a = 100;
기본값 : 변수 선언만 하고 값이 비어있는 경우 프로젝트 실행 에러가 날 수 있어서 선언할 때 기본값을 넣어줌
boolean b = false;
char c = '\u0000'
int i = 0 // 실수는 0.0
String str = null; //참조형
출력문
: 개발자가 콘솔창에서 확인하기 위한 명령어
출력문 종류
System.out.println(); //엔터기능O
System.out.print(); //엔터기능X
System.out.printf(); //엔터기능X, 서식문자를 이용
출력문 내 연산 가능
System.out.println(3+3); // 6 : 연산 결과
System.out.println("Hello"+' A'); // Hello A : 문자열
System.out.println("Hello"+3); // Hello3 :문자열
System.out.println('A'+3); //68 : 연산결과 (아스키코드값 + 숫자)
이스케이프 문자: 출력문 안에서 공백이나 줄바꿈 등의 기능을 가짐
System.out.println("Hello \\Hi"); // Hello
// Hi
형변환 Casting, type conversion, converting
기본형끼리의 형변환 (데이터 크기가 다른경우)
int i = (int)3.3
기본형과 참조형 간의 호환을 위해 형 변환이 필요한 경우도 있다.
int num = Integer.parseInt("100");
'코딩' 카테고리의 다른 글
2022.02.14_6일차_메서드와 메서드 오버로딩 (0) | 2022.02.20 |
---|---|
2022.02.11_5일차_클래스와 객체, 변수의 종류 (0) | 2022.02.19 |
2022.02.10_4일차_다차원배열 (0) | 2022.02.18 |
2022.02.09_3일차_제어문(2)과 배열 (0) | 2022.02.17 |
2022.02.08_2일차_연산자와 제어문(1) (0) | 2022.02.16 |
댓글