728x90
JAVA 개념 정리
JAVA 는 자바는 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.
- 자바 프로그램 OS에 상관없이 코드 똑같이 실행 가능하다
- jdk내부에서 알아서 맞춰주는 작업하기때문이다
자바를 개발하고나서 실행할수 있는 자바 환경이 만들어짐 = 플랫폼
그안에 자바를 실행할 수 있는 가상 머신이 만들어진다 = JVM (Java Virtuall Machine)
자바를 이용해 개발할수있는것 = API (java Application Programing Interface) = Library
자바플랫폼
- J2SE : 자바기본, JDBC, network, IO, Thread,,,
- J2EE : serlet&JSP ...EJB(안전하고, 무겁고 복잡함) 대신 스프링씀
- J2ME: 모바일, 임베디드(기계 안에 삽입된 프로그램-ex폴더폰 피쳐폰)
- 컴파일언어 - 내가만든 언어를 자바내부에서 번역해서 실행한다 (javac - 컴파일러)
- 인터프리터언어 - 한줄한줄 해석해서 실행 (java - 인터프리터)
바이트코드 (bytecode)
개발자가 작성한 자바소스코드를 컴파일하면 생성되는 클래스 파일
(.java를 확장자가 .class인 바이트 코드로 변환된다)
자바로 작성할 수 있는 프로그램
java인터프리터가 명시된 클래스파일 안에서 메인메소드인 public class void main(String[] args)를 찾아서 첫번째 문장부터 실행한다. 이런 인터프리터에 의해 실행되는 자바 프로그램을 자바 애플리케이션이라고한다
- Application : JVM에서 해석되며, 시스템 자원에 쉽게 접근이 가능한 프로그램이다.
- Applet : 자바 바이트코드 형태로 배포된다. JVM이 네트워크에서 다운로드 되어 AppletViewer로 동적으로 실행할 수 있다.
- Servlet : 서블릿은 자바를 사용하여 웹페이지를 동적으로 생성하는 프로그램이다.
실행 순서
자바 소스 파일 작성
↓
컴파일
↓
바이트코드 생성
↓
자바 실행
data type
자바는 변수에 data type을 꼭 줘야한다
- Primitive (기본형) - API lang package : 값을 저장하기 위한 타입. 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)
- Reference(참조형) : 기본형에 속하지 않는 모든 데이터 타입. 자바프로그램 내부에서 사용하는 클래스들이 할당된 메모리의 주소를 저장. 자바에서 제공하는 API(클래스) , 내가만든 클래스, 배열...
차이점:
기본형변수는 실제 값을 불러오기때문에 연산이 가능하고,
참조형 변수는 값이 저장되어있는 주소값을 불러오기때문에 연산이 불가능하다.
클래스의 3가지 구성요소
인스턴스 변수(instance variable) == 멤버변수 == 멤버필드 : 클래스 구성요소인 속성값을 저장하기위한 용도
메서드(method) == 멤버메서드 : 속성 값을 수정하거나 조회 또는 다양한 기능 처리 및 중복처리 담당 역할
생성자(constructor) : 초기화 역할(변수에 데이터를 맨 처음 지정할 때 사용
지정자(modifier)
① 일반 지정자(modifier) - static, final, abstract
② 접근 지정자(access modifier) - private, protected, (default), public
접근지정자는 클래스들 간의 상호 작용시 보안 및 코드효율성등을 위해서 사용된다.
728x90
'Programming > Java' 카테고리의 다른 글
Java / Networking / 소켓( socket ) 통신 프로그래밍 (0) | 2021.03.27 |
---|---|
Java / 캡슐화 / 상속 / 다형성 개념 (0) | 2021.03.26 |
Java / 결제 시스템 연습 / extends와 implements 차이 (0) | 2021.03.25 |
Java 기본 제공 API / 패키지 / String / Random 클래스 / 개념 (0) | 2021.03.20 |
Java / OOP 객체 지향/ BufferedReader / try ~ catch (0) | 2021.03.13 |
댓글