jjinny_0609
냐냥
jjinny_0609
전체 방문자
오늘
어제
  • 분류 전체보기 (249)
    • IT (18)
      • Eclipse (1)
      • 라즈베리파이 (8)
      • 정보처리기사 (2)
      • 팀 프로젝트 (5)
      • 자료구조 (1)
      • CS 지식 (0)
    • 프로그래밍 언어 (75)
      • Java (33)
      • 파이썬 (4)
      • Node.js (38)
    • 프론트엔드(Frontend) (83)
      • HTML (7)
      • CSS (8)
      • JavaScript (10)
      • jQuery (2)
      • React (50)
      • Vue.js (6)
    • 백엔드(Backend) (62)
      • 네트워크 (1)
      • 데이터베이스 (49)
      • Spring (6)
      • JSP (6)
    • 협업 도구 (6)
      • Git & GitHub (6)
    • 리뷰 (1)
      • 향수 (1)
    • Game Engine (2)
      • 언리얼 엔진5 (1)
      • Unity (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그관리 홈
  • 글쓰기
  • 글관리

공지사항

인기 글

hELLO · Designed By 정상우.
jjinny_0609

냐냥

Java 기초 #1
프로그래밍 언어/Java

Java 기초 #1

2023. 1. 27. 16:22
728x90

프로그래밍 언어와 자바

  • 기계어 : 0과 1로 이루어진 언어
  • 소스파일 : 프로그래밍 언어로 작성한 파일
  • 컴파일 : 기계어(0과1로 이루어진 언어)를 번역해주는 역할을 해줌
  • 자바의 특징 :
    모든 운영체제에서 실행이 가능하다.
    -> 윈도우에서 개발한 코드를 다른 운영체제에서 수정없이 실행가능하다.
    객체 지향 프로그래밍(oop: Object-Oriented Programming)을 사용하기 좋다.
    -> 객체(부품)을 만들고 이 객체들을 서로 연결해서 더 큰 프로그램을 완성하는 기법
  • 자바는 전체 번역 후 결과를 알려준다.
  • 메모리 자동 정리 기능이 있다.
    -> garbage collection를 통해 스스로 메모리 관리를 수행하기 때문에 메모리 관리가 편하다.
  • 무료 라이브러리가 풍부하다.
    -> 오픈 소스 라이브러리가 풍부하기 떄문에 프로그램 개발 기간을 단축한다.

 

워크스페이스 변경 방법

[file] - [Switch Workspace] - [Other]

 

자바 프로그램 개발 과정

자바 소스 파일 => 	javac명령어 실행	=> 바이트 코드 파일  => java 명령어 실행       => 실행
(Hello.java)	        (컴파일)		    (Hello.class)  (jvm이 기계어 번역후 실행)

 

자바 클래스 생성

생성할 패키지 우클릭 [new] - [class] 선택

public static void main(String[] args)를 체크
빨간색 박스를 체크 했을때 class 생성 결과 public static void main(String[] args)를 자동으로 적어줌

 

체크 안했을때
위와 같은 결과가 나타남.
자바 소스코드 결과 보는법

Console에 결과창이 표시됨.

 

모듈명

JDK 11 버전 이후 부터 모듈 기술자(module-info.java)에서 키워드 다음에 있는것이 모듈명이다.
모듈명을 꼭 프로젝트명으로 할 필요는 없음. 명령 프롬프트와 같은 명령 라인에서 프로젝트를 실행할 때 모듈명이 필요.

 

패키지(pakage)

기능별로 쉽게 관리하기 위해 만드는 것. -> 파일 시스템의 폴더(디렉토리)와 비슷함

 

바이트 코드 파일

바이트 코드 파일은 작업위치로 부터 ../../bin/(pakage 폴더) 에 위치한다.

 

프로그램 소스 분석

중괄호 {} 블록의 앞부분인 public class Hello를 클래스 선언부라고 한다.
pulic class는 공개 클래스라는 뜻이고 , Hello는 클래스 이름이다.
클래스 이름은 소스 파일명과 동일해야하며, 대소문자도 일치해야 한다.

클래스 선언부, 이름, 블록

 

 

중괄호 {} 블록의 앞부분인 public static void main(String[] args)를 메소드 선언부라고 한다.
그리고 괄호 () 바로 앞의 main은 메소드 이름입니다.
java 명령어로 바이트 코드 파일을 실행하면 제일 먼저 main() 메소드 이름 메소드를 찾아 블록 내부를 실행합니다.
main() 메소드를 프로그램 실행 진입점(entry point)라고 부릅니다.

메소드 선언부, 이름, 블록

 

자바스크립트 주석 사용

라인주석   //	//부터 라인 끝까지 주석으로 처리한다.
범위 주석  /* */	/*와 */사이에 있는 내용은 모두 주석으로 처리한다.

실행문과 세미콜론(;)

실행문 끝에는 반드시 세미콜론을 붙여 실행문을 끝났음을 표시해주어야 하며, 그렇지 않으면 컴파일 에러가 발생한다.

 

세미콜론이 빠져 컴파일 에러가 발생한 상황


변수

변수(variable)는 값을 저장할 수 잇는 메모리의 특정 번지에 붙이는 이름입니다.

자바스크립트와 다르게 자바는 변수 선언시에 타입을 지정해주어야함.
정수면 정수 타입, 실수면 실수 타입의 선언이 필요함.

 

타입 변수명

int age; //int 정수형 타입 - 소숫점이 없는 숫자
double value; // double 실수형 타입 - 소수점이 있는 숫자

 

자바에서의 변수 작성규칙

  • 첫 번째 글자는 문자이거나'$','_'이어야 하고 숫자로 시작할 수 없습니다 (필수)
    ex) 가능 : price, $price, _companyName 불가능 : 1v, @speed, $#value
  • 영어 대소문자를 구분합니다 (필수)
    ex) firstname 과 firstName은 다른 변수
  • 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 합니다(관례).
    ex) maxSpeed, firstName, carBodyColor
  • 문자 수(길이)의 제한은 없습니다.
  • 자바 *예약어는 사용할 수 없습니다(필수).
    ex) int, long , if, void 등..
    Int(i가 대문자면 사용가능 -> 대소문자 구분하기 때문)

