분류 전체보기
-
(JAVA) 자바 스캐너(Scanner)로 파일 내용 읽어오기JAVA/컨셉 , 예제 2018. 8. 24. 13:33
스캐너는 표준 입력(Stdin, 키보드)을 받을 수 있도록 돕는 객체이다. String을 비롯한 primitive 타입들로 변환해 받을 수 있도록 메소드들을 제공하고 있다. 주요 메소드와 특징 간단하게 정리하자면 next()문자열 반환함수. 공백(space)를 만나면 종료된다.nextLine()문자열 반환함수. 개행(Enter)를 만나면 종료된다. next()와 달리 띄어쓰기를 할 수 있다.nextInt() int 타입 반환함수. nextDouble()double 타입 반환 함수.package com.naver.cafe.club.biz; import java.util.Scanner; public class ScannerExample { public static void main(String[] args)..
-
(JAVA) 자바 래퍼(Wrapper) 클래스JAVA/컨셉 , 예제 2018. 8. 24. 13:31
개발자의 입장에서 문자열을 숫자로 바꾸어 원하는 연산을 할 수 있도록 가공하는 절차는 필수적이다. 하지만 문자열과 숫자는 데이터 타입이 다르기 때문에 형변환이 필수적이다. 일반적으로 문자열을 특정 토큰에 따라 나누는 split 메소드를 사용한다.다음과 같이 공백을 기준으로 String을 나누어 값을 출력한다. 여기서 모든 값들을 더하고 싶은 경우 어떻게 할까?System.out.println("sum of points : "+ msg[0]+msg[1]+msg[2]);다음과 같이 생각할 수도 있다. 하지만 결과는다음과 같이 50100200이 나온다. 데이터 타입이 문자열이고, 문자열에서 +연산은 단순히 문자를 이어쓰는 것에 불과하다. 산술 연산을 하지 않는다는 말이다. 이를 해결하기 위해 각각의 문자열을 ..
-
(JAVA) 자바 상수 (final) 사용이유와 방법JAVA/컨셉 , 예제 2018. 8. 24. 13:28
3개의 숫자를 입력받아 합계와 평균을 출력하는 프로그램은 다음과 같다. 20번째 줄에서 평균을 구할 때 직접 숫자를 넣어 값을 구하고 있다. 짧은 코드라면 큰 지장이 없겠지만, 코드가 방대해지면 이 3의 의미를 알기 힘들어지고 잘못 수정하는 경우 원하는 결과를 얻지 못할 우려가 있다. 이를 방지하기 위해 3과목의 평균을 구하는 역할만을 한다면 3을 상수로 저장해 이후 수정을 하지 못하도록 final 키워드를 제공하고 있다. import java.util.Scanner; public class Final { void printfSumAndAverage(){ final int CLASS_CNT = 3; Scanner input = new Scanner(System.in); System.out.println(..
-
(JAVA) 자바 형변환 ( Type Casting )JAVA/컨셉 , 예제 2018. 8. 24. 13:27
자바는 숫자를 표기법에 따라 다른 데이터 타입으로 인식한다. int (4 byte) : 10, 20, 30... long(8 byte) : 10L, 20L, 30L... double(8 byte) : 1.2, 10.34, 5.6... float(4 byte) : 1.2F, 10.34F, 5.6F... 10과 10L은 같은 값이지만 데이터의 타입이 달라지기 때문에 취급에 주의를 둬야 한다. long 타입의 변수에 int 타입의 변수를 할당하는 것은 문법적으로 문제가 없지만 int 타입의 변수에 long 타입의 변수를 할당하는 것은 Syntax error가 발생하게 된다. 그 이유에 대해 알아보자. 데이터 타입은 자바에서 매우 중요하다. 변수를 선언한 타입에 맞춰 값을 할당해야 하고, 그렇지 않으면 에러가 ..
-
(JAVA) 자바 변수의 범위(Scope)와 참조 & thisJAVA/컨셉 , 예제 2018. 8. 24. 11:03
자바 클래스에서 변수는 멤버 필드 공간과 메서드 내에서 존재할 수 있다. 또한 변수가 속한 범위 (Scope. { 부터 } 까지 ) 내에서 존재하며 참조 가능하다. 다음 코드를 보자.메인 함수에서 This 클래스 객체를 생성해 fun 함수를 수행한 결과이다. 컴파일러가 num 변수를 찾는 과정에 대해 알아보자. 1. 컴파일러는 num 변수를 해당 변수가 포함된 블럭에서 처음으로 찾는다. 2. fun() 함수 안에 num 변수가 있기 때문에 이를 참조한다. 따라서 200이 출력된다. 만약 fun()에서 num 변수가 없다면 어떻게 될까?1. 컴파일러는 num값을 fun()에서 찾는다. 2. num값이 fun() 내에서 없기 때문에 해당 블럭 바깥 구역인 This 클래스 내에서 num 변수를 찾는다. 3. ..
-
(JAVA) 자바 클래스와 객체JAVA/컨셉 , 예제 2018. 8. 24. 10:54
프로그래밍을 하는 이유는 특정 문제를 해결하는 절차에 대해 자동화를 해 편하게 하기 위해서라고 생각할 수 있다. 우리는 모든 상황에서 어떤 목표를 위해 필요한 절차를 거친다. 커피를 사는 경우를 생각해보자. 커피를 사기 위해 커피전문점에 들어가 메뉴를 생각하고, 고른 메뉴를 점원에게 주문한다. 점원은 이를 확인하고 결제 방법을 고객에게 물어봐 각기 다른 결제 방법에 따라 다른 방법으로 결제를 돕고 진동벨을 고객에게 준다. 이후 커피를 만들고 진동벨을 울려 고객이 음료를 수령할 수 있도록 한다. 일련의 과정 중 이미 자동화 된 절차들이 굉장히 많고 이러한 것들은 프로그래밍에 의해 이루어졌다고 볼 수 있겠다. 이러한 프로그래밍을 하기 위해 우리는 실세계와 비슷한 개념들을 프로그래밍 언어로 불러와 서로 상호작..
-
(JAVA) 자바 리터럴(Literal) 의미와 용도JAVA/컨셉 , 예제 2018. 8. 24. 10:36
자바에서 실수를 표현하는 Primitive Data Type으로 double과 float가 있다. 두 타입의 차이는 데이터 크기이다. float는 4바이트, double은 8바이트의 크기를 갖고 있다. 과거 메모리가 작았을 때에는 데이터 크기를 최적화 해 사용하는 것이 성능 향상에 큰 도움을 줬다. 하지만 램이 비약적으로 상승한 오늘날 크기가 성능에 큰 영향을 미치지 않게 되었다. 그로 인해 변수의 최적화에 대해 더 집중할 수 있게 되었다. 실수의 경우 자릿수가 많은 것이 보다 정확도를 높이는 데 중요할 것이다. 이를 정밀도라 하며 정밀도는 높은 것이 좋기 때문에 float와 double 중에 더 정밀도가 높은 8바이트의 double형을 주로 사용하게 된 것이다. 실수를 표현할 수 있는 데이터 타입은 f..
-
이클립스(Eclipse), STS html 에디터 성능향상JAVA/환경설정 2018. 8. 22. 17:27
현재 32비트 PC로 서버 개발하고 있는데 jsp 파일에 복사 붙여넣기 하면 굉장히 느리고 멈추는 현상이 발생한다. 에디터 상의 텍스트가 변경될 때마다 하이퍼링킹 관련 이벤트가 발생하기 때문인데 이 설정을 푸는 방법 이클립스, STS에서 1) Windows - Preperences 클릭 2) General - Editors - Text Editors - HyperLinking 클릭하면 Java Script 관련 하이퍼링크 옵션이 체크되어 있을 것이다(Default 설정 기준) 관련 항목들 체크를 해제하고 나면 편집할 때 조금이나마 답답함을 덜 수 있다.