Java

Java 개발 공부 1일차 (21.08.17)

Pearl_mini 2021. 8. 17. 22:32
728x90
개발 언어 Java


Java는 개발자들이 많이 사용하는 언어 중 한 가지이다.
매 년 개발자들이 많이 사용하는 언어 순위는 구글링 하면 나오는데, 추세는 조금씩 바뀌는 편이다.
2018년도에는 가장 많이 사용하는 언어 1위가 Java였다고 한다.
강사님께서 Java 공부를 하면서 Java외의 다른 언어들의 변화도 공부하는 것이 좋다고 하셨다.

Java의 특징
  • 이식성이 높은 언어
  • 객체지향언어
  • 메모리를 자동으로 관리 (JVM-Java Virtual Machine, Garbage Collector)
  • 다양한 어플리케이션 개발 가능
    • 여러 운영체제 (유닉스, 리눅스, 윈도우, 맥 등)에서 실행되는 프로그램을 개발 가능
    • 단순한 콘솔 프로그램에서부터 클라이언트용 윈도우 어플리케이션, 서버용 웹 어플리케이션, 모바일용 안드로이드 앱 등 거의 모든 곳에서 실행되는 프로그램을 개발 가능
  • 멀티스레드 (Multi-Thread)를 쉽게 구현
  • 동적 로딩 지원
  • 막강한 오픈소스 라이브러리 풍부
Java Compile

사람이 볼 수 있는 프로그래밍 코드를 컴퓨터가 읽을 수 있는 코드로 변환시켜주는 것이 컴파일(compile)이다.
java 파일의 확장자는 .java이고 컴파일하고 나면 .class로 변화된다.

Java 다운로드

Oracle.com 사이트에서 다운로드 (사용하는 운영체제에 따라 맞는 파일로 다운로드)

  • JDK (Java Development Kit, 자바개발도구), JRE (Java Runtime Environment, 자바실행환경)


java 다운 후, 메모장으로 코드 작성한 후 .java 확장자로 저장한 뒤 cmd (맥은 터미널)에서 javac를 이용해 컴파일한 후 실행이 가능하다.

**cmd에서 사용 용어

  • 'c:' : c드라이브로 이동
  • 'd:' : d드라이브로 이동
  • 'cd ~경로~' : 경로로 이동
  • 'cd ..' : 한 칸 위 경로로 이동
  • 'dir' : 그 디렉토리 안의 파일 확인
  • 'exit' : cmd 종료
  • 'javac ~java파일명~' : 컴파일 진행 (class파일 생성)
  • 'java ~class파일명~' : 파일 실행
IDE (Integrated Development Environment, 통합개발환경구축)

Java의 경우 eclipse
- 효율적으로 소프트웨어를 개발하기 위한 통합개발환경
- 코드 편집기, 디버거, 컴파일러 등의 기능을 개발자에게 제공

Eclipse 다운로드: Eclipse 사이트에서 다운로드
Eclipse에서 java뿐 아니라 c언어 등 다른 언어의 컴파일 및 실행이 가능하다.


Java 공부에 도움되는 사이트


1. 백준 사이트
주소: https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

가입한 뒤 문제들을 풀면서 실력향상 할 수 있다!

2. 정올 사이트
주소: http://www.jungol.co.kr/

 

JUNGOL

 

www.jungol.co.kr

역시 가입한 후 문제풀면서 실력 향상
백준과 차이점 : 백준 사이트보다 난이도가 조금 더 쉬움, 틀렸을 때 해결방법 등 힌트를 준다.


Java program

 

Java project

project name: 첫 글자는 대문자, 단어 추가될 때마다 대문자로 시작
project, class를 생성하여 파일들을 체계적으로 관리

아래는 기본 예)

public class JavaProject { public static void main(String[] args) { System.out.println("Hello World!"); } }

class 옆에 노란 글자가 Class Name 을 나타내고, 아래 main () 뒤 { 부터가 Main Method이다.
main method가 있는 곳이 Java Application의 시작점이다.
main은 꼭 있어야 함!
(** 백준이나 정올 사이트에 해답 제출 시 class name을 반드시 'Main'으로 적어야 함)

Java 언어
  • 주석문

프로그램 코드와 상관없이, 코드에 설명을 붙이기 위해 사용
// : 1줄을 주석 처리 (해당 줄에서 ctrl+/ : 그 줄 주석처리됨)
/* ~~~ */ : 해당 기호 안의 모든 내용을 주석 처리

(** ctrl + shift + F : eclipse에서 단락을 선택한 후 누르면 문법에 맞게 깔끔하게 정렬해주는 단축키)

