분류 전체보기 72

자바 BufferedReader BufferedWriter : 빠른 입출력 (ing)

BufferedReader 자바에서 처음 배우는 입력은 Scanner를 통한 입력인데, scanner은 spaca와 enter를 모두 경계로 인식하기 때문에 입력받은 데이터를 가공하기엔 편리하지만, 작업 속도나 메모리 면에서 비효율적이다 (실제로 경험상 백준을 풀 때 많은 양의 데이터를 입력 받는게 아님에도 bufferedreader를 사용한 코드와 scanner를 사용한 코드의 런타임이 꽤 차이난다) BufferedReader는 버퍼를 사용해서 읽기를 한다 : 버퍼를 사용하지 않는 입력은 키보드의 키를 누르는 즉시 프로그램에 입력값이 전달되는 반면, 버퍼를 사용하는 입력은 키보드에 입력이 들어오면 버퍼에 전송이 되고 버퍼가 가득 차거나 개행문자가 나타났을 때 한번에 입력값을 프로그램에 전달한다 / 키보..

자바 예외처리

예외 : 실행 중 오동작이나 결과에 악영향을 미치는 예상치 못한 상황 발생예) 정수를 0으로 나누는 경우, 배열의 크기보다 큰 인덱스로 배열의 원소를 접근하는 경우, 정수를 읽는 코드가 실행되고 있을 때 사용자가 문자를 입력한 경우 등 이러한 예외는 컴파일 오류와 달리 실행 중에 발생하고, 이를 자바 플랫폼이 가장 먼저 알게되어 현재 실행중인 자바 응용프로그램에게 예외를 전달하여 프로그램이 이에 대응하게 한다. 만약 응용프로그램에 예외에 대처하는 코드가 작성되어 있지 않다면 자바 플랫폼이 응용프로그램을 강제로 종료시킨다 ( exception in thread~~ 메세지를 띄움) 예외 처리 : 예외에 대해 개발자가 작성한 프로그램 내에서 대응하는 것 1. try - catch - finally 문 try ..

백준 자바 10988

package Baekjoon; import java.util.Scanner; public class pald { public static void main(String [] args) { Scanner input = new Scanner(System.in); String a = input.nextLine(); StringBuilder sb = new StringBuilder(); sb.append(a); if(a.equals(sb.reverse().toString())) System.out.println(1); else System.out.println(0); } } reverse() 메소드를 사용해주었다 String에 reverse() 메소드가 있다면 좋겠지만 그렇지 않기 때문에 StringBuild..

자바 객체지향(2) (ing)

초기화와 생성자 생성자 (constructor) new 연산자를 통해서 인스턴스를 생성할 때 반드시 호출이 되고 제일 먼저 실행되는 특별한 메소드멤버필드를 초기화하는 역할을 한다생성자의 이름은 클래스 이름과 동일하게 작성한다만약 사용자가 작성하지 않으면 자동으로 default constructor가 생성된다 : 매개변수의 종류나 개수를 다르게 오버로딩해서 생성자를 여러개 만들 수 있는데, 기본 생성자 외에 다른 생성자를 하나라도 만들게되면 자동으로 만든 기본 생성자를 없애므로 생성자를 여러버전 만들 때에는 기본 생성자도 추가해주어야 에러를 방지할 수 있다생성자에는 static, final 등의 지정어를 사용하지 않는다리턴하지 않기 때문에 리턴타입도 작성하지 않는다생성자는 상속되지 않는다생성자를 따로 지정..

백준 자바 2884, 1152 / split() , StringTokenizer() 비교

2284 import java.util.Scanner; public class Main { public static void main(String [] args) { Scanner input = new Scanner(System.in); Byte H = input.nextByte(); Byte M = input.nextByte(); if(H==0) { if(M>=45 && M=45 && M44) System.out.println(H + " " + (M- 45)); else if ( M 0) System.out.println((H-1) + " " + (M+15)); else System.out.println(23 + " " + (M + 15)); input.close(); } } 더 짧..

자바 객체지향(1)

객체지향이란 객체지향 프로그래밍 = oop = objected-oriented programming -> 객체를 기반으로 프로그램을 작성하는 것 / 부품 객체를 먼저 만들고 이를 조립하여 최종 프로그램을 만드는 기법 객체지향의 특성 1) 부품화 메소드라는 부품을 이용하여 하나의 완제품인 프로그램을 만든다 이 때 메소드의 관리를 위해 연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑하는데, 이렇게 그룹핑한 대상이 객체이다 2)은닉화(캡슐화) 겉으로 보일 것만 빼놓고 보여줄 필요가 없는 부분은 정보보호를 위해 숨기자(정보은닉) -> 외부의 잘못된 접근으로부터 객체를 보호함 사용자 인터페이스에는 꼭 보여줘야하는 것들만 꺼냄 외부 객체는 객체 내부 구조를 알지 못하며 객체가 노출해 제공하는 필드와 ..

자바 메소드

메소드 형식 접근지정자 리턴타입 메소드이름 (메소드 인자들) { //메소드 코드 바디 } ex)public (static) int getSum(int i.int j){ int sum; sum = i+j return sum; } 접근 제한자 public : 클래스 내부,외부에서 모두 호출 가능,모든 패키지에서 사용 가능 / 필드와 메소드가 public이면 클래스도 public이어야 한다 주의 : public 을 붙였다고 해서 다른 패키지에서 public 메소드를 막 사용할 수 있는 것은 아니다 ! 다른 패키지에서 public 멤버를 사용하려면 import 패키지명.클래스명; 을 위에 작성해주어야한다 import는 다른 패키지 내에 있는 클래스를 사용하겠다는 뜻이다 또한 메뉴 보이기는 리턴값이 int 인 메..

백준 자바 문자열 : 27866, 9086, 11654, 10809

27866번 import java.util.Scanner; public class Main{ public static void main(String args[]) { Scanner input = new Scanner(System.in); String s = input.next(); short j = input.nextShort(); System.out.println(s.charAt(j-1)); } } 처음에 런타임에러가 떠서 풀이들을 찾아봤는데 다들 substring() 혹은 string 타입의 배열 혹은 bufferedreader 등을 쓰길래 그런걸 써야만 런타임에러가 나지 않는것일까 고민을 잠시 했는데 코드를 다시보니 j-1 부분을 j로 써서 틀린거였다 ..^^ 코드는 이 방식이 가장 간단한 것 같은..

자바 문자열(String) 주요 메소드

String 생성자String()빈 스트링 객체 생성String(Char[] value)char 배열에 포함된 문자들을 스트링객체로 생성String(String original)인자로 주어진 스트링과 똑같은 스트링 객체 생성String(StringBuffer buffer)스트링버퍼에 포함된 문자들을 스트링객체로 생성 String 주요 메소드메소드기능리턴타입charAt()지정된 인덱스의 문자를 반환charcompareTo()해당 문자열을 인수로 전달된 문자열과 사전 순으로 비교 -> 같으면 0, 문자열이 매개변수의 문자열보다 길이가 짧거나 순서가 앞이면 음수, 길이가 길거나 뒤이면 양수값을 반환함intconcat()문자열의 끝에 매개변수의 문자열을 추가 -> 결합된 문자열을 반환Stringcontains(..