■ Java Numbers - Math.abs() 함수


abs() 함수는 인자값에 대한 절대값을 반환하는 함수 입니다. 인자값의 타입으로는 int, float, long, double 등 primitive data type 입력이 가능합니다. 

Math 클래스의 함수중 하나로 static 함수 입니다. 



Syntax

static double abs( double d )

static float abs( float f )

static int abs( int i )

static long abs( long l )



Sample

1
2
3
4
5
6
7
8
int intValue = -1004;
System.out.println(Math.abs(intValue));
 
double doubleValue = -3.14;
System.out.println(Math.abs(doubleValue));
 
float floatValue = -15;
System.out.println(Math.abs(floatValue));
cs


음수 값들을 절대값으로 반환하면 당연히 전부 양수로 변경 되겠죠? ^^


위 코드를 실행 결과 값은 아래와 같습니다. 


1004

3.14

15.0


int 형을 입력 하면 int 형이 리턴됩니다. 

마찬가지로 double 형을 입력 하며 double 형이 리턴 되죠.


입력된 데이터 타입이 그대로 리턴되는 함수 입니다. 




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



 ■ Java 에서 Integer.toString() 함수를 써야 하는 이유 


안녕하세요. 제임스입니다. 


바로 이전 포스팅에서 Integer.toString() 함수에 대해 간략히 정리 했는데요. 

이번에는 실제 코딩 시 Integer.toString() 함수를 써야 하는 이유에 대해 언급하고자 합니다. 


우선 아래 코드를 보시겠습니다. 

1
2
3
Integer val = 12;
System.out.println("val1 = "+val);
System.out.println("val2 = "+val.toString());
cs


위 코드를 실행 시 결과 값은 아래와 같습니다. 


val1 = 12

val2 = 12


Integer 값을 바로 프린트 해도 결과 값은 동일하게 나옵니다. 

그렇다면 굳이 길게 쓸 필요 없지 않을까요? 라는 생각을 하시는 분들이 있을 수 있습니다. 


물론 보통의 경우 위와 같이 코드들 작성한다고 크게 문제가 되지는 않습니다. 



하지만 안전한 코딩을 하는 연습을 하기 위해 위와 같이 toString() 함수를 사용하시는 것을 권장 드립니다. 


아래 코드를 보시겠습니다. 

1
2
3
4
5
6
7
8
9
10
11
int intVal = 5;
sampleCode(intVal);
sampleCode2(intVal);
 
private static void sampleCode(int intVal) {
     System.out.println("number" + '=' + intVal);
}
    
private static void sampleCode2(int intVal) {
     System.out.println(intVal + '=' + "number");
}
cs


5라는 int 값을 아래와 같이 두가지 방법으로 표기 해봅니다. 


첫번째 ---> "number" + '=' + 5

두번째 ---> 5 + '=' + "number"


예상되는 결과 값은 아래와 같습니다. 


number=5

5=number


하지만 실제로 프로그램을 실행 해봤을때 결과 값은 예상과 다릅니다. 


number=5

66number


왜 이렇게 나올까요? 

숫자 + 부호의 식이 만들어 질 경우 부호를 유니코드 값으로 변환하여 처리 하는 경우가 생깁니다. (위 예제와 같은 경우) 유니코드 상에서 = 기호 값이 61 입니다. 

즉, 5+61 한 결과 값이 66이므로 66number 라는 생각지도 못한 결과 값을 리턴하게 됩니다. 


그렇기 때문에 sampleCode2 함수의 코는 아래와 같이 toString() 함수를 이용하여 변경하는 것이 좋습니다. 

1
System.out.println(Integer.toString(intVal) + '=' + "number");
cs



아래 샘플 코드는 StackOverflow 에서 발췌한 샘플 코드 인데요.

URL 정보를 미처 확보하지 못해 링크는 못걸었습니다. 

1
2
3
4
display(2'+'35);
public static void display(int num1, char operator, int num2, int result) {
    System.out.println(num1 + operator + num2 + '=' + result);
}
cs


위 코드를 실행 시키면 아래와 같은 결과 값이 나옵니다. 


