컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review

Slides:



Advertisements
Similar presentations
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
Advertisements

YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
명품 JAVA Programming 제 3 장 반복문, 배열, 예외처리.
어서와 Java는 처음이지! 제3장선택과 반복.
Vision System Lab, Sang-Hun Han
제 3 장 변수와 자료형.
11장. 프로토콜 핸들러 AI &HC I LAB 김 성 현.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
10. 예외 처리.
C++ Espresso 제1장 기초 사항.
IntArray[0] int length 5 intArray 객체 제 3 장 반복문, 배열, 예외처리.
객체지향 프로그래밍.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
Programming for the java Virtual machine
제 4장 문 장 배정문 혼합문 제어문 표준 입출력.
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
제7장 제어구조 I – 식과 문장.
[ 단원 08 ] 예외처리와 스레드.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
명품 JAVA Essential.
[INA470] Java Programming Youn-Hee Han
10장 객체-지향 프로그래밍 II ©창병모.
8장 자바 입출력.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
7 스택.
자바 5.0 프로그래밍.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
01. 직렬화와 역직렬화에 대하여 객체의 직렬화 직렬화와 역직렬화
명품 JAVA Essential.
AOP 개념 및 Spring의 AOP 기능.
명품 Java Programming.
Hadoop 김연왕
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
DataScience Lab. 박사과정 김희찬 (월)
제 2 장 변수와 상수.
주소록 프로그램.
자바 5.0 프로그래밍.
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제1장 서론.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
어서와 Java는 처음이지! 제4장 배열 IT응용시스템공학과 김형진 교수.
DataScience Lab. 박사과정 김희찬 (월)
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
4장 - PHP의 표현식과 흐름 제어-.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java의 정석 제 4 장 조건문과 반복문 Java 정석 남궁성 강의
[INA470] Java Programming Youn-Hee Han
자바 5.0 프로그래밍.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
자바 5.0 프로그래밍.
printf("Global Korea\n");
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Choi Younghwan CSE HUFS
자바 가상 머신 프로그래밍 Chapter 3. 메소드 작성하기 Pslab 오민경.
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
Presentation transcript:

컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review 최 윤 정 cris@konkuk.ac.kr Dept. of Computer Science&Engineering

지난 시간 review 및 feedback 지난 시간 review & 어려웠거나 이해가 힘든 부분 질문 사탕줄께요

지난주 질문 : 콘솔창에서 컴파일-실행하기 자바 컴파일러 (javac.exe) 자바 인터프리터 (java.exe) 예) javac DataType.java 자바 인터프리터 (java.exe) java [옵션] 클래스파일이름 [인수, …] java [옵션] –jar JAR파일이름 [인수, …] 예) java DataType

오늘은 변수 / 데이터타입 타입변환 JVM 메모리 사용 영역 참조 변수의 ==, != 연산 자동 타입 변환(Promotion) 강제 타입 변환(Casting) JVM 메모리 사용 영역 참조 변수의 ==, != 연산 null과 NullPointerException String 타입 배열 타입 열거 타입

변수와 자료형 변수(variable) : 데이터 값들이 저장되는 메모리 공간 자료형(data type) 변수와 예약어 기본형 : 문자형, 수치형, 논리형 레퍼런스형(참조형) : 클래스, 인터페이스, 배열 변수와 예약어 변수 선언과 데이터 할당 상수 : 리터럴 논리상수, 문자상수, 정수상수, 실수 상수

변수의 선언과 초기화

변수의 선언과 초기화 실행문 설명문(주석문) 컴파일러가 해당 명령어를 해석하고 기계어로 번역하여 실행되는 문장 ‘;’으로 실행문 종료시킴 설명문(주석문) 컴파일러가 해석하지 않는 문장 한 줄 설명문 : ‘//’ 기호 사용 여러 줄 설명문 : ‘/*’과 ‘*/’사이에 설명문 삽입 javadoc 설명문 : ‘/**’과 ’*/’사이에 설명문 삽입

