Java - 비교와 Boolean

Java 2015. 10. 10. 23:57

[비교와 Boolean]

{Java - 비교와 Boolean}

불린(Boolean)은 새로운 데이터 타입이다. (데이터 타입엔 숫자와 문자가 있었다.)

숫자와 문자와는 다르게 불린은

단 두 개의 값만을 갖는 데이터 타입니다. 참(true)과 거짓(false)

연산자라고 하는 것은 컴퓨터에게 어떠한 작업을 지시할 때 사용하는 일종의 명령이라고 볼 수 있다고 말했었다.


비교 연산자 : 좌항과 우항을 비교한 결과를 true나 false로 보여줌.


== 동등 비교 연산자. 숫자에도 문자에도 사용 가능.

(= 대입 연산자)


(! not)

!= 같지 않다.


부등호 > < >= <=


문자열을 비교할 때는 주의해야 함.

문자열을 비교할 때는 ==을 사용안하고

.equals라는 문법을 사용.(문자열을 비교할 때 사용하는 메소드다.)


String a = "Hello world";

String b = new String("Hello world");

System.out.println(a == b); // false  데이터 비교는 보이는 곳에서 끝나는 게 아니다.

System.out.println(a.equals(b)); // true

'Java' 카테고리의 다른 글

Java - 논리 연산자  (0) 2015.10.11
Java - 조건문  (0) 2015.10.11
Java - 연산자  (0) 2015.10.10
Java - 형변환  (0) 2015.10.10
Java - 상수의 데이터 타입  (0) 2015.10.10
Posted by 캬웃
,

Java - 연산자

Java 2015. 10. 10. 23:57

[연산자]

{Java - 연산자 (1/4)} - 연산자(operator)란 특정한 작업을 하기 위해서 사용하는 기호

산술(Arithmetic)

+-*/%



{Java - 연산자 (2/4) - 형변환}

정수와 실수를 연산하면 어떤 게 앞에 있든 결과는 실수로 나옴.

(정보의 손실 없게 더 조밀한(실수)로 형변환 해서 형식 일치시킨 후에 연산함.(예 : 10.0 / 3.0))



{Java - 연산자 (3/4) - 단항연산자} - 좌항과 우항이 있지 않은 연산자

그동안은 이항 연산자(infix operator)를 설명했다.(좌항과 우항이 존재)

단항(unary)

+ 양수. 실제로는 사용할 필요가 없다.

- 음수

++ 증가(increment) 연산자

-- 감소(Decrement) 연산자



{Java - 연산자 (4/4) - 우선순위}

'Java' 카테고리의 다른 글

Java - 조건문  (0) 2015.10.11
Java - 비교와 Boolean  (0) 2015.10.10
Java - 형변환  (0) 2015.10.10
Java - 상수의 데이터 타입  (0) 2015.10.10
Java - 데이터 타입  (0) 2015.10.10
Posted by 캬웃
,

Java - 형변환

Java 2015. 10. 10. 23:56

[형변환]

{자바 - 형변환}

형 변환(Type Conversion)


int 타입의 정수 200의 bit값은

00000000 00000000 00000000 11001000


실수 200.0을 컴퓨터에 저장하면 다음 bit로 저장이 된다.

01000011 01001000 00000000 00000000


서로 전혀 다른 bit값으로 저장되기 때문에

각각의 데이터를 더해주거나 연산을 하려고 하면

한쪽의 데이터 타입으로 맞춰주어야 함.

데이터 타입을 맞춘다는 것은 데이터 형식을 바꾼다는 것이고, 이것을 형 변환이라고 한다.

그리고 이러한 형변환을 자바는 프로그래밍의 편의성을 위해서 자동으로 해주기도 하는데

그걸 자동(암시적) 형 변환(implicit Conversion) 이라고 한다. : 암시적 형변환은 조금이라도 좀 더 프로그래밍을 편리하게 하기 위해서, 정보의 손실이 발생하지 않는다면 컴퓨터가 알아서 처리해주는.

double a = 3.0F;

float를 a에 넣을 때 double로 자동으로 바꿔주기 때문에 에러가 나지 않음.(이 때, 데이터의 손실이 없음.)

float a = 3.0;

