전체 글 131

입출력 (InputStream/Reader), file 라이브러리

InputStream (System.in) Reader : 파일을 읽기위함 ObjectInputStream ObjectOutputStream 출력stream 모니터 PrintStream ps = System.out; PrintStream oos = s.getOutptStream( ); 소켓 OutputStream oos = s.getOutptStream( ); 직렬화 : ObjectOutputStream / ObjectInputStream 직렬화 할때 클래스와 역직렬화 할때 클래스의 내용이 다르면 안 된다. 반드시 같아야 한다. 파일의 크기를 알고 싶을때 File f = new File("a.txt")) f.length(); canWirte() canRead() file 라이브러리 import java...

개발 공부/JAVA 2023.06.08

JCF (Java Collection Framework) 자료구조형 라이브러리 활용

JCF (Jave Collection Framework) ULM표기법 Interface상위로 class가 올 수는 없다. Collection(interface) / Map(interface) list(interface)에서 상속받는 vector(class)와 arraylist(class) 관계 : 점선 상속 표기를 할때 화살촉을 닫아줘야함. collection framework : 크기 조절 가능 collection : 값(value)만 저장 add() : 추가 size() : 저장된 자료의 갯수만 반환 remove(): 자료 삭제 List : 배열처럼 인덱스가 제공됨. 중복 데이터 저장 가능. 순차적으로 저장 가능 - list.get(0); - list.remove(0); . get () ArrayLi..

개발 공부/JAVA 2023.06.01

java 예외