  • 변수 (Variable)

- 하나의 값을 저장할 수 있는 메모리 공간 (프로그램에 의해서 수시로 값이 변동될 수 있음)
- 반대 의미 : 상수(Constant)

정수형 (integer)-4 byte 메모리 할당, 실수형 (double)-8 byte 메모리 할당

- 변수의 선언
int (변수타입) age(변수명); 의 형태로 선언
같은 타입 변수는 콤마를 이용해 한꺼번에 선언 가능 (ex. int x, y, x;)

- 변수의 명명규칙 (Naming convention)
첫 번째 글자는 문자나 '$', '_'이어야 하고 숫자로 시작할 수 없다.
영어 대소문자가 구분됨 (필수)
첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다 (관례)
자바 예약어는 사용할 수 없다 (필수)

1. 변수 선언, 2 값 저장 (대입연산자 '=' 사용 오른쪽 값을 왼쪽에 저장)
예)

int a = 15;


**
변수의 선언되는 위치가 중요! (들여쓰기 상 내부에서 선언되면 바깥에서 사용 불가)
변수는 초기화 되어야 함! (선언과 동시에 초기화 하는 습관 들이기)

  • 리터럴 (literal)

정수, 실수, 문자, 논리...

정수 리터럴
- 소수점이 없는 정수리터럴은 10진수로 간주
- 0으로 시작되는 리터럴은 8진수로 간주 (ex. 02, 016)
- 0x 또는 0X로 시작하고 0~9숫자나, A~F, a~f로 구성된 리터럴은 16진수로 간주 (ex. 0x5, 0xAC08)

실수 리터럴
- 소수점이 있는 리터럴은 10진수 실수로 간주
- 대문자 E 또는 소문자 e가 있는 리터럴은 10진수 지수와 가수로 간주 (ex. 5E7// 5 X 10^7)
- 실수 리터럴을 저장할 수 있는 타입: float(4 byte), double (8 byte)

문자 리터럴 -char
- 작은 따옴표(')로 묶은 텍스트 하나를 문자 리터럴로 간주
- 역슬래시('\')가 붙은 문자 리터럴은 이스케이프(escape)문자 ('\t' 수평탭, ''\n' 줄바꿈, '\\' \) (\: 역슬래시)

문자열 리터럴 - String
- 큰따옴표('")로 묶은 텍스트는 하나의 문자리터럴로 간주

논리 리터럴 - boolean
- 참(true), 거짓 (false)


** 메모리의 크기
1 byte = 8 bit
(bit 는 0, 1로만 저장되는 공간), 1 byte는 256개 숫자 저장 가능


 

디버그 (debug)

- 프로그램에 문제가 되는 에러 (버그, bug)를 제거하는 작업
- break point , 라인 왼쪽 파란 부분에 더블클릭하여 생성 (다시 더블클릭하면 제거)
: 디버그 하면 그 지점에서 일시정지함
- 디버그 버튼 누르고 step over (F6) 누르면 한줄씩 실행됨

** 빨간 밑줄 : 에러. 컴파일이나 실행이 불가능하다. 해결한 후 컴파일 가능
** 노란 밑줄: 워닝. 에러는 아니기 때문에 컴파일 및 실행 가능하나, 나중에 문제를 일으킬 원인이 될 가능성 있으므로 수정해주는 게 좋음

데이터 타입

기본 - 정수, 실수, 논리 (기본타입과 메모리 사용 크기 외우기)

MSB (most significant bit), LSB (least significant bit)

0 1 1 1 1 1 1 1

: 127
MSB (맨앞 숫자)는 부호비트를 의미함 (+ or -)


<양수와 음수를 바꾸는 방법>_참고, 정보처리기사 시험에 나옴
0101(2) = 5(10)
1) 1의 보수 -> 0은 1로, 1은 0으로 :1010(2)
2) 2의 보수 -> +1을 한다: 1011(2) <- 를 컴퓨터는 -5로 인식한다.

byte는-128~127까지 숫자만 저장 가능! 127다음은 -128이 됨

overflow : 1 byte에 128을 담으려고 하면 최대 저장할 수 있는 수 127을 넘기기 때문에 오버플로우가 발생하여 에러가 난다.

728x90

'Java' 카테고리의 다른 글

Java 개발 공부 5일차 (21.08.23)  (0) 2021.08.28
Java 개발 공부 4일차 (21.08.20)  (0) 2021.08.22
Java 개발 공부 3일차 (21.08.19)  (0) 2021.08.22
Java 개발 공부 2일차 (21.08.18)  (0) 2021.08.19
Java 기초 공부 (변수)  (0) 2021.08.09