본문 바로가기
카테고리 없음

20250320_java2~3

by greentworkshop 2025. 3. 20.

자바 이론

자바의 특징

  • simple
    •  No Pointer Operation 포인터 연산이 없다
    •  No Multiple Inheritance 다중상속을 지원하지 않아 모호하지 않다
    •  No Memory Management 메모리 관리를 따로 안해도 Garbage Collector가 관리하여 편리하다.
  • object-oriented language 객체지향언어
    •  캡슐화(Encapsulation) : 자료추상화를 기반으로 정보은닉을 제공하는 단위
    •  상속성(Inheritance) : 기존의 클래스가 지닌 잘구조, 연산을 기반으로 새 클래스 저으이하는 기능
    •  다형성(Polymorhphism) : 적용되는 객체에 따라 연산의 의미가 달라지는 것
  • architecture neutral 플랫폼 독립적
    •  windows, linux, solaris, mac... 다양한 플랫폼 지원
       WORA(Write One Run Anywhere) : 한 번 쓰면 어디서든 실행된다.
       자바 소스를 컴파일한 목적 코드, cpu 종속적이지 않은 중립코드, jvm이 해석 = byte code
       byte code는 .class 파일에 저장, jvm이 인터프리팅함
  • dyamic linking 동적 링킹
    • 라이브러리가 변경되어도 컴파일을 다시 수행할 필요 없다.
      라이브러리를 공유하기 떄문에 자원절약 가능
  • multithreading 멀티스레드를 지원함
    •  하나의 프로세스 안에 다수의 스레드가 존재하는 것
       Process 프로세스 - 실행 중인 프로그램
       Thread 스레드 - 경량화된 프로세스... 추가


자바 프로젝트 > 자바 패키지 > 자바 클래스
java파일 저장시 .class 파일 생성

//-------------------------
주석

/* 실행과 무관 */
/** 소스코드 맨 앞 전반적 설명을 작성하는 주석, 자동으로 소스코드의 매뉴얼 생성을 가능케함 javadoc명령*/
// 같은 라인에서 이후 나오는 내용은 실행과 무관

//-----------------------
public class Main{ ... }

package com;

public class Main{    
	public static void main(String[] args){
	// ... 
	}
}

/*Public class Main은 Main.java에, Public class A라면 A.java파일에 저장되어야 한다.*/

default는 같은 패키지 내에서만 사용 가능

public 을 붙이면 어디서나 사용 가능


//--------------------------------
자바의 기본 타입

기본자료형 = 선언과 동시에 자룔를 저장하기 위한 기억 공간이 할당

참조형 = 선언과 동시에 받는 것이 아님, 참조형 변수를 위한 기억공간만 할당받음

(기본형을 뺀 나머지 자료형 = 참조형 변수)

기본자료형 (8개)
자료형 이름 크기
논리 boolean 1bit
문자 char 2byte
정수  byte 1byte
short  2byte
int 4byte
long 8byte
실수 float  4byte
double  8byte
객체 참조형(object reference type)
클래스 ... ...
인터페이스 ... ...
배열 ... ...
열거 ... ...

/--------------------------------------

변수와 자료형

종류 설명
데이터 필드 인스턴스 변수 클래스 정의에서 non-static 필드 개별 객체가 소유한 변수
클래스 변수 클래스 정의에서 static필드, 동종 객체 간 공유변수(정적 변수)
*/static 프로그램 종료시까지 값 유지
지역변수 메서드 내부에서 선언된 변수
//지역 변수는 초기값을 지정한 후 사용해야함
파라미터 메서드 호출 시 전달하는 값을 저장하기 위한 변수

지역 변수, 파라미터

선언된 곳부터 블록이 종료될 때까지 유효, 메소드 실행시 만들어짐, 종료시 소멸


여기부터 실습

java -version명령어로 cmd에서 버전 확인



저장위치의 차이

Main.java

package com;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("Hello java"); //ln줄바꿈
		
	}

}

Test.java

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("Hi java");
	}
}

public class : 어디서나 접근 가능한...


실습2 ?

저장 위치

package com;
//위의 package com; 지워버리면 default 패키지로 인색해서 오류뜸
class Grade{
	int e;
	int m;
	
	void output_grade()
	{System.out.println(e+m);}
	
}


public class Sungjuk {
	public static void main(String[] args) {
		Grade g1 = new Grade();
		Grade g2 = new Grade();
		
		g1.e = 90;
		g1.m = 85;
		g2.e = 80;
		g2.m = 70;
		g1.output_grade();
		g2.output_grade();
	}

}