*예약어 : 해당 프로그래밍 언어에서 의미를 갖고 이미 사용되고 있는 언어를 뜻함.

 

값 저장

변수에 값을 저장할 때에는 대입연산자(=)를 사용한다.
ex)
int score; //변수 선언
score = 90; //값 저장

//위 두줄을 한줄로 처리 가능
int score = 90; //score 변수를 선언함과 동시에 값 90을 저장

 

변수 사용 예제

package ch02;

public class VariableUseExample {

	public static void main(String[] args) {
		int hour = 3;
		int minute = 5;
		
		System.out.println(hour + "시간 " + minute + "분");
		
		int totalMin = (hour * 60) + minute;
		System.out.println("총 "+totalMin+"분");
	}
}

예제 결과

println : enter(줄바꿈) 역할을 해줌

 


두 변수를 교환하는 예제

temp로 임시변수 저장공간을 만들어 값을 교환하는 예제

package ch02;

public class VariableExchangeExample {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
			int x = 3;
			int y = 5;
			System.out.println("x:"+x+", y:" +y);
							// x:3, y:5
			int temp = x;	// temp = 3;
			x = y;			// x = 5;
			y = temp;		// y = 3;
			System.out.println("x:"+x+", y:" +y);
							// x:5, y:3
	}

예제 결과


지역변수와 전역변수

지역변수

지역변수는 반드시 초기화 해주어야함!!

초기화를 안하면 위와같은 오류메시지가 나타남 (The value of the local variable hour is not used - 로컬 변수 값이 사용되지 않음)

 

노란색 밑줄의 의미 : 현재 값을 사용하고 있지 않기 때문에 경고를 해주는 것 (노란색 밑줄은 있어도 실행은 가능)

package ch02;

public class VariableScopeExample {

	public static void main(String[] args) {
		int v1 = 15;
//		int v2;	지역변수 초기값을 안주면 The local variable v2 may not have been initialized
//		지역변수는 초기화 하지 않으면 안됨.(로컬 변수 v2가 초기화되지 않았을 수 있습니다)
		int v2 = 0; // 정상작동
		if(v1>10) {
//			int v2;		if안에서 v2를 선언한 경우
			v2 = v1 - 10;
		}
		int v3 = v1 + v2 + 5;	
		// if 안에서 v2를 선언했기때문에 if문이 끝나고 나면 지역변수의 
		// 메모리상에서 값이 사라지기 때문에 v3에서 v2를 더하려면 값을 찾지못함
		// v2 cannot be resolved to a variable (v2를 변수로 확인할 수 없습니다)
	}
}

v2 cannot be resolved to a variable (v2를 변수로 확인할 수 없습니다) 경고창


기본타입 참조타입

단위 Bit(0,1) - 1Byte(8bit) - 1KB(1,024byte) - 1MB(1,024kb) - 1GB(1,024mb) - 1TB(1,024gb)

부호 비트가 있는 정수를 처리하기 위한 자료형을 signed 정수형이라고 합니다.
부호 비트 : 이진수 표시에서 부호를 나타내는 비트. 양수는 0, 음수는 1로 표시하며, 숫자의 크기를 나타내는 비트의 맨 앞에 둔다.

 

정수형 (소숫점이 없는 숫자,문자)

byte : 1byte / 8bit,
short : 2byte / 16bit,
char : 2byte / 16bit, 문자 하나를 저장, "a", "가"
int : 4byte / 32bit,
long : 8byte / 64bit,

실수형 (소숫점이 있는 숫자)

float : 4 byte / 32bit
double : 8 byte / 64bit

논리형 (true, false)

boolean : true, false

 

문자형

char a = '안녕하세요'; // char는 문자 하나를 저장하기 때문에 문자열을 저장못함, 한 글자는 ' ' 로 묶어줘야함
->
char a = '안'; // 이건 가능

String s = "안녕하세요"; // " "로 묶어줘야 문자열이 출력됨
(String은 참조형 타입) - 객체로 저장함

연락처를 숫자타입 int로 저장하게되면 010을 시작하게 되면 0을 빼버리게됨
(이건 문자로 저장해야함)

 

Java 기초 #2에 이어서...

728x90

'프로그래밍 언어 > Java' 카테고리의 다른 글

Java 조건문과 반복문 #1  (0) 2023.02.02
Java 연산자 #2  (0) 2023.02.02
Java 연산자 #1  (0) 2023.02.01
Java 기초 #3  (0) 2023.01.31
Java 기초 #2  (0) 2023.01.30
    jjinny_0609
    jjinny_0609
    뉴비 개발자의 학습 내용을 정리한 블로그입니다.

    티스토리툴바