오류가 발생함.

double이 더 많은 데이터를 표현할 수 있기에, double에서 float로 형변환을 하면 데이터 유실의 가능성이 있기 때문에, 변환하지 않음.

※자동 형 변환의 원칙은 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용된다는 것이다.


정수 실수

____________________________    _______________

byte -> short -> int -> long -> float -> double

char

        ----

        문자


문자도 내부적으로는 숫자

char를 int로 형변환을 하게 되면 그 문자의 유니코드 값으로 변하게 됨.



{자바 - 명시적형변환} : 수동으로 하는 형 변환. 이를 명시적형변환(Explicit Conversion)이라고 한다.

'Java' 카테고리의 다른 글

Java - 비교와 Boolean  (0) 2015.10.10
Java - 연산자  (0) 2015.10.10
Java - 상수의 데이터 타입  (0) 2015.10.10
Java - 데이터 타입  (0) 2015.10.10
Java - 주석과 세미콜론  (0) 2015.10.10
Posted by 캬웃
,

[상수의 데이터 타입]

{Java - 상수형 데이터 타입}

상수(constant):변하지 않는 값

변수도, 상수도 데이터 타입이 있음.

a=1;

a는 변수, 1은 상수


float a = 2.2; 는 type mismatch 에러가 뜸.

2.2는 data type이 double이기 때문에 double로 해야 됨.

float를 쓰려면 2.2의 데이터 타입을 명시적으로 float형으로 지정해주면 됨.

float a = 2.2F;

이렇게.


상수가 실수인 경우 double을 기본형으로 채택함.

float를 쓰려면 상수 뒤에 F를 써줘야 함.



상수가 정수인 경우 int를 기본형으로 채택함.

따라서

long a = 2147483648;

은 에러가 나고,

long a = 2147483648L;

로 바꿔줘야 함.


단, byte b = 100;은 에러가 안남.

byte와 short 변수의 경우엔 int형 상수를 담는 것이 가능함. 단, 이 경우엔 각각의 범위에 맞는 것이어야 됨.

'Java' 카테고리의 다른 글

Java - 연산자  (0) 2015.10.10
Java - 형변환  (0) 2015.10.10
Java - 데이터 타입  (0) 2015.10.10
Java - 주석과 세미콜론  (0) 2015.10.10
Java - 변수  (0) 2015.10.10
Posted by 캬웃
,

Java - 데이터 타입

Java 2015. 10. 10. 23:55

[데이터 타입]

{Java - 데이터타입 (1/2) : 데이터의 크기}

데이터 크기

bit(가장 작은 단위):0과1

byte:8개의 bit

1KB:1024개의 byte

MB

GB

TB

PB petabyte 페타바이트

EB exabyte 엑사바이트

ZB zettabyte 제타바이트



{Java - 데이터타입 (2/2) : 데이터타입 비교}

데이터 타입

숫자 - 정수 - byte 메모리의 크기 1byte (메모리를 가장 절약할 수 있음.) -128 ~ 127

   - short 2byte -32,768 ~ 32,767

            - int(주) 4byte 가장 처리속도도 빠름. 충분히 큰 수 표현 가능 -2,147,483,648~2,147,483,647

   - long 8byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

     - 실수 - float

       - double(주) 더 큰 숫자를 표현할 수 있다.(더 많은 정보를 표현할 수 있고, 더 많은 정보를 수용할 수 있음.)


변수의 데이터 타입에 따라 소모되는 메모리 용량이 달라짐.

예를 들어

long a = 2148934;

long b = 1;

은 소모되는 메모리가 같음. (변수가 가리키는 데이터의 용량과는 상관없음.)


long을 쓰면 메모리에서 8byte의 용량을 예약하고, 그만큼의 공간을 확보해 놓는 것.

- 마치, 호텔의 룸 8개를 예약해 놓는 것과 같음. 방을 비워놔도 쓰는 건 쓰는 거임.


따라서

int a = 21345;

long b = 21345;

는 같은 데이터를 갖고 있지만,(같은 숫자를 가리키고 있지만,) 사용되는 메모리는 다르다.


일반적으로 정수를 사용할 땐 int를 사용하면 됨. 왜냐하면 int형을 사용할 때 처리속도가 가장 빠르고, 충분히 큰 수를 표현할 수 있기 때문이다.