114


2 + 43 (+ 의 유니코드 값)  + 3 + 61 (= 의 유니코드 값) + 5 을 계산한 결과 값이 114 입니다. 


위 코드를 안전한게 toString() 함수를 이용하여 작성해 보겠습니다. 

1
2
3
4
displaySafe(2'+'35);
public static void displaySafe(int num1, char operator, int num2, int result) {
    System.out.println(Integer.toString(num1) + operator + Integer.toString(num2) + "=" + result);
}
cs


결과 값은 아래와 같습니다. 


2+3=5


이제서야 원했던 결과 값이 제대로 나온것 같습니다. ^^



왜 toString 함수를 쓰는 것이 좋은 습관인지 아시겠죠? 물론 대부분의 경우 위와 같은 케이스를 경험하기는 힘듭니다. 하지만 평상시에 연습하지 않으면 당연하다는 생각에 코드 상에서 오류가 발생해도 쉽사리 찾기 어렵습니다. 경험담입니다 ㅠㅠ


좋은 코딩 습관을 기르는 연습이 왜 필요한지 한번 생각해 보는 것도 좋겠죠? ^^




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



  Java Numbers - toString() 함수 



toString() 함수는 Number 객체의 값을 String 객체로 변환하는 함수 입니다. 

만약 인자값이 primitive data type 일 경우 primitive data type 의 String 객체가 리턴 됩니다. 



Syntax

String toString()

- 해당 Integer 값을 String 객체로 표기 합니다. 


static String toString(int i)

- 전달 받은 인자(i) 를 String 객체로 표기 합니다. 



Sample

1
2
3
Integer x = 7;
System.out.println("x.toString() >>> "+x.toString());
System.out.println("Integer.toString(x) >>> "+Integer.toString(x));
cs


Integer x 값을 toString() 또는 toString(x) 한 값은 동일한 결과를 리턴합니다. 


x.toString() >>> 7

Integer.toString(x) >>> 7



한가지 주의 할 점은 아래와 같은 경우가 있습니다. 

1
2
int y = 5;
System.out.println("y.toString() >>> "+y.toString());
cs


Integer 값이 아닌 int 값 (primitive data type) 을 toString() 하려는 경우 아래와 같은 오류가 발생 합니다. 

Cannot invoke toString() on the primitive type int


primitive data type 인 int에 toString() 함수를 사용할 수 없다는 내용입니다. 


int 와 Integer 가 엄연히 다르다는 것 꼭 기억하시길 바랍니다. 





 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


최근에 자바 Number 관련 함수 중 valueOf 와 parseInt 에 대해 정리 했는데요. 

이 두 함수의 차이점은 무엇일까요? 


parseInt 함수에 대한 내용은 아래 링크 참조하세요.

2018/03/06 - [Java] - [ 자바 코딩 ] Java Integer.parseInt


valueOf 함수에 대한 내용은 아래 링크 참조하세요.

2018/03/26 - [Java] - [ 자바 코딩 ] Java Number - valueOf() 함수




Integer.parseInt() vs Integer.valueOf() 두 함수의 차이점은 무엇일까요? 


결정적인 차이점은 parseInt 함수는 int 형의 primitive data type 을 리턴하는 반면 valueOf 함수는 Integer 객체로 반환한다는 점입니다. 


1
2
int x = Integer.parseInt("5");
Integer y = Integer.valueOf("7");
cs


위 코드는 각각 int 값 5 와 Integer 값 7 을 리턴합니다. 



또 다른 한가지는 차이점이라 이야기 하긴 어렵긴 한데요...

사실 valueOf 함수가 내부적으로 parseInt 함수를 사용하고 있습니다. 

아래는 Integer.class 소스 내용 중 관련 부분 발췌했습니다. 


public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s, 10);
}

public static Integer valueOf(String s, int radix) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, radix));
}

public static Integer valueOf(String s) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, 10));
}


valueOf 함수 결과 값을 리턴 할때 이미 내부적으로 parseInt 한 값을 Integer 형으로 리턴하고 있는 것을 보실 수 있습니다. 



