[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

레이블이 Float인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Float인 게시물을 표시합니다. 모든 게시물 표시

2016년 3월 22일 화요일

[JAVA]데이터 타입에 대한 정의..

데이터 타입에 대해서 간략하게 정리를 하고자 한다.. Java 를 처음 배우면, 초반에 배우는 기초적인 내용들이다.. 하지만, 지금에 와서 이런것을 왜 올리느냐라고 한다면..

우선은 나에게 필요해서이고, 기초에 대해서 무시하고 넘어갔었음에 대한 후회이고, 일 하면서 데이터 타입 비교를 하면서 아주 작은 차이로 인해 그놈의 기초 때문에 오류를 겪었던 것이 기억나고 기타 등등의 이유로 인해서 정리해둔다..

네이버나 구글에 자료가 꽤 많긴 하지만, 내가 좀 알아보거나 이해하기가 쉽고, 내 스타일에 좀 맞는 자료를 찾았다.. 바로 asebn7 님의 블로그에 정리된 자료였다.. 해당 자료를 토대로 정리를 하되 내 스타일에 맞게끔 정리하였다.. 

자료형에 대한 간략한 패턴을 보고 본격적으로 들어가면 될 듯하다..



기본 자료형[Primitive Data Type]

자바 컴파일러에 의해서 해석되는 자료형태를 기본 자료형이라고 한다.. 기본 자료형에는 위 그림에서도 나오지만, 논리형 boolean, 문자형 char, 정수형 byte, short, long, float 그리고 실수형 double 이 있다.. 한 눈에 알아볼 수 있는 표로 보자면 아래와 같다..

그럼 하나씩 살펴보도록 하자..

boolean
boolean 은 true 와 false 두 가지 값만을 갖는 타입이다.. 해당 타입을 사용할 때는 아래처럼 선언을 해줘야 된다..

boolean testBool = true;
boolean testBool = false;

본인이 사용하고자 하는 메소드 내에서 선언 후에 위처럼 특정 선언을 안할 경우에는 false 가 자동 할당되어 에러가 발생하니 유의하도록 해야된다.. 또한, true 또는 false 에 따옴표[" "] 내지는 작은 따옴표[' ']를 사용하면 안된다..

char
char 는 2byte 의 문자하나를 입력하는 데이터 형이다.. 문자로 하면, 한글자를 뜻한다고 보면된다.. 즉, 문자 1개를 저장하는 데이터 형인 것이다..

char testChar = '1';

char testChar = 'a';

위처럼 선언을 해주면 되며, 자료형 중 유일하게 음수타입이 존재하지 않는다..

byte, short, int, long 정수 데이터형
기본적인 패턴은 char 와 똑같다고 보면된다.. 다만, 각각 표현할 수 있는 byte 가 틀리기에 그 부분을 주의 해야 된다..


byte 는 1byte 이며, 정수형 자료중 가작 작은 범위의 수치를 저장한다.. 주로 배열이나 데이터 전송의 기본이 된다..

short 는 2byte 이며, C 언어 등의 int 자료형과의 호환성을 위해 많이 사용한다..

int 는 4byte 이며, 모든 언어에서 기본이 되는 자료형이다.. 모든 정수 수치의 기본 구조라고 보면 된다.. 또한, + 연산자가 사용되면, int 형으로 바뀐다..

long 은 8byte 이며, int 자료형보다 큰 정수형 데이터를 저장하기 위한 자료형으로 초기화할 때는 소문자 l 이나 대문자 L 을 붙여줘야 된다.. 아래처럼 말이다..

long testLong = 123456L;

위 내용과 아래 메모장을 같이 참고하면, 조금 이해가 쉬울 듯 하다..

float, double 실수 데이터형
소수점을 가진 수를 표한하기 위해서 사용된다.. 그게 바로 float = 4byte, double = 8byte 다.. 단, float 선언시에는 조금 주의가 필요하다.. 아래 메모장을 보면 1.014f 또는 (float) 1.014 라고 되어 있는데 해당 부분을 좀 주의하면 된다.. 아래 메모장에는 없지만, 대문자 F 도 사용한다..


참조 자료형[Reference Data Type]
참조 자료형은 클래스 형태의 데이터 타입을 말하는 것으로 변수를 선언할 때 자바 API 에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 사용할 때 이런 데이터 타입[클래스]를 지칭한다.. 해당 부분은 내가 정리하고자 했던 부분은 아니기에 간략하게 정의만 내리고 지나간다..

이상 정리가 끝났다.. 정리를 하면서 이곳 저곳 보면서 공부아닌 공부를 하다보니 조금 더 머리에 남게 되는 듯하다.. 이것이 포스팅의 장점일지도 모르겠다.. 과거에는 왜 몰랐는지.. ㅎㅎㅎ.. 내용이 좀 빈약하거나 그럴수 있겠지만, 나 스스로에게는 만족하는 내용이다.. 애초에 그랬던것처럼 어차피 나 스스로의 공부와 이해도를 높이기 위함이 목적이니 그런 부분에서 만족한다는 뜻이다..

항상 느끼지만, 세상 모든 범위에 있어서 기초라는 것은 참 중요하다.. 중요해..

2016년 3월 3일 목요일

[JS]Javascript에서 String을 Number타입으로 바꾸기..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

누가 물어봐서 찾아본 김에 그냥 정리합니다. 아시다시피 Javascript는 명시적인 타입정의가 없습니다. int나 String같이 타입을 명시해서 변수를 정의하지 않고 그냥 var타입으로 정의하면 Javascript가 알아서 적절한 타입을 지정합니다. 명시적인 타입이 없다는건 때론 타입때문에 헷갈리기도 하고 원치 않는 결과가 나타나기도 합니다.

그래서 보통은 약간 편법적인 방법으로 String을 Number로 바꾼다던지 Number를 String으로 바꾼다던지 합니다.

1
2
3
4
5
6
7
8
9
// 숫자를 스트링로 바꾸기
var tt = 2
tt += "";
alert(typeof tt);   // Result : string

// 스트링을 숫자로 바꾸기
tt = "2"
tt *= 1;
alert(typeof tt);    // Result : number
 
위의 방법이 가장 간단하게 형변환을 하는 방법입니다. 쉽게 자바스크립트의 자동형변환을 이용한 겁니다. 숫자타입에 문자열을 더하면 결과가 문자열이 되고 문자열에 숫자를 곱하면 숫자타입이 되는 특성을 이용해서 결과는 달라지지 않게 타입만 변환되도록 한 것입니다. 해본 사람을 보면 알기는 하겠지만 잘 모르는 사람이 보면 어떤 의도로 한 소스인지 명확하지 않은 단점이 있기도 하고 좀더 명시적으로 타입변환이 필요할 때가 있습니다.
 
JavaScript

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// 숫자를 스트링로 바꾸기
var tt = 2
alert(typeof tt);    // Result : number
tt = String(tt);
alert(typeof tt);    // Result : string

// 스트링을 숫자로 바꾸기
tt = "2"
alert(typeof tt);    // Result : string
tt = Number(tt);
alert(typeof tt);    // Result : number

타입변환을 하는 함수인 Number()와 String()을 이용한 소스입니다.

또한 아래처럼 parseInt()나 parseFloat()를 이용해서도 형변환을 할 수 있습니다. 함수명에서 알 수 있듯이 parseInt()는 Integer타입으로 변환을 하고 parseFloat()는 Float타입으로 변환을 합니다.

JavaScript

1
2
3
4
5
6
7
8
9
var tt = "2"
alert(typeof tt);    // Result : string
tt = parseInt(tt);
alert(typeof tt);    // Result : number
            
tt = "2"
alert(typeof tt);    // Result : string
tt = parseFloat(tt);
alert(typeof tt);    // Result : number

parseInt()나 parseFloat()는 형변환 자체가 목적은 아니기 때문에 얘기가 나온 김에 좀 더 살펴보겠습니다. parseIn()와 parseFloat()는 정수와 실수로 파싱해 주는 역할을 하고 있습니다.

parseInt(string, radix)
parseFloat(string)

API정의를 보면 위처럼 정의되어 있습니다. parseInt()에서 radix는 기수로 parse할 때 기준이 되는 진수입니다. 정수로 파싱하는 parseInt에만 정의되어 있습니다. 2~ 36진수까지를 정의할 수 있고 optional값으로 없을 경우 10진수로 parse합니다.

JavaScript

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
parseInt("123.456");        // 123
parseInt("100mile");        // 100
parseInt("w25");               // NaN
parseInt("05");                  // 5
parseInt("09");                  // 0
parseInt("0x35");              // 53
parseInt("1101", 2);         // 13
parseInt("09", 10);            // 9
parseInt("10", 8);              // 8

parseFloat("123.456");       // 123.456
parseFloat("100.5mile");    // 100.5
parseFloat("w25");               // NaN
parseFloat("05");                  // 5
parseFloat("09");                  // 9
parseFloat("0x35");              // 0

Javascript에서 "0"으로 시작하는 숫자는 8진수 "0x"로 시작하는 숫자는 16진수로 정의되고 있기 때문에 5번라인에서 9가 8진수에서 사용할 수 없기 때문에 의도하지 않은 0이 나왔습니다.