정밀도 대신에 큰 범위의 수를 표현하는 것을 선택한 형식이 실수형이다.

주의해야할 것, 돈과 같이 아주 정확한 계산이 필요한 경우에는 실수형을 쓰면 안되고 다른 수단을 강구해야 한다.



문자 - char 2byte 모든 유니코드 문자

'A' 2byte 메모리 사용

"AB" 문자열 4byte 메모리 사용



각각의 데이터 타입에 따라서 메모리를 사용하는, 메모리를 소비하는 크기가 다르기 때문에 이렇게 데이터 타입을 구분하고 있다.



*String 클래스의 문자열 길이의 한계 : http://javacan.tistory.com/43

'Java' 카테고리의 다른 글

Java - 형변환  (0) 2015.10.10
Java - 상수의 데이터 타입  (0) 2015.10.10
Java - 주석과 세미콜론  (0) 2015.10.10
Java - 변수  (0) 2015.10.10
Java - 숫자와 문자  (0) 2015.10.10
Posted by 캬웃
,

Java - 주석과 세미콜론

Java 2015. 10. 10. 23:54

[주석과 세미콜론]

{Java - 주석과 세미콜론}

주석(comment):로직에 대한 설명, 또는 어떤 코드를 비활성화 할 때, 또는 여러분이 작성한 코드의 사용방법을 문서화 시킬 때. 이러한 경우에 주석을 사용한다.

자바에선 크게 세가지 형태의 주석을 제공한다.

한줄 주석 : //

여러줄 주석 : /* */

? JavaDoc 주석 : 기본적으론 주석, 동시에 자바의 어떤 api문서를 만드는 어떤 규약. 그 규약에 따라서 주석을 작성하면 이 주석은

/** */  형태를 가짐.

이렇게 코드를 작성을 하면 자바의 어떤 소프트웨어가 동작을 하면서 주석의 내용을 해석해서 이 밑에 있는 어떠한 코드에 대한 이 실제 문서를 만들어 줍니다.

;(세미콜론) : 문장(statement)이 끝났음을 알려주는 특수한 기호

표현식은 세미콜론을 찍지 않습니다. System.out.println("Hello World!");의 "Hello World!"부분이 표현식.

{}이거는 }이것이 닫혀 있다는 뜻을 이미 가지고 있기 때문에 ;세미콜론을 따로 붙여주지 않는다.

;을 잘못해서 붙이거나 붙이지 않거나 하면 자바에선 컴파일이 되지 않음.

;이 있기 때문에 문장과 문장을 정확하게 구분할 수 있기 때문에 한 줄에 두 개 이상의 문장을 사용할 수 있다.



'Java' 카테고리의 다른 글

Java - 상수의 데이터 타입  (0) 2015.10.10
Java - 데이터 타입  (0) 2015.10.10
Java - 변수  (0) 2015.10.10
Java - 숫자와 문자  (0) 2015.10.10
이클립스의 기능과 예제의 사용법  (0) 2015.10.10
Posted by 캬웃
,

Java - 변수

Java 2015. 10. 10. 23:54

[변수]

{Java - 변수 (1/4) : 변수의 선언과 할당}

변수(Variable):변할 수 있는 데이터. 숫자뿐만 아니라 문자 등. 정확하게는 가리키는 거지만 담는다고 하는 것이 생각하기 더 편할 것.

선언과 할당이라는 용어를 쓴다.

int a;     -- 변수를 만드는 구문.(변수를 '선언')

데이터 형식, 변수의 이름

데이터 형식에 맞지 않은 데이터를 넣으면 자바는 아예 실행조차 되지 않음. 컴파일도 되지 않음.

// 주석



{Java - 변수 (2/4) : 변수와 실수}

자바에서 숫자는 정수(int)와 실수(double)로 분류함.

정수 : -3 -2 -1 0 1 2 3 ..

실수 : 

어떤 언어는 정수와 실수를 구분하지 않고 퉁쳐서 숫자라고 하기도 함.

정수,실수,문자 상관없이 변수에는 모든 값을 담을 수 있는 언어도 있음.