두 함수의 차이점 이해 하셨나요? 

비슷하지만 다른 두 함수의 리턴 값, 잘 알아 두시면 좋을 거예요. 




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


이번 포스팅에는 Java Number 관련 함수 중 valueOf() 함수에 대해 정리해 보겠습니다. 


valueOf() 함수는 입력받은 인자 값을 지정된 Number 객체 형으로 변환하여 반환 합니다. 이 인자값은 primitive data type (원시 데이터 형 - byte, int, long, double, boolean 등 자바 키워드로 이미 지정된 데이터 형) 또는 문자열 등이 될 수 있습니다. 



Syntax

1. public static Integer valueOf( int i )

2. public static Integer valueOf( String s )

3. public static Integer valueOf( String s, int radix )


그외 Double, Float 등도 valueOf (primitiveType value) 또는 valueOf(String s) 함수를 가지고 있습니다. 

즉, 아래과 같은 syntax 들이 더 있습니다. 참고 하세요.

public static Double valueOf(double d)

public static Float valueOf(float f)


Parameters

첫번째, 두번째 입력 값은 각각 int 및 String 으로 단 하나의 입력 값을 가지고 있습니다. 

이와 다르게 세번째 함수는 String 값과 int 값을 동시에 순차적으로 입력을 받습니다. 입력된 String 형의 값을 두번째 인자값으로 입력된 진수에 맞춰서 변환 합니다. 

예를 들면 Integer.valueOf("100", 16) 이라는 코드가 있다면 100 을 16진수로 변환하여 Integer 형으로 반환 한다는 뜻입니다. 


Sample Code

1
2
3
4
5
6
7
8
9
Integer a =Integer.valueOf(7);
Double b = Double.valueOf(5);
Float c = Float.valueOf("38");               
Integer d = Integer.valueOf("100",16);
 
System.out.println("a = "+a); 
System.out.println("b = "+b);
System.out.println("c = "+c);
System.out.println("d = "+d);
cs



결과 값은 아래와 같습니다. 


a = 7

b = 5.0

c = 38.0

d = 256



입력 파라미터 값도 중요 하지만 어떤 형으로 반환 할 것인지 결정을 잘해야 겠죠? ^^




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


이번에는 Java Number 관련 함수 중 equals() 라는 함수에 대해 알아 보겠습니다. 



equals() 함수는 함수를 호출하는 Number 객체가 인자 값으로 전달 되는 객체와 같은지 여부를 판단하여 boolean  형으로 리턴 해줍니다.  



Syntax

public boolean equals( Object o )


Parameters

인자 값으로는 어떤 객체든 상관 없이 받을 수 있습니다. 


Return Value

▶ 인자값이 null 이 아니고, 비교 대상이 동일한 값이며 동일한 형일 경우 true

▶ 인자값이 null 이거나, 비교 대상이 다른 값일 경우 또는 형이 다른 경우 false

를 반환합니다. 


Sample Code

1
2
3
4
5
6
7
8
Integer x = 7;
Integer y = 20;
Integer z =7;
Short a = 7;
 
System.out.println(x.equals(y));  
System.out.println(x.equals(z)); 
System.out.println(x.equals(a));
cs


비교대상이 되는 x 값을 Integer 형의 7로 설정했습니다. 

그리고 동일한 Integer 형의 20 과 7을 비교 해봅니다. 


첫번째 7과 20은 동일한 형이지만 다른 값이므로 false 가 나올것으로 예상됩니다. 

두번째 7과 7은 동일한 형에 동일 값으로 true 가 리턴 될 것입니다. 

세번째 7과 7은 값은 같지만 Integer 와 Short 로 서로 다른 형이기에 결론적으로 다른 값으로 볼수 있습니다. 즉, false 가 리턴 될 것으로 예상 할 수 있습니다. 


결과 값은 어떻게 나올까요? 


아래와 같습니다. 


false

true

false



equals() 함수는 값만 보는 것이 아니라 데이타 타입 즉, 형도 같이 비교 대상입니다. 꼭, 기억해 두세요 ^^




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


