- 윈도우xp 비밀번호 변경
- 도쿄올림픽2020
- label태그
- 오라클db 설치
- 한컴시리얼키
- RPG MAKER XP 크랙
- 이클립스
- 오라클데이터베이스 설치
- html 특수문자 입력
- 자바 반복문
- 지역변수
- 자바스크립트
- 윈도우xp 비번 변경
- 윈도우xp비번분실
- 윈도우xp 초기화
- 오라클db
- 404 오류
- 윈도우xp 비번 초기화
- RPG MAKER XP 다운로드
- 500 내부서버오류
- RPG MAKER XP 무료 다운
- 404 찾을수없음
- 윈도우xp 로그인실패
- RPG MAKER XP 무료 이용
- 전역변수
- JSP
- option태그
- RPG MAKER XP 크랙버전
- 오라클SQL 설치
- html 상태코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Today
- Total
Daily IT
3. 자바 구조/컴파일/자바 타입/연산자/사칙연산 본문
3. 자바 구조/컴파일/자바 타입/연산자/사칙연산
[01] 컴파일 단계
- 파일 확장자 java: 자바 소스 파일 예) Hello.java
- 파일 확장자 class: 1차 컴파일(변환)된 파일, 바이트 코드,
Cross Platform 지원(Windows, Unix, Linux, Mac등 대부분 OS 지원)
. 개발 환경: Windows/Mac/Ubuntu, 서비스 운영: Linux, Unix 주로 이용
- 컴파일: 영문 숫자나 특수문자로 구성된 프로그램 명령어를 기계어로
변환하는 과정, 단순 문장을 기능이 있는 문장으로 변환하는 과정
- 단계: JAVA 소스(문장) -> JDK(javac.exe) 컴파일 -> class 파일(바이트 코드)
-> JVM(java.exe, JRE) -> 메모리상에서 기계어로 재 컴파일후 -> 실행
- 클래스명의 첫자는 대문자로 지정합니다.(OOP 언어 - 객체지향 언어인 자바의 규칙임)
예) hello 소문자는 객체명으로 주로 사용합니다.
- 클래스명과 파일명은 대소문자를 포함해 일치해야합니다.(Eclipse 자동 지원)
- 문장 마지막의 ';'은 하나의 명령의 종료를 뜻함, 생략시 에러 발생합니다.
* 컴퓨터의 구조: 폰 노이만 구조
- 프로그램을 메모리에 저장한후 실행
[연습 1] 컴파일/실행 테스트
- Eclipse Setting
. Project Type: Java Project
. Project Name: test
-----------------------------------------------------------------------------------
package test;
public class One {
public static void main(String[] args) {
System.out.println("자바 컴파일");
System.out.println("자바 실행");
}
}
-----------------------------------------------------------------------------------
* 실행결과 *
[연습 2] 컴파일/실행 테스트
- Eclipse Setting
. Project Type: Java Project
. Project Name: myITcareer
-----------------------------------------------------------------------------------
package test;
public class myITcareer {
public static void main(String[] args) {
System.out.println("나의 IT 블로그입니다");
}
}
-----------------------------------------------------------------------------------
* 실행 결과 *
[02] 변수명(식별자, Identifier) 규칙
- 프로그램: 입력 --> 처리 --> 출력 방향으로 진행
- 데이터 처리시 저장소를 변수로 이용함.
- 변수에는 메모리가 할당됨.
- 변수명은 할당된 메모리에 붙이는 이름(별명)
- 첫 문자가 영문자나 '_', '$'의 일부 특수문자로 시작되어야 한다.
숫자로 시작할 수 없다.
- 한글을 사용할 수도 있으나 특정 서버에서 한글이 깰질수 있음으로 사용하지 않음.
- 자바의 예약어(boolean, class, public...)는 변수명(식별자)으로 사용할 수 없다.
- 자바의 변수명(식별자)은 대소문자를 구분한다.
- 변수명(식별자)은 길이는 제한이 없고 공백은 포함할 수 없다.
일반적으로 5 ~ 15자를 권장합니다. (의미에따라 4자 이하도 상관 없음)
- 변수명은 값을 연상 할 수 있도록 의미있게 지정해야한다.
. abc X 의미 없음.
. abc1 X 의미 없음.
. my name X 공백 존재
. korean O
. trip O
예) String name = "왕눈이"; ← name 이란 이름의 메모리에 문자열 "왕눈이"를 저장
int java = 90; ← java란 이름의 메모리에 정수 90을 저장
[!중요!] 수치형 데이터 타입을 이해하기위해 2진수를 이해할 필요가 있음.
- 2진수, 8진수, 10진수, 16진수의 변환 파악
- 2진수의 원리
2^1 = 2가지 표현 (2)
2^2 = 4가지 표현 (2 X 2)
2^3 = 8가지 표현 (2 X 2 X 2)
2^4 = 16가지 표현 (2 X 2 X 2 X 2)
2^5 = 32가지 표현 (2 X 2 X 2 X 2 X 2)
2^6 = 64가지 표현 (2 X 2 X 2 X 2 X 2 X 2)
2^7 = 128가지 표현 (2 X 2 X 2 X 2 X 2 X 2 X 2)
2^8 = 256가지 표현 (2 X 2 X 2 X 2 X 2 X 2 X 2 X 2)
10진수로 변환: 0 ~ 255
* 컴퓨터 저장 용량의 사용예
1) 1 Bit: 0(0v), 1(5v) -> 건전지에 연결된 전구의 구조, 스위치를 이용한 전원 차단, TR -> IC
2) 1 Byte: 8 bit -> 한글 1자: 2 Byte, 영숫자: 2 Byte, 전구 8개 연결, 네트워크 전송 단위,
Arduino ARM process 크기 (C 언어: 한글 1자: 2 Byte, 영숫자 1 Byte)
3) 1 KByte: 1024 Byte -> 한글 512자, 영숫자: 512 자, OS 저장 단위
4) 1 MByte: 1024 KByte -> MP3 음악 1곡 6 MByte, 사진 1장 1~1.6MB
5) 1 GByte: 1024 MByte -> MP4 영화 1편 3.5 GByte (Smartphone: 32 GB, 64 GB, 128 GB...)
6) 1 TByte: 1024 GByte -> 한국인이 하루에 마시는 지역별 커피의 시간대/브랜드/종류/용량,
Bigdata 파일, 국가 단위 데이터
7) 1 PByte: 1024 TByte -> 국가 및 대륙단위 데이터
8) 1 EByte: 1024 PByte -> 전세계의 통계
9) 1 ZByte: 1024 EByte -> 전세계의 통계, google등 사용
[03] 데이터 형(data type)
- 프로그램: 데이터 입력 기능 → 데이터 처리 기능 → 처리 결과 출력 기능
데이터 분석: 데이터 입력 기능 → 통계기반 요약/분류 → 결과 출력
머신러닝: 데이터 입력 기능 → 규칙 발견 → 모듈 검증 및 출력
- 데이터를 입력하여 메모리에 저장하며,
메모리에 저장된 데이터를 처리할 때 자바는 데이터의 타입을 알아야 처리가 진행됩니다.
사전에 자바 내부에 지정된 데이터 타입을 기준으로 데이터에 타입을 선언하며,
자바가 메모리를 할당하는 기준이됩니다.
- 요약하면 메모리를 사용하는 기준이됩니다.
- CPU와 메모리의 한계 때문에 데이터타입은 정확하게 지정하는것을 권장합니다.
(많이 사용되는 데이터 타입이 있음)
- Python, Javascript, R등의 언어는 코딩없이 자동으로 언어 내부에서 데이터 타입 처리됨.
- Primitive type: 고전적인 타입, 원시 타입, 크기가 지정되어 있어 크기 변경을 못합니다.
예) int: 정수, 4 byte
- Reference type: 메모리 참조타입, 복합 타입으로 Primitive type이 1개이상 결합되어
사용되는 경우가 많습니다. 크기를 필요에따라 변경 할 수 있습니다.
예) Developer, Student, Korea, Seoul, Desktop, String...
1. 논리형(logical)(*)
- boolean: 1 Byte(8 Bit)
- 초기값 : false
- 갖을 수 있는 값의 범위: true, false
- 조건문(제어문)에서 조건이 참/거짓인지 판별하는 기준으로 쓰입니다.
- 제어문에서 많이 사용됩니다.
예)
boolean sw = true; 타입 변수명 = 값;
2. 문자 관련 자료형
1) 문자형(character)
- char: 2 Byte(16 Bit)
- 초기값 : \u0000
- 범위: \u0000 ~ \uFFFF(Unicode 0~65535)
- 한 문자만 저장가능하며 ''(single quotation)으로 시작과 끝을 명시합니다.
예)
char grade = 'A';
char grade = '수';
2) 문자열 형(Stirng)(*)
- 가변 길이, 문자열에따라 메모리가 할당됩니다.
- ""(double quotation)으로 시작과 끝을 명시합니다.
- char 문자가 나열된 형태
예)
String str = "ABCD";
3. 정수 숫자형(음의 정수, 양의 정수)(integer)(*)
- byte: 1 Byte
. 초기값: 0(양수)
. 값의 범위: -128 ~ 127, -(2^7) ~ 0 ~ 2^7-1
- short: 2 Byte, 2^16 = 65536가지 표현
. 초기값: 0(양수)
. 값의 범위: -32768 ~ 32767, -(2^15) ~ 0 ~ 2^15-1
- int: 4 Byte, 2^32(*)
. 초기값: 0(양수)
. 값의 범위: -2147483648 ~ +2147483647, -(2^31) ~ 2^31-1
- long: 8 Byte, 2^64
. 초기값: 0(양수)
. 값의 범위: -(2^63) ~ 2^63-1
예)
int java = 80;
int jsp = 90;
int spring = 70;
int project = 100;
long sales = 100000000000L;
4. 실수 숫자형(real number)
- 지수는 정수를 한개만 남기고 모두 소수점 이하의 수로 변환한 형태
- 지수 표현: 1e+5 -> 1 * 10^5, 12345 -> 1.2e+4 -> 12000
1e-5 -> 1 * (10^-5) 0.00001 -> 1.0e-4 -> 0.0001
- float: 4 Byte
. 초기값: 0.0f
. -1.40e-45 ~ +3.40e+38
- double: 8 Byte(*)
. 초기값: 0.0
. 값의 범위: -4.94e-324 ~ 1.79e+308
. 기본적으로 인식되는 타입
- 보통 소수점은 소수이하 3자까지 사용됨, 머신러닝은 6자리 이하도 사용됨.
200.123
5. 데이터 타입 연습
-----------------------------------------------------------------------------------
public class DataType {
public static void main(String[] args) {
boolean truth= true;
boolean lie = false;
char grade = 'A';
String score = "90점";
short 짧은길이 = 5;
int 중간길이 = 7;
long 긴길이 = 14L;
long 긴길이1 = 16;
float percent = 0.5f;
double percent1 = 0.7;
System.out.println(truth + " / " + lie);
System.out.println(grade + " / " + score);
System.out.println(짧은길이 + " / " + 중간길이 + " / " + 긴길이 + " / " + 긴길이1);
System.out.println(percent + " / " + percent1);
}
}
-----------------------------------------------------------------------------------
*실행 결과*
[04] 연산자(operator: 기사, 조작자, 데이터 조작자)
- 단항 연산자: 하나의 변수로 연산이 진행
- 산술 연산자: 사칙연산(*)
- 비교 연산자: 대소비교, 동일한지 비교(*)
- 논리 연산자: 참, 거짓 연산자(*)
- 삼항 연산자: 조건식, 참, 거짓 결합
- 대입 연산자: 값의 대입(*)
1. 산술(수치) 연산자 : +, -, *(×: 곱하기), /(÷: 나누기), %(나머지, 모듈러스 연산자)
- 정수 / 정수 = 정수
예) 10 / 3 = 3.333333(X)
10 / 3 = 3(O) 소수점 짤림, 반올림 안됨.
- float n = 0.0f; f를 제거하면 double 8바이트가 되어 에러가 발생함.
double n = 0.0; <- 기본 형식
1) 나누기 연산자: 몫만 산출됨, 소수점 짤림, 반올림 안됨.
0 / 3 = 0
1 / 3 = 0 <- 주의 0.3 아님!
2 / 3 = 0 <- 주의 0.6 아님!
3 / 3 = 1
4 / 3 = 1 <- 주의 1.3 아님!
5 / 3 = 1 <- 주의 1.6 아님!
6 / 3 = 2
7 / 3 = 2
2) 몫을 뺀 나머지 연산자, 3으로 나누었을 때의 나머지는 0 ~ 2가됨
1 % 3 = 1
2 % 3 = 2
3 % 3 = 0
4 % 3 = 1
5 % 3 = 2
6 % 3 = 0
7 % 3 = 1
8 % 3 = 2
9 % 3 = 0
어떤수를 나누었을때 나머지가 0이면 어떤수의 배수입니다.
2. 대입(할당, 메모리에 기록) 연산자 : =
- 좌변은 상수(숫자, 문자, 문자열, constant)값이 아니라 기억장소(변수(식별자, 메모리))가
와야합니다.
100 = 100 + 200; // ERROR, 좌변 ERROR
"March" = "3" + " month" // ERROR
int year = 2016;
- 할당(대입) 연산자의 양면성
int festival = year;
'='을 기준으로 오른쪽의 변수는 메모리에서 값을 가져오는 역활을하며,
왼쪽의 변수는 값이 저장될 메모리 역활을 합니다.
1) int value1 = i + j;
2) int value2 = 10 + 20;
3) int 100 = i + 10; // ERROR, 숫자 100은 기억 장소 아님
4) int value3 = 10.5; // ERROR, 10.5는 double 8 byte, value3: int 4 byte
5) double value4 = 10.5;
6) long year = 2015; // long: 8 byte
7) int avg = 95.5; // ERROR, int 4 byte <- double 8 byte
8) int avg = (int)95.5; // (int 4 byte)(double 8 byte) 소수점이하 삭제되고 95 할당
3. 기타 연산자
- 증가/감소 연산자: ++(1씩 증가), --(1씩 감소)
- 연산후대입 연산자: +=, -=, *=, /=, %=
'개발자 영역 > 자바' 카테고리의 다른 글
6. if문 연습2 (0) | 2020.02.24 |
---|---|
5. if문 연습 (0) | 2020.02.24 |
4. if문 (0) | 2020.02.24 |
2. 이클립스 설치 (0) | 2020.02.23 |
1. 자바 설치 및 삭제 (0) | 2020.02.23 |