[JAVA] TIL 001 - 23.07.12

유진·2023년 7월 12일

00_프로그래밍 기초

  • 프로그램(Program) : 컴퓨터가 인식할 수 있는 명령어의 나열(집합)
  • 프로그래밍(Programming) : 프로그램을 작성하는 과정 = 코딩
  • 프로그래머(Programmer) : 프로그램을 작성하는 사람

* Java 프로그래밍 언어 특징

  1. 운영체제(OS)에 독립적
  2. 객체 지향 프로그래밍(OOP) 언어
  3. 사용하기 쉬운 언어
    • 능률적이고 명확한 코드 작성 가능
    • 다른 언어의 단점 보완(포인터, 메모리 관리)
  4. 자동 메모리 관리(Garbage Collection)

* Java 개발 환경

사용자/개발자 입장에 따라 설치하는 범위가 달라짐
JDK( Java Development Kit )

  • JRE(Java Runtime Environment)
  • JVM(Java Virtual Machine)

컴파일러(Compiler) : 코드를 2진수(0, 1)로 변환하는 번역기
코드 작성 -> ctrl + f11 실행 ( 컴파일러가 2진수로 번역 -> JVM이 실행 )

* Open JDK 설치

https://jdk.java.net/archive/

  1. 17.0.2 Windows 64-bit 설치
  2. 환경 변수 설정
    1) 윈도우 키(시작버튼) 클릭 후 "환경" 검색
    2) 시스템 환경 변수 편집 선택
    3) 환경 변수 클릭
    4) 시스템 변수 -> 새로 만들기 클릭
    5) 내용 작성 확인 후 확인
    - 변수 이름 : JAVA_HOME
    - 변수 값 : 다운로드 받은 JDK 압축 해제 폴더
    6) 시스템 변수 -> Path 선택 -> 편집 -> %JAVA_HOME%\bin 추가

* 자바 설정 (환경변수 테스트)

  1. 윈도우키 + R 버튼 누르고 실행창에서 cmd 입력 후 확인
  2. java -version / javac-version 입력 시 버전 정보 나오면 설정완료

* Eclipse IDE(통합 개발 환경) 설치

https://www.eclipse.org/downloads/

  1. Download Packages 클릭
  2. Eclipse IDE for Enterprise Java and Web Developers 설치
  3. C 드라이브에 tools 폴더를 생성하여 다운로드된 파일을 이동
    1) 압축 해제(여기에 풀기)
    2) eclipse.exe 실행(바탕화면에 바로가기 만들기 추천)
  4. Workspace 입력란에 C:\workspace\1_Java 작성 후 Launch 클릭

* 자바 프로그래밍 순서 (Eclipse 환경)

  1. project 만들기
    Project Explorer 창 우클릭 - New - Project - Project name 입력 - Finish
  2. Class 만들기 (단축키 : Ctrl + N)
    src폴더 우클릭 - New - class 클릭 - 패키지명 입력(소문자로 시작) - Class명 입력(대문자로 시작) - Finish
  3. Class 작성 후 실행
    class 작성 완료 후 Ctrl + F11을 눌러 실행

* class

객체를 만들기 위한 일종의 설계도
자바에서 모든 코드는 반드시 클래스 안에 존재해야 하며, 서로 관련된 코드들을 그룹으로 나누어 별도의 클래스를 구성
클래스들이 모여 하나의 Java 애플리케이션 구성

* 주석(comment)

코드에 대한 설명이나 그 외 다른 정보를 넣을 때 사용하는 것으로 컴파일 시 컴파일러가 주석 부분은 건너 뜀

// : 한 줄 주석
컴파일러가 해석하지 않는 부분, 주로 코드 설명 작성

/* / : 범위 주석
/
와 */ 사이 내용은 주석으로 간주

* main (main method)

public static void main(String[] args)고정된 형태의 메서드 선언부로 Java Application을 실행하는데 필요한 메서드 (프로그램 실행 시 java.exe에 의해 호출됨)
모든 클래스가 main메서드를 가지고 있어야 하는 것은 아니지만 하나의 Java애플리케이션에는 main메서드를 포함한 클래스가 반드시 하나 이상 존재해야 함

  // 메인 메서드
	public static void main(String[] args) {
		System.out.println("Hello world !!!");
		System.out.println("나는!!");
		System.out.println("이유진이야!!!");
	}

* Class 작성 예시

1. 패키지(package) 선언
2. 임포트(import) 선언
3. 클래스(class) 작성부
- 필드 (또는 멤버 변수)
- 생성자
- (멤버) 메서드

01_변수(Variable)

* 변수(Variable)

메모리(RAM)에 값(Data)을 기록하기 위한 공간
변수에 기록된 값은 지속적으로 사용 가능

package edu.kh.basic; // 3레벨 이상으로 작성

