다잘하고싶어

자바기초 본문

이론학습/JAVA

자바기초

챙영잉 2023. 1. 16. 11:50

목차

더보기

목차

프로그램과 운영체제
컴퓨터의 자료표현
자바 가상 머신 JVM
JRE vs JDK
메모장으로 코딩 후 실행하기
주석
출력문( print, println, printf)
이클립스 기본설정
변수 (데이터타입, 형변환)
연산자
조건문
반복문
break, continue

프로그램

  • 명령어 → 일 해!( ex. 연산)
  • 프로그램 = 명령어들의 묶음, 작업지침서

최초의 컴퓨터 : ENIAC(애니악, Electronic Numerical Integrator and Computer)

  • 1945년, 포병에서 궤적을 계산하기 위해 만들어짐.
  • 정밀한 계산
  • 사람이 20시간 걸리는 일을 30초만에 해결 가능해짐.
  • 2400명의 사람 대체

운영체제

  • 시스템 하드웨어 관리 + 응용소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼을 제공하는 것
  • 종류 : 리눅스, 윈도우, OS, 안드로이드(모바일)

컴퓨터의 자료 표현

비트(Bit)

  • Binary digit
  • 컴퓨터가 값을 저장할 수 있는 최소단위
  • ex. 비트가 2개라면 4가지의 값을 표현할 수 있다.(00,01,10,11)

바이트(Byte)

  • 8비트 → 256가지의 값 표현 가능( 2의 8승)
  • 정보의 최소 단위
  • -128부터 127까지

2진수

  • 자바에서 음수를 표현?
  • 비트를 반전시킨다. → 마지막에 1을 더한다

자바 가상 머신( Java Virtual Machine)

  • 자바 바이트 코드를 실행할 수 있는 주체

  • 자바 바이트 코드는 기계어와 유사하지만 기계어는 아님( 그 전 단계)

장점

  • 컴파일을 한 번만 해도 된다.
  • 운영체제에 맞게 코드를 짤 필요가 없다.(운영체제와 독립적 운영이 가능)

JDK vs JRE

  • JDK : 개발자 도구 ( JRE + 개발에 필요한 도구)
    • 개발에 필요한 도구 ex. 컴파일러, 디버거
  • JRE : 자바 실행 환경 ( JVM 포함)

메모장에 코딩한 후에 C드라이브 Temp 폴더에 파일형식을 모든파일로 바꿔주고 txt 파일이 아닌 ~~.java 파일로 저장해준다

cmd 창을 켠다.

javac → 자바파일을 컴파일해줘 (소스코드를 바이트 코드로 만드는 과정)

javac Hello.java

바이트 코드를 JVM 을 사용해서 실행시킴

메인메소드

  • 실행명령인 java 를 실행할 때 가장 먼저 호출되는 부분
  • Application 에서 main() 메소드가 없다면 절대 실행되지 않는다

주석

//  : 한 줄 주석

/* */ : 여러 줄 주석

/** */ : documentation API 를 위한 주석처리
-> javadoc API 를 사용하면 이 주석만 읽어서 document 파일을 만들어준다.

출력문

print

  • 문자열 출력

println

  • 문자열 + 개행문자(엔터)

printf

  • 형식 지정자를 사용해서 출력하는 메소드
  •  f 는 포맷의 약자
  • %d : 정수 → decimal , 10진수의 약자
  • %f : 실수 →
  • %c : 문자 → char
  • %s : 문자열 → string

