JAVA
-
상속의 개념JAVA/상속 2020. 10. 10. 22:33
상속(Inheritance)의 개념 - 상속의 경우 속성을 상속하는 경우 보다는 메소드를 상속하기위해 많이 사용되며, 부모 클래스의 기능을 확장하는데 부모클래스를 수정하지 않고, 부모에 구현된 로직을 사용하면서 안정적으로 클래스의 기능을 확장 할 수 있는 기법을 제공한다. - 상속을 계속적으로 하게 될 경우 가장 아래의 클래스는 부모로부터 많은 메소드를 상속 받음으로 매우 많은 기능을 사용할 수 있다. - 무분별한 상속은 모바일 프로그램의 경우 심각한 속도 저하를 가져올 수 있다. 또한 유지보수 시에 Application 분석을 어렵게 할 수 있다. - 상속은 한번에 하나의 클래스에서만 가능, C++의 경우는 2개이상의 클래스를 상속하는것이 가능하다. - 형식: class 자식 Class(Sub Clas..
-
Thread와 자원 공유 - 멤버필드, static필드JAVA/Thread 2020. 10. 8. 18:25
Thread와 자원 공유 - 멤버필드, static필드 - 같은자원(같은 객체의 멤버필드)을 여러개의 쓰레드가 공유할 수 있다. - 문제점발생 : 좌석예약, 계좌입출금 등등 - 문제점은 동기화 처리(synchronized)로 해결할 수 있다. 멤버 필드 예제 프로그램 실행결과의 일정부분 소스 파일 static 필드 예제 아래의 프로그램에서 MemberPrint클래스의 필드 i가 static이고 prviate임을 기억하자. 아래의 프로그램이 100번 도는 이유는 static 때문이다. 실행결과를 참고하자. 실행결과를 보면 필드 i가 static으로 선언이 되어있으면 MemberPrint의 객체들이 모두 i값을 같이 참조를 해야한다. 그런데 프로그램 실행결과를 보면 스레드 A,B,C모두 i가 0일 때를 실행..
-
ArrayListJAVA/Collection Framework 2020. 10. 8. 17:53
List - 순서가 있고 중복이 가능하다. List 종류 - ArrayList, LinkedList, Vector - Vector와 같은 목적을 가지고 있으며 기능이 비슷하다. - Vector와의 차이점은 네트워크를 통한 객체 공유시 동기화 처리가 되어 있지 않다. - 속도는 Vector보다 빠른 속도를 가지고 있다. 굳이 객체를 스레드를 이용해 공유할 경우가 아니면 ArrayList 사용을 권장한다. 아래의 함수는 출력하는 함수로, HashSet 에서의 출력과 같은 구조이다. 아래는 나머지 부분들이다. 프로그램 실행결과 소스 파일 형 변환을 이용해서 List인터페이스를 활용 예제 프로그램 실행결과 다른 예제 프로그램 실행결과 소스 파일 다른 예제 프로그램 분석 프로그램 실행결과 소스 파일
-
HashSetJAVA/Collection Framework 2020. 10. 8. 17:44
Collections Framework - 배열의 단점을 개선한 클래스로 객체만 저장할 수 있다. - 배열의 단점인 메모리 낭비를 피할수 있는 구조이다. - 동적인 크기 변경이 가능하다. - 자료를 효율적으로 정리하는것을 자료구조(Data structure)라 한다. - 자료구조 방법에는 Set계열, List계열, Map계열이 있다. - java는 java.util 패키지의 자바 컬렉션(JCF)에서 자료구조 방법을 제공한다. Set - 순서가 없고 중복안됨 Set의 종류 - HashSet, TreeSet Set은 순서가 없고, 데이터의 중복이 안되는 것이 특징이다. 프로그램 실행결과 소스 파일 다른 예제 프로그램 실행결과 소스 파일
-
Thread의 기초JAVA/Thread 2020. 10. 7. 18:30
Thread의 개념 - Process: thread의 집합으로 하나의 exe, com, dll 프로그램을 말한다. . 현재 실행되고 있는 프로그램이다. . Process간 자원(memory)을 공유할 수 없다. 따라서 Process를 많이 발생 시키면 자원이 바닥나게 된다. - Thread: . 독립된 작은 실행단위로 프로세스를 구성. . 반복적으로 동기화하여 실행되는 프로그램 루틴. . 메소드(함수)단위의 처리 모듈, process의 구성 요소. . Thread는 많이 발생해도 자원을 공유함으로 Process에 비해 시스템에 적은 부담. . 각각의 Thread는 자신의 일을 하고 있으며, 동시에 실행되지 않는다. . 스레드 스케줄러에 의해서 스레드의 여러상태중 실행상태로 변경할 수 있다. . 스레드의 ..
-
FileOutputStream,DataOutputStream,FileInputStream,DataInputStreamJAVA/IOStream 2020. 10. 7. 18:10
먼저, 데이터 쓰기부터 해보자. 아래의 예제를 보자. 네트워크 상에서 전송하기 유용한 방식이라고 한다. 프로그램을 실행하면 b.txt파일에는 이상한 문자들이 적혀있다. 이번에는 위의 b.txt파일의 내용을 읽어오는 예제를 보자. 프로그램 실행결과 소스 파일 데이터 주고받기 - DataInputStream과 DataOutputStream 이용 - writeXXX 메소드와 readXXX메소드 이용 WritingDatas.java WritingDatasMain.java 프로그램 실행결과 writed.txt 내용 소스 파일
-
FileWriter & FileReader를 이용한 출력과 파일 복사 하기JAVA/IOStream 2020. 10. 6. 18:17
아래는 파일을 생성하고 그 파일에 우리가 기록하고자하는 내용을 써보는 예제이다. 아래에서 server.txt파일이 생성 됨을 볼 수 있다. 아래는 파일의 내용이다. 우리가 작성한 내용과 같다. 아래의 예제는 파일에서 읽어와서 출력하는 간단한 예제이다. 우선, 파일의 이름을 알고 있어야 하고, 파일이 존재해야 한다. 아래는 파일의 이름을 가지고 그 파일의 내용을 한 글자씩 가지고 와서 출력한다. 프로그램 실행결과 이번에는 입력과 출력을 동시에 활용한 예제이다. 우리가 파일 명과 파일에 쓸 내용을 입력받는다고 하자. 입력받은 파일 명으로 파일을 만들고 이 파일에 입력받은 내용을 쓰도록 하자. 그리고 나서 다시 파일 명을 입력받아 파일에 있는 내용을 가지고 와서 출력해보자. 이 문제는 크게 파일명과 파일에 쓸..