컴파일 : 인간이 작성한 코드를 컴퓨터가 알아듣게 번역하는 작업

컴파일러

자바 언어를 해석하는놈은 자바컴파일러 ( javac )

이놈의 특징 >> 컴파일 하고 나면 class 파일이 생성 된다.

두 가지 파일을 직접 열어보시면 감이 오실거에요.

.java 파일 >> notepad++ 로 실행하면 인간의 언어가 보인다. ( 컴퓨터의 입장에서 이해 불가능)

.class 파일 >> notepad++ 로 실행하면 기계어가 보인다. ( 컴퓨터의 입장에서 이해 가능 )

JDK ( Java Development Kit )

여러가지 종류가 있는데 제일 대표적인 JDK는

OpenJDK , Oracle JDK 1.8 (일점팔) , Oracle JDK 11 (십일)

작업 경로 : C\Workspace

개발 도구 : 이클립스 설치

  1. 6월 버전

https://www.eclipse.org/downloads/packages/release/2021-06/r

 

2021-06 R | Eclipse Packages

517 MB 519,828 DOWNLOADS Tools for developers working with Java and Web applications, including a Java IDE, tools for JavaScript, TypeScript, JavaServer Pages and Faces, Yaml, Markdown, Web Services, JPA and Data Tools, Maven and Gradle, Git, and more. Cli

www.eclipse.org

설치 끝났으면

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시간당 초

형 변환

. 작은 자료형에서 큰 자료형으로는 ‘자동 형 변환’ 된다.

. 큰 자료형에서 작은 자료형으로 변경 시 ‘강제 형 변환’ 이 필요하다.

형 변환도 꽤나 중요한 개념입니다.

지금은 자료형이라는 좁은 범위에서 고무 찰흙 놀이를 하고 있지만

나중에는 여러가지 자료형(자신이 직접 만드는 경우도 다수 = 클래스)을 관리할 때,

엄청나게 많은 형 변환을 해야 하기 때문에 …

위에 두 문장만 알고 넘어가십쇼 !!!!!!!!

 

+ Recent posts