⇒ 실습

  • 역슬래쉬를 출력하고 싶다면? 2개가 필요!
  • 따옴표를 출력하고 싶다면? 따옴표 앞에 \를 넣어준다
		System.out.println("\\\\");
		 
		System.out.println("\\"");
  • printf 실습
		System.out.printf("%d\\n", 10);
		System.out.printf("%4d\\n", 10); //4칸을 확보한 다음, 오른쪽 정렬
		System.out.printf("%-4d\\n", 10 ); //-를 붙이면 4칸을 확보한 다음, 왼쪽 정렬
		System.out.printf("%04d\\n",10); //4칸을 확보한 다음 빈칸은 0, 오른쪽 정렬
		
		System.out.printf("%f\\n", 10.1);
    System.out.printf("%.2f", 10.123456);

결과 출력

 

이클립스 ( 기본 설정하기 )

  • 이클립스를 가장 먼저 실행했을 때 해야할 것?

인코딩 확인

워크스페이스와 CSS, HTML, JSP 모두 UTF-8 로 설정을 맞춰주기

⇒ perspective 도 Java 로 설정해준다

 

⇒ 프로젝트를 설정할때는 JRE가 내가 원하는 버전과 맞는지도 한번 체크해주기.

변수

  • 정의 : 데이터를 저장할 메모리의 위치를 나타내는 이름
  • 메모리의 단위 : 1바이트

데이터타입

  • 기본자료형
  • 참조자료형
  • 실수형의 특징
  1. 근사값 ( 정확하지 x )
  2. 유효숫자 ( 정밀도 : float → 6-7개, double → 15개)
  3. 정밀도를 포기한 대신 값을 표현할 수 있는 범위가 넓다

선언, 저장, 할당

  • int 와 달리 String 은 주소값을 저장해둔다.

데이터 형변환

묵시적 형변환 (암묵적) Implicit Casting

  • 작은집 → 큰 집 이동 (집 : 범위)
  • 범위가 넓은 데이터형에 좁은 데이터 형을 대입하는 것

명시적 형변환 Explicit Casting

  • 큰집 → 작은 집 이동
  • 범위가 좁은 데이터 형에 넓은 데이터형을 대입하는 것

short vs char → 둘다 2바이트 이지만 서로 호환되지 않는다.

 

 

연산자

  • 단항연산자
  • 증감연산자 
    • ++, - -
    • 전위형 ++a (먼저 변수의 값을 변화시킨 후 사용)
    • 후위형 a++(먼저 변수를 사용한 후 값을 변화)
  • 부호연산자
    • +, -
  • 논리부정연산자
    • 논리 값을 반전 → !
    • !true = falase
    • !false = true
  • 비트부정연산자
    • 비트 값을 반전 ~
    • ~0 = 1
    • ~1 = 0
  • 형변환 연산자(type)
    • 큰 집에서 작은 집 갈 때
  • 산술연산자
    • 정수와 정수의 연산 ⇒ 정수
    • 정수와 실수의 연산 ⇒ 실수 (아래와 같은 순서로 변환)
      • 둘 중 하나가 double 이면 둘 다 double 로
      • 둘 중 하나가 float 이면 둘 다 float 으로
      • 둘 중 하나가 long 이면 둘 다 long 으로
      • 그렇지 않으면 둘 다 int 로 바꿈
  • 비교연산자
    • 대소비교
    • 동등비교
    • 객체타입비교 instanceof
    • String 변수를 비교할 때는 equals() 을 사용해야 한다
      • 왜? 참조형 변수는 주소값을 비교하기 때문이다
      • 실제 내용(문자열)이 같은지 확인하는 것이므로 equals() 메서드를 사용함

논리연산자

  • && (논리곱)
  • || (논리합)
  • ! (논리부정)
short circuit evaluation
and 의 경우 앞이 false, or 의 경우 앞이 true 라면 뒤의 결과를 확인하지 않고 결과값을 반환한다
  • 삼항연산자
    • 조건식? 식1 : 식2
    • 참일 경우 식1, 거짓일 경우 식2가 실행
  • 복합대입연산자
    • +=, -=, /=,*=…

조건문 Conditional

if 문

  • 조건식을 검사

switch 문

  • 값을 검사
  • 값이 일치하는 곳에 가서 실행문 실행.
  • break 만나면 멈춤, break 없다면 break를 만날 때까지 다음 실행문 이어서 실행.

반복문 Loop

for 문

for(  (1)초기화식 ; (2)조건식; (4)증감식; ){
				 (3)반복 수행할 문장;
}

  • 반복횟수를 알고 있을 때 유용
  • 중첩 for 문

while 문

while( (1) 조건식  ) {
      (2) 반복 수행할 문장;
}
  • 조건식이 true 일 경우 계속해서 반복 → 거짓이 되면 멈춘다
  • 조건식 생략 불가능

do-while 문

do {
  (1) 반복 수행할 문장
}while ( (2)조건식 );
  • 블록 내용을 먼저 수행한 후 조건식 판단(최소 한 번 수행)
  • 조건식이 true 일 경우 계속해서 반복 → 거짓이 되면 멈춘다
  • 조건식 생략 불가능

break, continue

  • 둘 다 반복문에 label 을 붙여서 빠져나올 수 있다.
  • while 문
public class Test04_while {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		//1을 입력받으면 계속 반복
		//그 외의 값을 입력받으면 종료
		int num = sc.nextInt();
		while(num == 1) {
			System.out.println("블록을 실행합니다.");
			num = sc.nextInt();
		}

	}

}
  • do ~ while 문
public class Test04_while {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		//1을 입력받으면 계속 반복
		//그 외의 값을 입력받으면 종료
		int num = sc.nextInt();
		do {
			System.out.println("블록실행, 단 첫 번째에 한해서는 무조건 실행합니다.");
			num = sc.nextInt();
		}while(num ==1);
	}

}
  • break
  • continue
  • label 을 사용
public class Test07_label {
	public static void main(String[] args) {
		outer : for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 10; j++) {
				if(i==2) break outer;
				System.out.println("i = " + i + ", j = " + j);
			}
		}
	}
}

'이론학습 > JAVA' 카테고리의 다른 글

클래스 다이어그램 아이콘  (0) 2023.01.21
자바 : JVM 메모리 구조 이해하기  (0) 2023.01.19
자바 클래스와 객체(2)  (0) 2023.01.19
자바 클래스와 객체(1)  (0) 2023.01.18
자바 배열  (0) 2023.01.17