공부/JAVA 31

Scanner와 버퍼

Scanner를 이용해 정수를 입력받기. 에러시 다시 입력받기 위한 프로그램이다. while(true){ try{ System.out.println("정수입력"); n = sc.nextInt(); break; }catch(InputMismatchException e){ sc.next(); System.out.println("error :"+ e.toString()); } } catch문에서 sc.next()를 쓰는 이유? - 정수 이외의 문자를 입력하면 sc.nextInt()에서 에러가 발생하고 키 버퍼(?)에서 값이 빠져나가지 않은 상태가 되며 catch문을 무한 반복하게 된다. 때문에 sc.next()를 사용해 버퍼의 값을 강제로 비워주는 작업이 필요하다.

공부/JAVA 2016.04.12

추상클래스, Adapter 클래스

추상클래스 : 추상메서드를 만들 수 있는 클래스 단점 : 필요 없는 메서드까지 오버라이드 해야함. 어댑터클래스 : 추상클래스의 단점을 보완하기 위해 만든 클래스로. 추상클래스를 상속받아 모든 메서드를 더미형태로 구현해 놓는 클래스. 예시: 추상클래스에 추상메서드 A,B,C가 있고. 어댑터클래스에서 이 A,B,C를 기능이 없는 더미형태로 구현한다. 그후 어댑터 클래스를 상속받아 필요한 메서드만 사용하면 됨. 인터페이스는 일반메서드를 포함할 수 없고 다중상속이 가능한 특징이 있음.

공부/JAVA 2016.04.06

[JAVA] JVM 공부

.java 파일 - ( javac.. javacompiler) ->java bytecode.. .class파일 -> [jvm] ->OS [runtime data areas] .. jvm이 운영체제 위에서 실행되면서 OS에게 할당받는 메모리 영역 크게 2가지로 나뉘는데 1: 스레드마다 생성되는 부분 // 2:공용으로 사용되는 부분 (stack,heap,method area 이 3가지가 중요한듯) 1: 스레드마다 생성되는 부분 ( 스레드마다 하나씩 존재함) - pc register : 현재 수행중인 JVM 명령의 주소를 갖는다. - JVM Stack : 스택 /지역변수, 매개변수등을 저장함.. 맨밑바닥에 main을 깔고 시작 - Native method : 자바외에 언어로 작성된 네이티브 코드를 위한 공간 ..

공부/JAVA 2016.04.05

[JAVA] switch문에서 String 사용하기

자바 1.7버전부터 추가된 기능이라고 하네요. 조건에는 일반 스트링문자열이 오면되고 case의 경우엔 final이 붙은 스트링만 갈 수 있네요.. String input = "abc"; final String case1 = "bc"; switch(input){ case case1: break; default: break; } 이외에 자바 버전별 기능 추가사항입니다. 1. J2SE 1.4 •JAXP API(XML Processing) •보안관련 API 추가 •로깅 API •IPv6를 포함한 네트워킹 관련 API 추가 •NIO(Non-Blocking I/O) •정규표현식(java.util.regex) •Assertion 2. J2SE 5 •제네릭 프로그래밍 •어노테이션 (메타데이터) •foreach 루프 •..

공부/JAVA 2016.03.29

[JAVA] 변수와 메모리

>>전역변수클래스의 멤버변수클래스의 객체를 생성할 때 메모리에 생성HEAP 메모리에 생성변수의 초기화 지원(초기화 할 필요 없음)GC에 의해 메모리 소멸 >>지역변수메서드 수행시 메모리에 생성STACK메모리에 생성초기화가 안되므로 초기화 후 사용 가능메소드 종료시 메모리에서 소멸 ---------------------------------------------------------------------------->>메모리 영역의 종류 - 상수영역프로그램의 소스코드에 사용된 상수를 저장하는 메모리 공간. (new 키워드로 만들어진건 이 공간에 저장되지 않음.)문자열 변수의 경우 상수영역을 사용해 값을 참조 >>메모리 영역의 종류 - STATIC 영억static 메소드, 변수를 저장하는 메모리 영역프로그램..

공부/JAVA 2016.03.23