예약어(Keyword) abstract assert boolean break byte case catch char class const continue default do double else extends false final finally float for goto if implements Import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while enum

기본형(primitive type) 기본정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입 메모리의 최소 기억단위인 bit가 모여 byte 형성 1 byte = 8 bit

Quiz

타입변환 데이터 타입을 다른 타입으로 변환하는 것 자동(묵시적) 타입 변환: Promotion 예) byte ↔ int, int ↔ double 자동(묵시적) 타입 변환: Promotion 강제(명시적) 타입 변환: Casting

자동 타입 변환: Promotion 프로그램 실행 도중 작은 타입은 큰 타입으로 자동 타입 변환 가능 C에서도 에러없이 warning정도. 예) 큰 크기 변수 = 작은 크기 변수 short s=10; int d = s short s=‘a’ 연산식에서의 자동타입 변환 연산은 피연산자가 같은 타입일 경우에만 수행되지만, 서로 다를 경우 큰 쪽으로 자동 변환 7 + 5.5  7.0 + 5.5  12.5

강제 타입 변환 : Casting (클래스와 인터페이스 변환에서 다시 보겠으나) 일반적으로 큰 타입을 작은 타입 단위로 예) byte b=128 //b의 최대값은 127이므로 int 128은 overflow. 컴파일 에러유발 예) byte b=(byte)128 //128을 byte 범위로 변환(-128저장) Byte b는 8 bit 변수 데이터의 범위는 : -2^7~ 0 ~ 2^7-1 , 즉 -128 -127 -126 -125 … 0 …125 126 127 까지. 따라서, 128은 저장할 수 없음. 다시 맨 왼쪽의 값 -128을 저장 B=-129 도 에러, 이 경우에도 에러, casting 후에는 127 로 저장 굉장히 큰 값을 넣어도 이 과정은 같습니다. b를 256으로 나눈 나머지로 확인해봅니다. byte b= (byte)103029777; System.out.println(103029777%256); System.out.println(b);

참조형 (Reference type) 기본형과 참조형의 차이는 변수의 메모리 사용에 있어요. 기본 타입 변수 – 실제 값을 변수 안에 저장 참조 타입 변수 – 주소를 통해 객체 참조 C 에서는 포인터, java에서는 new로 생성된 모든 것

메모리 사용 영역 JVM이 사용하는 메모리 영역 OS에서 할당 받은 메모리 영역(Runtime Data Area)을 세 영역으로 구분 Reflect 기능 클래스의 메타정보를 가져옵니다.

메모리 사용 영역 JVM이 사용하는 메모리 영역 메소드 영역 JVM 시작할 때 생성 로딩된 클래스 바이트 코드 내용을 분석 후 저장 모든 스레드가 공유 힙 영역 객체/배열 저장 사용되지 않는 객체는 Garbage Collector 가 자동 제거 JVM 스택 스레드 별 생성 메소드 호출할 때마다 Frame을 스택에 추가(push) 메소드 종료하면 Frame 제거(pop)

참조 변수의 ==, != 연산 변수의 값이 같은지 다른지 비교 기본 타입: byte, char, short, int, long, float, double, boolean 의미 : 변수의 값이 같은지 다른지 조사 참조 타입: 배열, 열거, 클래스, 인터페이스 의미 : 동일한 객체를 참조하는지 다른 객체를 참조하는지 조사

null과 NullPointerException 변수가 참조하는 객체가 없을 경우 초기값으로 사용 가능 참조 타입의 변수에만 저장가능 null로 초기화된 참조 변수는 스택 영역 생성 ==, != 연산 가능

null과 NullPointerException 지난 학기 C에서 포인터를 잘 못 사용하면 runtime error가 발행했지만 Java에서는 예외를 사용하여 처리할 수 있습니다. NullPointerException의 의미 예외(Exception) 사용자의 잘못된 조작 이나 잘못된 코딩으로 인해 발생하는 프로그램 오류 NullPointerException 참조 변수가 null 값을 가지고 있을 때 객체의 필드나 메소드를 사용하려고 했을 때 발생