public class JavaTest {

	// class : 자바 코드가 작성되는 영역
    
    public static void main(String[] args) {
    	// main method(메소드) : 자바 애플리케이션(프로그램)을 실행하기 위해 반드시 필요한 메서드
        
        // ctrl+alt+방향키 : 작성한 방향으로 해당 줄 복사
        System.out.println("Hello world!");
        System.out.println("점심은 드셨나요?");
        System.out.println("12345");
        
        System.out.println("----------------------------");
        
        // 숫자 연산
        
        System.out.println("1 + 2"); // 1 + 2
        System.out.println(1 + 2); // 3
        
        // "" 안에 작성된 코드는 단순 문자열 인식
        // "" 안에 작성되지 않은 코드는 숫자, 변수로 인식
        
        System.out.println(50 - 23); // 27
        System.out.println(12 * 13); // 156
        System.out.println(327 / 3); // 109
        
        // ""(문자열) + 숫자 함께 작성
        System.out.println("14 * 19 = " + 266); // 14 * 19 = 266
        System.out.println("14 * 19 = " + 14 * 19) // 14 * 19 = 266
        
        System.out.println("90 + 70 + 65 = " + (90 + 70 + 65)); // 90 + 70 + 65 = 225
        
        // 자바는 사칙연산의 우선순위를 그대로 따른다!
        // -> 우선 계산을 원하면 () 괄호 사용
        
        // + 기호의 역할
        // -> 숫자 + 숫자 = 덧셈 연산 결과
        // -> 문자열 + 숫자 or
        //    문자열 + 문자열 --> 이어쓰기        
      }
    }  
package edu.kh.variable.ex1;

public class VariableExample1 {
	// .java 파일과 class 오른쪽에 작성된 이름은 같아야 한다.
    
    public static void main(String[] args) {
    	System.out.println(2 * 3.141592653589793 * 5);
    	System.out.println(3.141592653589793 * 5 * 5);
        
        /* 변수(Variable)
        * - 메모리(RAM)에 값을 기록하는 공간
        *   -> 공간에 기록되는 값(Data)이 변할 수 있어서 변수라고 한다.
        *
        * - 변수는 여러 종류 존재(저장되는 값의 형태, 크기가 다름)
        *
        *
        * 변수 사용의 장점
        *
        * 1. 가독성 증가(읽기 편해짐)
        * 2. 재사용성 증가(한번 만든 변수를 계속 사용)
        * 3. 코드 길이 감소
        * 4. 유지보수성 증가(코드 수정이 간단해짐)
        *
        */
        
        // 변수 사용
        double pi = 3.141592653589793; // 원주율
        int r = 5; // 반지름(radius)
        int h = 20; // 높이(height)
        
        System.out.println("-------------------------------");
        System.out.println(2 * pi * r); // 원의 둘레
        System.out.println(pi * r * r); // 원의 넓이
        System.out.println(pi * r * r * h); // 원기둥의 부피
        System.out.println(4 * pi * r * r); // 구의 겉넓이
       }     
     } 

* 데이터 저장 단위

저장 공간이 제한적이기 때문에 저장 크기에 대한 기준과 CPU가 데이터를 처리할 때 일정한 기준 필요

  • 1byte = 8bit

* 변수의 선언

메모리 공간에 데이터를 저장할 수 있는 공간을 할당하는 것

자료형(변수타입지정) 변수명(변수명지정);

  • 선언 예시
    // 논리형 변수 선언
    boolean isTrue;
    // 문자형 변수 선언
    char ch;
    // 문자열 변수 선언
    String str;
    // 정수형 변수 선언
    byte bNum;
    short sNum;
    int iNum;
    long lNum;
    // 실수형 변수 선언
    float fNum;
    double dNum;

4. 자료형(Type)

표현식메모리 크기
논리형
boolean1byte
숫자 - 정수형
byte1byte
short2byte
int4byte(정수 기본형)
long8byte
숫자 - 실수형
float4byte
double8byte(실수 기본형)
문자 - 문자
char2byte
문자 - 문자열
String참조형

* 변수의 명명 규칙

1. 대소문자가 구분되며 길이 제한이 없다.

2. 예약어를 사용하면 안 된다.
ex) true, final, String 등

3. 숫자로 시작하면 안 된다.
ex) age1은 가능하지만 1age는 불가능

4. 특수문자는 '_'와 '$'만을 허용한다.

  • '$'는 내부 클래스에서 사용
  • '_'사용 시 컴파일 에러는 없지만 관례상 사용하지 않는 것이 좋음
    ex) sh@rp는 불가능하지만 $harp는 가능

5. 여러 단어 이름은 단어의 첫 글자를 대문자로 한다.
단, 첫 시작 글자는 소문자로 하는 것이 관례이다.
ex) ageOfVampire, userName

0개의 댓글