최근 Java Number 관련 함수에 대해 계속해서 알아 보고 있습니다.

이번에는 compareTo() 라는 함수에 대해 이야기 해보겠습니다. 



compareTo() 함수는 함수를 호출한 Number 객체를 인자값과 비교를 합니다.

Byte, Double, Integer, Float, Long 또는 Short 등을 비교 할 수 있습니다. 단, 서로 다른 형을 비교 할 수는 없으므로 함수를 호출하는 인수와 비교대상이 되는 Number 객체는 동일한 형이어야 합니다. 


예를 들면 Integer 는 Integer 형 인자값과 비교가 가능하지만, Long 형 인자 값을과는 비교가 불가능 합니다. 



Syntax


public int compareTo( NumberSubClass referenceName )



Parameters


referenceName 은 Byte, Double, Integer, Float, Long 또는 Short 등이 될수 있습니다. 



Return Value


▶ 비교 대상이 동일한 값일 경우 0

▶ 비교 대상이 작은 경우 -1

▶ 비교 대상이 큰 경우 1 

을 반환합니다. 



Sample Code


1
2
3
4
5
6
7
Integer x = 7;
          
System.out.println(x.compareTo(3));
        
System.out.println(x.compareTo(7));
        
System.out.println(x.compareTo(77));
cs


비교 대상은 Integer 형인 7 입니다. 


첫번째 7과 3의 비교인데요... 당연히 비교대상인 7이 인자값인 3보다 크죠. 

예상되는 결과 값은 1 입니다. 


두번째는 7과 7의 비교입니다. 당연히 동일한 값입니다.

예상 결과 값은 0 입니다. 


세번째 7과 77의 비교! 인자값 77보다 작습니다. 

예상 결과 값은 -1이 됩니다. 



결과는 어떨까요? 


1

0

-1


맞습니다. 예상대로 결과 값이 리턴 됩니다. 



이번에는 Double 형으로 테스트 해보겠습니다. 

1
2
3
4
5
6
7
Double y = 12.5;
        
System.out.println(y.compareTo(3.0));
        
System.out.println(y.compareTo(12.5));
        
System.out.println(y.compareTo(27.8));
cs


결과가 예상이 되시나요? 


1

0

-1


위와 같은 결과 값이 나옵니다. 

예상하신 값과 동일 한가요? ^^




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


자바에서 사용하는 함수들 중 xxxValue() 라는 형태의 함수들을 종종 보실 수 있습니다. 

이 함수들에 대해 간단히 설명 하고자 합니다. 


xxxValue() 함수는 함수를 호출하는 Number 객체의 값을 함수에서 반환된 primitive data type 으로 변환 합니다.


※ primitive data type 이란 자바 키워드로 정의 되어 있는 byte, short, int, long, double, boolean 등의 타입을 의미 합니다. 이런 primitive data type 을 제외한 다른 타입들은 모두 reference data type 이라고 부릅니다. 

이와 관련된 내용은 차후 다시 다루도록 하겠습니다. 


Syntax

각각의 primitive data type 의 함수 형태는 아래와 같습니다. 

byte byteValue()
short shortValue()
int intValue()
long longValue()
float floatValue()
double doubleValue()


파라미터를 별도로 입력 받지 않고 아래와 같은 방법으로 사용 합니다. 


1
2
3
4
5
6
7
8
9
Integer x = 7;
          
System.out.println( x.byteValue() );
 
System.out.println( x.longValue() );
        
System.out.println( x.doubleValue() );
        
System.out.println( x.floatValue() );
cs


Integer 형으로 초기화 했습니다. 

만약 int 형으로 초기화 한다면 위와 같은 방법으로 사용 할 수 없습니다. Number 객체의 값을 primitive data type 으로 변환 하는 것이기 때문입니다. int 형은 이미 primitive data type 입니다. 


결과는 아래와 같습니다. 


7

7

7.0

7.0




다른 예로 이번에는 Float 형의 값을 지정해 보겠습니다. 


1
2
3
4
5
6
7
8
9
Float y = 10.15f;
        
System.out.println( y.byteValue() );
 