String 타입 String 타입 문자열을 저장하는 클래스 타입 유용하고 편리한 메소드가 많으므로 기본 메소드를 많이 알아두도록 하세요

String 클래스의 메소드

String 메소드 사용의 예

String 타입 문자열 리터럴 동일하다면 String 객체 공유 new 연산자를 이용한 String 객체 생성

배열 타입 같은 타입의 데이터를 연속된 공간에 저장하는 자료구조 각 데이터 저장 위치는 인덱스 부여해 접근 중복된 변수 선언 줄이기 위해 사용 반복문을 이용해 요소들을 쉽게 처리 항목 접근: 배열이름[인덱스] ex) score[0], score[3]

배열 타입 배열을 사용하기 위해 우선 배열 변수 선언 배열 변수는 참조 변수 - 배열 생성되기 전 null로 초기화 가능 NullPointerException 발생

배열 타입 : 값 목록으로 생성하기 변수 선언과 동시에 값 목록 대입 변수 선언 후 값 목록 대입

배열 타입 : new 로 생성하기 배열 생성시 값 목록을 가지고 있지 않음 향후 값들을 저장할 배열을 미리 생성하고 싶을 경우

배열 타입 타입 별 항목의 기본값

배열 타입 : 기본 메소드들을 살펴보세요 배열의 길이 배열에 저장할 수 있는 전체 항목 수 코드에서 배열의 길이 얻는 방법 배열의 길이는 읽기 전용 배열의 길이는 for문의 조건식에서 주로 사용됩니다.

배열 타입 : String args [] 커맨드 라인에서 배열의 선언과 사용

배열 타입 : 다차원 배열 2차원 배열 이상의 배열 1차원 배열을 이용해 2차원 배열 구현 수학의 행렬과 같은 자료 구조 1차원 배열을 이용해 2차원 배열 구현 C에서 **포인터 할당구조와 같습니다.

배열 타입 : 객체참고 객체를 참조하는 배열 기본 타입(byte, char, short, int, long, float, double, boolean) 배열 각 항목에 직접 값을 저장 참조 타입(클래스, 인터페이스) 배열 - 각 항목에 객체의 주소저장

배열 타입 : 복사 배열 복사 배열 복사 방법 배열은 한 번 생성하면 크기 변경 불가 더 많은 저장 공간이 필요하다면 보다 큰 배열을 새로 만들고 이전 배열로부터 항목 값들을 복사 배열 복사 방법 for문 이용 System.arrayCopy() 메소드 이용 Arrays 클래스 이용

배열 타입 : for each 향상된 for 문 : for each 배열 및 컬렉션의 항목 요소를 순차적으로 처리 인덱스 이용하지 않고 바로 항목 요소 반복

열거 타입 열거 타입(Enumeration Type) 한정된 값만을 갖는 데이터 타입 한정된 값은 열거 상수(Enumeration Constant)로 정의

열거 타입 : 선언 파일 이름과 동일한 이름으로 다음과 같이 선언 (첫 글자 대문자) 한정된 값인 열거 상수 정의 열거 상수 이름은 관례적으로 모두 대문자로 작성 다른 단어가 결합된 이름일 경우 관례적으로 밑줄( _ )로 연결

열거 타입 : 변수선언 열거 타입 변수 선언 열거 상수 값 저장 - 열거 타입 변수값은 열거 상수 중 하나 열거 타입 변수는 참조 타입 열거 타입 변수는 참조 타입이므로 null 값 저장 가능

열거 타입 : 열거객체의 메소드 열거 객체는 열거 상수의 문자열을 내부 데이터로 가지고 있음 열거 타입은 컴파일 시 java.lang.Enum 클래스를 자동 상속 열거 객체는 java.lang.Enum 클래스의 메소드 사용 가능

Quiz