[JAVA] JAVA INTRO

아임 레조·2022년 8월 12일
0

JAVA

목록 보기
21/21
post-thumbnail

JAVA

  • 단순성, 사용자에게 혼란을 줄 수 있는 요소 삭제
  • 설정의 단순화
  • 불필요한 기능의 삭제
  • cpp기반의 객체지향 프로그래밍 언어
  • 고급언어(High-level programming language)

인터프린터 방식(하이브리드 방식) vs 컴파일 방식

고급언어로 작성된 프로그램을 실행하는데에는 두가지 방법이 있는데 가장 일반적인 방법은 프로그램을 컴파일하는 것이고, 다른 하나는 프로그램을 인터프린터에 통과시키는 방법이다.

  • 인터프린터(하이브리드) 방식: 인터프리터는 고급언어로 작성된 원시코드 명령어들을 한번에 한줄씩 읽어들여서 실행하는 프로그램이다. 운영체제에 독립적이고 컴파일 방식보다는 속도가 느리다.

  • 컴파일 방식(C계열): 컴퓨터는 기계어를 이해할 수 없다. 그걸 이해할 수 있도록 작성해주는 것! 운영체제에 종속적이며 인터프린트 방식(자바)보다 빠르다.

JAVA 개발 환경 구축

  • JDK: 컴파일러와 자바 실행 환경을 제공해주는 프로그램(파일)
  • JRE: 자바 실행 환경을 제공(JVM포함)
    JDK > JRE > JVM 이 포함되어 있다
  • JVM(JAVA Virtual Machine): JAVA 프로그램을 실행할 수 있도록 하는 가상의 운영체제, 자동 메모리 관리

IDE(통합개발환경툴)

  • EditPlus (코드편집기에 가깝다, 공부하는데 도움이 많이 된다)
  • Eclipse(eclipse.org)
  • IntelliJ

레지스트

소프트웨어와 하드웨어 사이에서 중개하는 역할, 문제는 우리가 완전 기계를 알아야 한다. A컴퓨터에서 개발을 했으면 B컴퓨터에서도 사용할 수 있어야하는데 사용할 수 없다(이식성 없다).

  • 사용자, 프로그램 비율에 따라 결정되는 것이지 좋다 나쁘다의 문제가 아니다.

  • C언어를 기준으로 보통 저급언어와 고급언어가 나뉜다

  • 저급언어(기계가 쉽게 사용할 수 있는 언어)

  • 고급언어(사람이 쉽게 사용할 수 있는 언어)

  • 고급언어일수록 기계는 쓰기 어렵단 뜻> 구동이 느려진다

  • 저급언어는 사람이 개발하기 어렵단 뜻> 개발하는데 오래걸린다

  • C언어가 나오면서 기라성같은 IT기업이 생겼다.

  • 절차지향: 위에서부터 아래로 간다는 뜻이 아니라 함수단위로 프로그램을 작성하는 방식이라는 뜻이다. 함수가 함수를 호출하는 것처럼! 개발하기가 쉽지 않아서 많은 인력이 필요해졌고 자연스레 비용이 증가했다. 프로그램의 가격이 올라가고 이익률이 낮아졌다.

  • 객체지향: 데이터(공간)을 여러개 묶어놓고 기능(메소드-함수), 객체중심의 프로그램 언어, 객체끼리 상호작용해서 프로그램을 작성하는 방식을 말한다. 간단히 '찍어낸다'고 생각하면 된다. '데이터를 쓰겠대요, 근데 기능을 미리 다 만들어놓고 필요한거 있음 갖다가 써!' 이런 식으로! 설계도만 존재하면 그냥 그 설계도대로 찍어내면 끝!

  • 자바는 C언어를 기반으로(CPP)해서 개선할 것들을 개선, 걷어내고 나온 언어이다.

  • 사실 자바보다 CPP가 더 안정적이고 이전에 개발할 때 C로 다 했었다. 근데 웹이 발전하면서 자바가 다시 흥해졌다.

  • .c > 컴파일 > .obj > 빌드(각각의 운영체제에 맞춰진 최적의 프로그램을 만들기 위해서 하는 것) 통해서 > .exe > 실행
  • .java > 컴파일 > (바이트 코드로 변환한다) .class > .jvm > 실행
    자바를 하이브리드방식이라고 하는 이유는 컴파일 과정이 들어가있기 때문이다. C나 자바는 파일 전체를 변환해서 작동시키고 파이썬은 한줄한줄 실행시킨다.
  • jre설치했는데 한번 더 설치하라고 나온다 > 자바는 외부 응용 프로그램과 연동되는 경우가 많다.

  • .metadata가 생기는데 이건 workspace 관리해주는 폴더이다.

  • package(=폴더같은 것): 비슷한 기능을 가진 파일들을 관리하기 쉽도록 하나의 폴더로 모아둔다. 회원관련-회원폴더에, 게시판관련-게시판폴더에 모아두는 식이다.

  • project: 프로그램의 기본 틀

  • class: 필요한 기능들의 모음(클래스 포함)

프로그램 기본 구조

import java.lang.*;

/* 
01.import 경로; 
프로그램에서 필요한 기능을 가져다 쓰기 위한 키워드 
import는 위치 알려줄테니 갖다 써, 
include는 포함시킴(include 용량이 커질 수밖에 없음)

02.java.lang 패키지 
프로그램에서 기본적으로 필요한 기능들을 정의한 패키지
기본적으로 모든 파일이 자동으로 import 하고 있다 

03. 패키지
비슷한 기능들의 파일들을 모아 놓은 폴더 

04. * 
'모든 것' 의미  

05. {} 
영역 또는 지역 표시
데이터의 묶음 처리 (여러 개의 데이터가 나올 때 그 데이터들을 
묶음 처리하기 위해 중괄호 사용 ex: 배열) 
*/

public class AugTue09{
	//class 영역 
	/*
	자바에서는 모든 프로그래밍 코드를 class영역 안에 적어야 한다
	클래스명은 camel case로 작성
	실행 시, 클래스를 찾을 때는 파일명을 통해 클래스를 찾는다 
	파일명과 클래스명은 동일하게 작성해야 한다 
	*/
	public static void main(String[], args){
		//main method 영역
		/*
		01. method vs 함수(function) 
		클래스 내부에 정의한 함수(method), 클래스의 멤버 .lang 이런 식
		여러 문장들이 하나의 기능을 구현하도록 구성한 것(function)
		즉, 함수 중에서 클래스 내부에 정의한 함수를 method라고 한다 
		02. 한가지 기능을 실행할 수 있도록 정의한 작은 프로그램 

		*/

		system.out.println("Heavy rain today!"); 

	}
}

프로그램에서 자주 사용되는 데이터

import java.lang.*; 

public class AugWed10_01{
	public static void main(String[], args){
		// '.' 멤버 참조 연산자 - 클래스의 멤버를 참조(호출)하는 연산자 
		
		// 프로그래밍에서 자주 사용되는 데이터 
		// 1. 정수 
		System.out.println(10); 
		// 2. 실수
		System.out.println(10.234); 
		// 3. 문자 - 문자형 데이터를 구별하기 위해서 '' 안에 작성 
		System.out.println('S'); 
		// 4. 문자열 - 모든 프로그래밍 언어에서는 문장을 문자열이라 부른다, 구별하기 위해서 "" 안에 작성 
		System.out.println("System.out.println"); 

		// package - 비슷한 기능의 파일들을 하나로 모아놓은 것, name 다 소문자로 
	}
}
profile
어쩌다보니 백엔드 개발자/ 번아웃 없이 재밌게 개발하고 싶어요

0개의 댓글