System.out.println( y.longValue() );
        
System.out.println( y.doubleValue() );
        
System.out.println( y.floatValue() );
cs



위 코드의 결과 값은 아래와 같습니다. 


10

10

10.149999618530273

10.15




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,




내 PC 의 물리 주소 (Mac Address) 를 알아야 할때 윈도우의 커맨드 프롬프트를 이용하여 쉽게 찾을 수 있습니다. 


단축키: 윈도우키 + R


위 단축키를 이용하여 실행 창을 띄웁니다. 



cmd 를 입력후 확인을 클릭 하시면 윈도우즈 커맨드 프롬프트가 실행됩니다. 




■ ipconfig -all 명령



첫번째로 소개할 명령어는 "ipconfig -all" 입니다. 

가장 많은 정보를 제공하기 때문에 많이 사용하는 커맨드 입니다. 





많은 양의 내 컴퓨터 정보가 프린트 되어 나오는데요. 

이중 대략 중간쯤에 "물리적 주소" 또는 영문으로 되어 있다면 "Physical Address" 라는 항목을 찾으시면 됩니다.  


맥주소는 12-34-56-78-90-12 와 같은 형식으로 표기 되어 있습니다. 




■ getmac /v /fo list 명령



명령어에 get mac 이라고 친절하게 적어 놨습니다. 

즉, 물리적 주소(mac address) 만을 찾겠다는 명령어 입니다. 


"getmac /v /fo list" 를 입력합니다. 




ipconfig -all 과는 다른게 물리적 주소 정보만 확인 가능합니다. 




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,

이번 팀 회식으로 종로 팬아시아를 다녀 왔습니다. 

종로 젊음의 거리에 위치하고 있어 

찾기는 정말 쉬웠습니다. 



약간 동남아 쪽 레스토랑 분위기가 납니다. 


실내 쪽 사진을 찍지 않았는데요...

레스토랑 사이즈가 상당히 큽니다. 






음식을 주문 후

적당히 수다 시간을 가지는 사이 나온 첫 메뉴


라임모히또 입니다. 


6000 ~ 7000원 정도 했는데요. 

대략 3인분 정도 사이즈 나오는걸 컵에 따른 것입니다. 


사실 모히또는 알콜 향이 거의 없어

여직원들은 맛나게 먹었습니다...


개인적으로 제 취향과는 조금 ... ㅎㅎ;







에프타이저로 시킨 모듬 스프링롤 입니다. 


새우롤, 꽃게롤, 새우 연필 춘권, 채소 춘권 등의 모듬입니다. 


가볍게 먹기 괜찮습니다. 







두번째로 나온 시즐링 쉬림프

새콤 매콤하면서도 살짝 달달한 맛이 일품입니다. 

맛있는 음식은 역시... 

두번째 젓가락질을 허용하지 않습니다 ㅠㅠ







세번째 나온 푸팟퐁커리 크랩 요리입니다.

태국 전통 요리로 향긋하고 부드러운 커리와 

부드러운 달걀의 조합이 아주 좋았습니다.







네번째로 나온 분짜 플레이트

불향을 입힌 돼지와 닭고기, 짜조 를 맛볼 수 있었습니다. 







마지막으로 나온 아시안 비프 라이스

사실... 매일 먹는 밥인데 이런데서 밥을 시킨 직원을 이해 할 수 없었으나...


이녀석이야 말로 신의 한수 였습니다. 


물론 앞서 나온 음식들 모두 너무 맛있었지만

아시안 비프 라이스는 앞서 먹은 모든 음식들을 잊게 만들었습니다. 


개인적으로 오늘 최고의 음식이었습니다 ^^









메뉴판도 음식 사진도 참 많이 찍었는데...

왜이렇게 건질 사진이 없는건지 ㅠㅠ



상당히 만족도 높은 레스토랑 이었습니다. 

다른 그룹에서 회식 장소를 찾아야해서 이곳으로 다시 올것 같습니다. 


다음번에는 이번에 못먹어 본 음식들을 한번 도전해 봐야 겠습니다. ^^






블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,