컴파일 : 인간이 작성한 코드를 컴퓨터가 알아듣게 번역하는 작업
컴파일러
자바 언어를 해석하는놈은 자바컴파일러 ( javac )
이놈의 특징 >> 컴파일 하고 나면 class 파일이 생성 된다.
두 가지 파일을 직접 열어보시면 감이 오실거에요.
.java 파일 >> notepad++ 로 실행하면 인간의 언어가 보인다. ( 컴퓨터의 입장에서 이해 불가능)
.class 파일 >> notepad++ 로 실행하면 기계어가 보인다. ( 컴퓨터의 입장에서 이해 가능 )
JDK ( Java Development Kit )
여러가지 종류가 있는데 제일 대표적인 JDK는
OpenJDK , Oracle JDK 1.8 (일점팔) , Oracle JDK 11 (십일)
작업 경로 : C\Workspace
개발 도구 : 이클립스 설치
- 6월 버전
https://www.eclipse.org/downloads/packages/release/2021-06/r
설치 끝났으면
window - preference
🔎
spelling , workspace UTF-8 인코딩 설정 (필 수 )
01_firstproject > 아무것도 건들지 말고 Finish
모듈 Dont Create 클릭
우클릭 - new - class
패키지 : 유사한 클래스를 묶어주는 역할, 항상 맨위에 선언 해주어야 함
main 메소드 ( 메소드 = 함수 같은뜻입니다 )
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hi~~~~");
}
함수 이름이 main 인 놈을 말합니다 ( 함수가 무엇이냐… 그것은 다음에 알아봅시다 )
한 프로젝트에 반드시 이 녀석(메인 함수) 한 개 는 있어야 프로젝트가 실행이 됩니다
주석 사용 방법 ( 매우 매우 매우 매우 매우 중요 )
코드가 지저분 하게 보이긴 하지만 거의 매 함수, 매 변수마다 주석을 해주는게
기억하기도 편하고 아무튼 유용합니다 !!!!!!!!!
무조건 주석 많이 하세요
주석 안하는 개발자는 멍청한 개발자 입니다 ~
//한줄 주석하기
/*
통째로
주석
하기
*/
한 줄 주석 단축키
Ctrl + /
여러줄 주석 단축키 (드래그 해서 블록지정 한 코드만)
Ctrl + Shift + /
변수
자료형
논리 boolean
문자 char, String
정수형 int
실수형 double
새 프로젝트 생성
사진은 없는데 프로젝트 이름 02_variable
새 클래스 생성
Application2
package com.uni.section01.literal;
public class Application2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/* 값을 직접 연산하여 출력할 수 있다.
* 값의 형태에 따라 사용할 수 있는 연산자의 종류와 연산의 결과가 달라진다.
* */
/* 1. 숫자와 숫자의 연산 */
/* 1-1. 정수와 정수의 연산 */
/* 수학적으로 사용하는 사칙연산에 추가로 나머지를 구하는 연산(mod)을 사용할 수 있다. */
System.out.println("================ 정수와 정수의 연산 =================");
System.out.println(123 + 456); // 579
System.out.println(123 - 23); // 100
System.out.println(123 * 10); // 1230
System.out.println(123 / 10); // 12
System.out.println(123 % 10); // 3
/* 1-2. 실수와 실수의 연산 */
/* 실수끼리의 연산도 수학에서 사용하는 사칙연산에 나머지를 구하는 연산(mod)을 사용할 수 있다. */
System.out.println("================ 실수와 실수의 연산 =================");
System.out.println(1.23 + 1.23); // 2.46
System.out.println(1.23 - 0.23); // 1.0
System.out.println(1.23 * 10.0); // 12.3
System.out.println(1.23 / 10.0); // 0.123
System.out.println(1.23 % 1.0); // 0.2299999999
/* 1-3. 정수와 실수의 연산 */
/* 정수와 실수의 연산도 수학에서 사용하는 사칙 연산에 나머지를 구하는 연산(mod)을 사용할 수 있다. */
/* 정수와 실수 연산의 결과는 항상 실수가 나온다. */
System.out.println("================ 정수와 실수의 연산 =================");
System.out.println(123 + 0.5); // 123.5
System.out.println(123 - 0.5); // 122.5
System.out.println(123 * 0.5); // 61.5
System.out.println(123 / 0.5); // 246.0
System.out.println(123 % 0.5); // 0.0
/* 2. 문자의 연산 */
/* 2-1. 문자와 문자의 연산 */
/* 문자끼리의 연산도 사칙연산에 mod 연산까지 가능하다. */
/* 지금은 계산 결과가 왜 이렇게 나왔는지 보다 연산이 사용 가능하다는 것에 집중하자!! */
// ASCII CODE (아스키코드) 라는 2바이트 문자들을 숫자로 표현한 국제적인 표준이 있습니다.
// 있다는것만 알아두세요 !!
System.out.println("================ 문자와 문자의 연산 =================");
System.out.println('a' + 'b'); //195
System.out.println('a' - 'b'); //-1
System.out.println('a' * 'b'); //9506
System.out.println('a' / 'b'); //0
System.out.println('a' % 'b'); //97
/* 2-2. 문자와 정수의 연산 */
/* 문자에 정수를 연산하는 것도 가능하다. */
/* 이 쯤 되면 문자 'a'는 숫자 97과 같다라는 것을 알 수 있다. */
/* 컴퓨터는 문자를 인식하지 못하고 숫자로만 인식할 수 있기 때문에, 모든 문자에 대응되는 숫자들이 매칭이 되어 있다.*/
System.out.println("================ 문자와 정수의 연산 =================");
System.out.println('a' + 1); // 98
System.out.println('a' - 1); // 96
System.out.println('a' * 2); // 194
System.out.println('a' / 2); // 48
System.out.println('a' % 2); // 1
/* 2-3. 문자와 실수의 연산 */
/* 실수도 숫자이기 때문에 정수의 연산처럼 모든 연산이 가능하다. */
/* 단, 결과는 실수 형태로 나오게 된다. (아까 위에서 했던 정수와 실수의 연산 결과를 생각해보자) */
System.out.println("================ 문자와 실수의 연산 =================");
System.out.println('a' + 1.0); // 98.0
System.out.println('a' - 1.0); // 96.0
System.out.println('a' * 2.0); // 194.0
System.out.println('a' / 2.0); // 48.5
System.out.println('a' % 2.0); // 1.0
/* 여기서 결론은 문자는 내부적으로 숫자 취급을 한다는 것이다! */
/* 결국 지금까지 연산은 숫자끼리의 연산을 본 것이고, 숫자(정수 혹은 실수) 형태의 값은
수학의 사칙연산과 mod연산이 전부 가능하다. */
/* 3. 문자열의 연산 */
/* 3-1. 문자열과 문자열의 연산 */
/* 문자열과 문자열의 '+' 연산 결과는 문자열 합치기(이어 붙이기)가 된다. */
/* 문자열은 '+' 연산 외에 다른 연산을 사용하지 못한다. */
System.out.println("================ 문자열과 문자열의 연산 =================");
System.out.println("hello" + "world"); //helloworld
//System.out.println("hello" - "world"); //에러 발생
//System.out.println("hello" * "world"); //에러 발생
//System.out.println("hello" / "world"); //에러 발생
//System.out.println("hello" % "world"); //에러 발생
/* 3-2 문자열과 다른 형태의 값 연산*/
/* 문자열과의 연산은 '+' 연산만 가능하다. */
/* 연산 결과는 다른 형태의 값들도 문자열로 취급하여 문자열 이어붙이기(문자열 합치기) 결과가 나오게 된다. */
// 문자열과 무언가를 더하면 모두 문자열로 취급이 된다 !!!
System.out.println("================ 문자열과 다른 형태의 값 연산 =================");
/* 3-2-1. 문자열과 정수의 연산 */
System.out.println("helloworld" + 123); // helloworld123
/* 3-2-2. 문자열과 실수의 연산 */
System.out.println("helloworld" + 123.456); // helloworld123.456
/* 3-2-3. 문자열과 문자의 연산 */
System.out.println("helloworld" + 'a'); // helloworlda
/* 3-2-4. 문자열과 논리값의 연산 */
System.out.println("helloworld" + true); // helloworldtrue
/* 주의사항 : 숫자로 된 문자열 형태의 값은 '+' 연산의 결과가 문자열 합치기 결과가 되는 것에 주의하자! */
System.out.println("================ 문자열 형태의 숫자 값 '+' 연산 =================");
System.out.println("123" + "456"); // 123456
/* 4. 논리값 연산 */
/* 4-1. 논리값과 논리값 연산 */
/* 논리값 끼리의 연산은 모든 연산자 사용이 불가능하다. */
//System.out.println(true + false); //에러 발생
//System.out.println(true - false); //에러 발생
//System.out.println(true * false); //에러 발생
//System.out.println(true / false); //에러 발생
//System.out.println(true % false); //에러 발생
/* 4-2. 논리값과 정수의 연산 */
/* 논리값과 정수의 연산은 모든 연산자 사용이 불가능하다. */
//System.out.println(true + 1); //에러 발생
//System.out.println(true - 1); //에러 발생
//System.out.println(true * 1); //에러 발생
//System.out.println(true / 2); //에러 발생
//System.out.println(true % 2); //에러 발생
/* 4-3. 논리값과 실수의 연산 */
/* 논리값과 실수의 연산은 모든 연산자 사용이 불가능하다. */
//System.out.println(true + 1.0); //에러 발생
//System.out.println(true - 1.0); //에러 발생
//System.out.println(true * 1.0); //에러 발생
//System.out.println(true / 2.0); //에러 발생
//System.out.println(true % 2.0); //에러 발생
/* 4-4. 논리값과 문자의 연산 */
/* 논리값과 문자의 연산은 모든 연산자 사용이 불가능하다. */
/* 이유는, 문자는 내부적으로 숫자 취급을 하기 때문에 결국 논리값과 숫자의 연산과 동일한 의미이다. */
//System.out.println(true + 'a'); //에러 발생
//System.out.println(true - 'a'); //에러 발생
//System.out.println(true * 'a'); //에러 발생
//System.out.println(true / 'a'); //에러 발생
//System.out.println(true % 'a'); //에러 발생
/* 4-5. 논리값과 문자열의 연산 */
/* 논리값과 문자열의 연산은 '+'연산만 사용 가능하다. */
/* 이유는, 위에서 테스트 해 본 문자열 합치기가 되는 원리와 동일하다. */
System.out.println("================ 논리와 문자열의 연산 =================");
System.out.println(true + "a"); // truea //문자열 합치기 됨
//System.out.println(true - "a"); //에러 발생
//System.out.println(true * "a"); //에러 발생
//System.out.println(true / "a"); //에러 발생
//System.out.println(true % "a"); //에러 발생
}
}
허허
변수의 선언
int age; // 선언만 하는 것은 의미 없음
변수의 초기화
int age;
age = 100; // 무언가 값을 담는 행위를 ‘초기화’라고 한다.
변수의 명명 규칙
실제로 개발자들에게 가장 어려운 일이 무엇이냐? 라고 물어보는 설문조사가 있었습니다
https://www.cio.com/article/220287/the-9-hardest-things-programmers-have-to-do.html
(영어 주의)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
그 중 1위가 바로 ‘변수명 작명 하기’ 였습니다
그 만큼 변수든 뭐든 이름을 처음 지을때 잘 지어놓는게 정말 정말 정말 중요한데요
그래서 개발자들은 이름 짓기에 대한 최소한의 규칙을 만들었습니다.
Camel Case ( 낙타 규칙 )
매 단어 단어 마다 첫 번째 글자를 대문자로 작성하는 방식입니다.
(단, 첫 번째 글자는 소문자 !!!)
예시)
iAmVariable
resultSum
goToCentumStudyCafe
마치 변수의 이름이 낙타 등처럼 꾸불꾸불 하죠?? 그래서 낙타 규칙이라는 이름이 붙었답니다.
✍️✍️✍️✍️✍️✍️✍️✍️✍️✍️✍️
Snake Case ( 뱀 규칙 )
모든 글자를 소문자로 작성하는 대신 단어 사이를 ( _ : 언더바 ) 를 붙여서 표기하는 방식입니다.
예시)
i_am_variable
eatting_launch
i_am_very_sleepy
이것도 뱀 처럼 생겻다고 해서 뱀 규칙 ~
가끔 괴짜 개발자들은 자기가 만든 변수에 자기 이름을 넣는 괴상한 행동을 하기도 한다네요
ldy_i_want_to_go_home
그러지 맙시다 !!!!!!!!!
🤧🤧🤧🤧🤧🤧
상수
/* 상수란?
- 변수가 메모리에 변경될 값을 저장하기 위한 공간을 나타낸다면, 상수는 이와 상반되는 개념이다.
- 변하지 않는 값을(항상 고정된 값을) 저장해두기 위한 메모리상의 공간을 상수라고 한다.
- 상수의 사용 목적
- 변경되지 않는 고정된 값을 저장할 목적으로 사용한다.
상수도 명명규칙이 있습니다
/* 상수의 명명 규칙 / / 상수의 명명 규칙은 변수의 명명규칙과 컴파일 에러를 발생시키는 규칙은 동일하다.
- 단, 개발자들끼리의 암묵적인 규칙에서 일부 차이를 보인다.
⭐ 1. 모든 문자는 영문자 대문자 혹은 숫자만 사용한다.
⭐ 2. 단어와 단어 연결은 언더스코어(_)를 사용한다.
상수 명명 예시)
FINAL DOUBLE PI = 3.141592 // π (파이 , 원주율)
FINAL INT SECPERHOUR = 3600 // 1시간당 초
형 변환
. 작은 자료형에서 큰 자료형으로는 ‘자동 형 변환’ 된다.
. 큰 자료형에서 작은 자료형으로 변경 시 ‘강제 형 변환’ 이 필요하다.
형 변환도 꽤나 중요한 개념입니다.
지금은 자료형이라는 좁은 범위에서 고무 찰흙 놀이를 하고 있지만
나중에는 여러가지 자료형(자신이 직접 만드는 경우도 다수 = 클래스)을 관리할 때,
엄청나게 많은 형 변환을 해야 하기 때문에 …
위에 두 문장만 알고 넘어가십쇼 !!!!!!!!
'더존 노션 필기 옮기기 > Java' 카테고리의 다른 글
Java 6일차 객체배열, 상속 (0) | 2022.08.30 |
---|---|
Java 5일차 객체 (0) | 2022.08.30 |
Java 4일차 배열 (0) | 2022.08.30 |
Java 3일차 함수 조금, 스캐너, 제어문, 반복문 (1) | 2022.08.30 |
Java 2일차 연산자, 메소드(함수), 메모리 개념 조금 (2) | 2022.08.30 |