오류 -컴파일 오류 -실행 오류 (에러/ 예외) 에러: 개발자가 처리할 수 없는 오류 예외: 개발자가 처리할 수 있는 오류 (경미한 오류), 처리 안하면 프로그램이 종료됨 예외종류 1) Runtime Exception : 컴파일러가 예외 처리를 감지하지 못하는 예외(UncheckedException) NumberFormatException, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException.... 2) 그외의 Exception : 컴파일러가 예외 처리를 감지하는 예외 예외처리법 1. try - catch 메서드 내에서 예외 처리를 할때 try{ //예외발생 가능한 코드 위에 사 }catch( ) { } 2.throws 호출..

개발 공부/JAVA 2023.05.31

java 추상 클래스 / 인터페이스/ 중첩클래스

추상클래스 : abstract class 클래스명 메소드 또는 멤버 중에 하나라도 abstract라면 멤버를 담고 있는 클래스는 자동으로 추상 클래스가 된다. (추상 클래스라고 해서 추상 메서드가 반드시 포함되어야 하는 것은 아니다) new로 객체 생성불가 추상메소드 abstract ( ) : 하위 클래스에서 반드시 재정의(오버라이딩) 해야한다 (=>상속을 강제하고 있음을 의미) 추상메서드를 포함하고 있는 클래스는 반드시 추상 클래스가 되어야 한다. final 메소드 : 하위 클래스에서 재정의 불가 public abstract class Test{ abstract void m( ) ; final void m1( ) { } } class TestChild1 extends Test{ } ERROR

개발 공부/JAVA 2023.05.31

상속 (형변환/다형성/overriding)

객체 모델링을 먼저 해야한다. 개발 중에 새로운 모델링이 요구되면 기존 상속?이 바껴야한다. 같은 클래스의 이름이어도 다른 패키지에 저장되면 다른 클래스로 인식함. 상속 (부모-자식) 공통점이 있으면 부모클래스로 도출함. 부모의 변수와 메소드를 자식이 갖고 있는것처럼 사용할 수 있다. 상위클래스의 멤버변수와 메서드는 하위클래스에 상속됨. 자식이 구현해야할 코드가 줄어든다. 부모클래스를 여러개 둘 수 없다. (단일 상속) IS A (KIND OF)관계에서만 성립 가능. this: 현재 사용하는 객체 super: 현재 사용하는 객체의 부모 영역. this처럼 메서드 내에서 사용가능. 변수 선언위치 메모리영역 초기화시점 지역변수 메소드내부 stack 자동초기화 안됨 매개변수 메소드내부 stack 자동초기화 안..

개발 공부/JAVA 2023.05.30

String 구문- charAt(),IndexOf(),subString(),Split()

절차지향언어: C 기능에 focus(회전시킨다). 빠르다. 제공자쪽 소스코드가 바껴야 하면 사용자쪽 소스코드도 같이 바껴야함. (결합도가 높은 코드) 원을 회전시킨다 사격형을 회전시킨다 객체지향언어 객체에 focus (원,사각형) 속도가 느리다 원을 회전시킨다 사격형을 회전시킨다 메모리 stack : 지역변수, 메소드를 호출할때마다 생성되는 프레임이 저장됨. 메소드 호출이 끝나면 프레임은 자동 제거 됨. heap : 객체가 생성되는 영역 , 멤버 변수 (객체 생성시 자동 초기화 됨) 객체의 특징이 되어야할 변수는 멤버변수로 선언되어야 한다. (지역변수는 특정 블록 내에서만 사용될 수밖에 없기 때문) == (같다), !=(다르다) 연산 변수의 값이 같은지, 아닌지를 조사. 참조 타입 변수의 ==, != 연..

개발 공부/JAVA 2023.05.25

static / 접근제어자/ getter setter/ final (KOSTA EDU)

클래스 실행순서 1. ConstructorTest.class파일찾기 2. JVM에 로드 3. 바이트코드 검증 4. ConstructorTest.class파일을 재해석(byte->binary) 5. 재해석된 클래스내용은 Method영역에 기억 6. static변수 자동초기화 7. main메서드 호출 static (정적)변수 ( =class변수) 모든 것을 객체로 표현 할 수는 없다. 메서드 영역에 탑재됨. 객체들과는 무관한 변수이다. 프로그램 시작부터 끝날때까지 자리를 차지하고 있어서 메모리 효율성이 떨어진다. (활용도가 높지 않은 경우 처리할 수 있다면 지양 할 것) main메소드가 호출되기 전에 메소드영역에서 자동 초기화 됨. (heap역역이 아님) 사용위치 : 멤버변수나 메소드 앞에 사용가능 사용법:..

개발 공부/JAVA 2023.05.23

객체지향 (오버로드/ 생성자 )

메소드 오버로드 같은 클래스 내에서 메소드 이름은 같으면서, 매개 변수의 형태/ 갯수/ 순서가 다른 경우를 말한다. 사용자 입장에서 사용하기 쉽도록 하기 위한 것이다. (메소드 이름을 여러개 기억할 필요가 없기 때문에) class A{ void m(){ } void m(int i(){ } } class B{ void m(char c){ } } - r1.make의 인자 값은 int형인데 make 메소드에 같은 타입이 없는경우 자동 형변환이 된다. - return 타입은 무관하다. 생성자 : 객체 생성시 자동호출되는 특수 메소드. 생성자명은 클래스명과 같고 리턴값이 없다. 위와 같은 경우 R2생성자가 이미 만들어져 있기 때문에 제공되지 않으나 소스 코드에 생성자가 하나도 없는 경우, 기본(디폴트) 생성자가 ..

카테고리 없음 2023.05.22

반복문 - for문/ while문

반복문 for문, while문, do-while문 for문 중첩for문 바깥for문을 한번 실행할 때마다 중첩된 for문은 지정 횟수만큼 반복하고 다시 바깥for문으로 돌아감. while for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true일 경우에 계속 반복하고 false가 되면 반복을 멈추고 while문을 종료함. break 반복문을 중지하거나, 조건문인 switch문을 종료할 때 사용. continue for문, while, do-while문에서만 사용됨. 반복문을 종료하지 않고 계속 반복을 수행한다는 점이 break와 다름. 특정 조건을 만족하는 경우 continue문을 실행해서 그 이후의 문장을 실행하지 않고 다음 반복으로 넘어감 반복문이 처리되는 순서 //WELCOME 5번 ..

개발 공부/JAVA 2023.05.17

조건문 - if문 / swith문

제어문 조건식과 중괄호{ }블록으로 구성. 조건식의 연산 결과에 따라 내부의 실행 여부 결정. 제어문 블록 내부에는 또 다른 제어문을 사용할 수 있음. 조건문 if문, switch문 if문 1)조건식 - 연산식 (true, false값을 산출할 수 있는) / boolean변수 조건식의 결과에 따라 { }블록 실행 여부가 결정됨. true이면 { }블록을 실행하고,false이면 실행하지 않음 중괄호 { }블록 내에 실행문이 하나밖에 없다면 중괄호 생략 가능 (가독성이 좋지 않고, 버그 발생의 원인이 될 수 있으니 추천x) 2) else블록과 함께 사용되어 조건식의 결과에 따라 실행 블록을 선택할 수 있음 * switch 1) 괄호 안의 변수값에 따라 해당 case로 가서 실행문을 실행시킴. 2) case ..

개발 공부/JAVA 2023.05.17