javascript, php, 최근 script언어들이 대체로 그럼.

프로그래밍에서 수학은 어느정도 필요하긴 함.

할 거에 따라 수학은 그렇게 중요하지 않을 수도 있음.


double : 실수

strong data type : 엄격하게 데이터 타입을 지정해야 함.



{Java - 변수 (3/4) : 문자열}

문자열 데이터 타입의 변수 만드는 법

String : 문자열 강제

String first;

first = "coding";


두 가지를 한 번에 쓸 수도 있음.

String first = "coding";

변수를 선언하는 것과 변수에 값을 할당하는 것을 한 줄에 끝냄.


String a, b;

a = "coding";

b = "everybody";

System.out.println(a+b); //codingeverybody



{Java - 변수 (4/4) : 변수의 효용}

왜?

변수가 없다면?


변수는 프로그래밍에서 가장 중요한 것 중 하나.


변할 수 있는 수는 변수로 선언해 둬야 함.


★중복의 제거★  --여러분들이 지금부터 배울 프로그래밍의 여러가지 문법적인 요소들, 여러가지 기능적인 요소들이 공통적으로 추구하고 있는 바라고 할 수 있어요. 그러한 지향성을 이해하고 프로그래밍을 공부하신다면 굉장히 재밌게 느껴지실 겁니다. 마치 퍼즐하는 거와 같이. 게임처럼 재밌게 느낄 수 있는 부분이 분명히 있습니다.

가독성이 좋아짐

유지보수의 용이성

자연스럽게 버그가 발생할 가능성이 낮아짐


고정되는 것과 가변적인 것을 잘 구분할 필요가 있음.

고정적인 것들은 그것들끼리 묶어서 그루핑을 해 주고, 가변적인 것들은 가변적인 것들끼리 묶어준다.

그렇게 하면 나중에 소프트웨어가 동작하는 방법을 바꿔야 할 경우에는, 고정되는 부분은 신경쓰지 않고

가변적으로 바뀔 수 있는 영역에만 관심을 집중해서 수정하면 되기 때문에

로직을 핸들링하는 것이 훨씬 더 수월해진다.

'Java' 카테고리의 다른 글

Java - 데이터 타입  (0) 2015.10.10
Java - 주석과 세미콜론  (0) 2015.10.10
Java - 숫자와 문자  (0) 2015.10.10
이클립스의 기능과 예제의 사용법  (0) 2015.10.10
개발도구와 이클립스  (0) 2015.10.10
Posted by 캬웃
,

Java - 숫자와 문자

Java 2015. 10. 10. 23:53

[숫자와 문자]

{Java-숫자와 문자열-숫자}

* : 에스터리스크. Asterisk


{Java-문자열}

자바가 내부적으로 문자와 문자열을 다르게 처리함.

문자:A Character '' 작은따옴표

문자열:AB String "" 큰따옴표 (문자와 문자가 결합된 것.) 한 글자도 문자열이 됨.

'생활코딩'블럭 설정하고 바로 수정할 거("생활코딩") 쓰지말고, 일단 다 삭제하고 해야 큰 따옴표 한 번 썼을 때 뒤에도 붙음.

이상하면 라인 앞에 x가 떠서 경고를 미리 해 줌. 이것이 우리가 IDE툴을 사용하는 이유중에 하나라고 할 수 있음.

아래 Problems View를 보면

Description : 이런 형식의 에러가 발생했습니다.   Resource : 어떤 파일 Path : 어느 위치 Location : 몇 번째 라인

문자열과 문자열을 결합할 때 +연산자를 사용

이스케이프 : \(역슬래쉬) 역슬래쉬는 원화 표시로 사용되고 있기 때문에 역슬래쉬를 어디에 기술하느냐에 따라서 원화 표시가 출력이 될 수도 있고, 역슬래쉬가 그대로 표시될 수도 있음.

\n : 줄바꿈

'Java' 카테고리의 다른 글

Java - 주석과 세미콜론  (0) 2015.10.10
Java - 변수  (0) 2015.10.10
이클립스의 기능과 예제의 사용법  (0) 2015.10.10
개발도구와 이클립스  (0) 2015.10.10
Java의 실행  (0) 2015.10.10
Posted by 캬웃
,

[이클립스의 기능과 예제의 사용법]

{동영상1 - Java-이클립스의 기능과 예제의 사용방법}

*view

Package Explorer - 프로젝트를 관리

Outline - 소스코드의 여러 문법적 요소를 시각적으로 표현

          어떤 명령어, 어떤 요소들로 구성되었는지 일목요연하게 보여줌.

          자신이 필요한 걸 빠르게 찾을 수 있게 도와줌.

Problems - 소스코드에 어떤 문제가 있을 때, 그 문제들을 알려주는 역할을 하는 리스트

Console - 실행결과 보는 view

*debug:bug를 잡는 것

*debugger:debug툴

*Window-Perspective-Open Perspective 해당이름을 하는 것에 가장 적절하다고 생각하는 view의 모임과 배치

*프로젝트 생성시 만들어지는 것들

.classpath와 .project파일은 이클립스가 자신을 위해서 만든 파일. 무시해도 됨.

bin/binary/실행파일/.class파일/애플리케이션/byte code를 갖고 있는 class파일

src/source/.java파일

소스파일 작성하면 src에, 그걸 컴파일하면 bin에 컴파일된 파일이 저장됨.

package:폴더 안의 파일들 같이 같은 이름의 파일이 존재할 수 있게 즉, 같은 파일이름이 다른 package에 존재할 수 있도록 하는 것

package도 중복되면 안되기 때문에 package이름은 일반적으로 도메인 이름으로 한다. 도메인은 이 세상에서 유일한 것으로 존재하는 것이기 때문이다.

package이름은 도메인 주소를 거꾸로 쓰는데, package이름은 임의의 package, .은 디렉토리를 구분한다.

자바 프로그램의 가장 기본적인 단위:class


class 생성 시..

public선택, public static void main(String[] args)선택


*New Java Class - .java 파일이 만들어 짐. 이 창(dialogue)는 우리가 자주 생성하는 파일들을 잃어버리지 않고 편리하게 생성하는 것을 도와주는 역할을 하는 것에 불과하다.

Source folder : 소스파일이 만들어지는 곳. Package Explorer에 있는 src안임.

Package : 우리가 생성하려는 소스는 이 Package에 소속된다. package org.opentutorials.java_tutorials.eclipse; 에 영향을 미침

Name : 파일의 이름. public class Helloworld { 에 영향을 미침.

Modifiers : public은 소스 가장 바깥 class의 형태?를 나타냄. public class Helloworld { 와 같이..

public static void main(String[] args) : 


public static void main(String[] args) {

// TODO Auto-generated method stub


}


가 생성됨.

*Package는 디렉토리와 아주 밀접한 관계가 있다. 구분된 .에 따라 폴더들이 생성된다.

*이클립스에선 저장을 하면 자동으로 컴파일(.class파일이 생성됨)을 해주고 있다.

*

Code  ->  컴파일  ->  실행

.java ->  .class

*예, 이렇게 해서 이클립스를 이용해서 소스코드를 작성하고,

그 작성된 소스코드를 프로그램으로 만들어서

이 virtual machine을 통해서 실행하는 것까지 살펴봤습니다.


{동영상2 - Java-이클립스의 기능과 예제의 사용방법2}

ideone.com 자바 예제 웹에서 실행 가능. 소스 수정도 가능. input, output 가능

자세한 사용법은 https://opentutorials.org/course/128/5886

'Java' 카테고리의 다른 글

Java - 변수  (0) 2015.10.10
Java - 숫자와 문자  (0) 2015.10.10
개발도구와 이클립스  (0) 2015.10.10
Java의 실행  (0) 2015.10.10
Java의 설치  (0) 2015.10.10
Posted by 캬웃
,

개발도구와 이클립스

Java 2015. 10. 10. 23:38

[개발도구와 이클립스]

윈도우에서 이클립스 설치 및 실행

'Java' 카테고리의 다른 글

Java - 변수  (0) 2015.10.10
Java - 숫자와 문자  (0) 2015.10.10
이클립스의 기능과 예제의 사용법  (0) 2015.10.10
Java의 실행  (0) 2015.10.10
Java의 설치  (0) 2015.10.10
Posted by 캬웃
,