11월 27일 - java day06
웹 서버 : 클라이언트가 요청한 파일을 다운로드할 수 있게 해주는 서비스를 제공하는 프로그램
웹 브라우저 : 서버가 제공하는 파일을 다운로드 바아서 화면에 보여주는 프로그램
split(regex:"")[]
replace
toString => 글자로 바꿔달라
getter -> 생성자 만들고나서
setter -> 생성자 만들고나서
< 다형성 >
생성하는 객체의 클래스이름과 객체를 저장하는 변수의 타입을 다르게 설정
Chammpion tristana = new tristana();
업캐스팅 : 자식객체를 부모클래스(타입)의 변수에 저장가능
다운캐스팅 : 부모객체를 자식타입의 변수에 저장 불가능
단, 다운캐스팅 할 때 형변환을 직접 해주면 가능
// 기존방식
ArrayList arrayLList = new ArrayList();
// 다형성
List list = new ArrayList();
// 제네릭
List<클래스이름> list = new ArrayList<클래스이름>();
Map<클래스이름1,클래스이름2> map = new HashMap<클래스이름1,클래스이름2>();
< 제네릭 > => < >에 타입넣는것, 클래스옆에다가 < T >달아놔야 함
// 아름다운 약속, 정해진 문법은 아님(T,K,E)
// T : 타입
// K : 키
// E : 개체
: 우리가 제네릭클래스 만들어놓을테니까 너네가 쓸때 알아서 (string인지, int인지~)타입넣어서 써라~
Parents parentsString = new Parents("제네릭");
Parents<Character> parentsChar = new Parents<Character>('c');
Parents<Integer> parentsInt = new Parents<Integer>(100);
// 제네릭을 안쓴 리스트
List integerList1 = new ArrayList();
integerList1.add("글자");
integerList1.add(100);
List<Integer> integerList2 = new ArrayList<Integer>();
// 제네릭으로 타입을 Integer로 설정해서 글자는 저장 못함
//integerList2.add("글자");
integerList2.add(100);
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(0, "값1");
day 06 StreamMain.java
< 스트림 > : 내프로그램과 어딘가와의 통로(데이터를 운반(입출력)하는 연결통로)
내컴퓨터 -> 프로그램을 실행하려면 하드디스크에있는 파일이 RAM과 연결?되어야하는데 그때 통로가 스트림!
CPU
RAM 프로세스
HDD 파일
랜카드
I/O
ex) 해당 파일은 다른프로그램이 사용중이어서 삭제할 수 없습니다 -> 어딘가에서 스트림이 열려있다~
// 글자단위로 읽어라~
-> FileReader
// 변수는 try문 밖에서 만들어주고 사용할때는 try문 안에서사용!
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
FileInputStream fileInputStream = new FileInputStream();
FileOutputStream fileOutputStream = new FileOutputStream();
// 1바이트 = 1비트 : 00000000~11111111

< Socket >
ServerSocket serverSocket = new ServerSocket(서버ip주소, 서버 포트번호);
소켓통신할때 예외처리해주기!(try/catch 나 throw로)
디버깅 = 하나하나 실행해보면서 어떤게 (버그인지)잘못되었는지 찾음
브레이크 걸어놓고 디버깅하면 다음 브레이크 전까지 실행되고 어디가 버그인지 찾아준다.
브레이크 걸어놓고 벌레모양 눌러야 디버깅됨
보조스트림 -> 보조스트림이 있으면 성능이 더 좋아진다~ 더빨라진다~
BufferedInputStream
BufferedReader
서버 : 서비스를 제공하는 프로그램
클라이언트 : 서버가 제공하는 서비스를 이용하는 프로그램
웹 서버 : 클라이언트가 요청한 파일을 다운로드할 수 있게 해주는 서비스를 제공하는 프로그램
웹 브라우저 : 서버가 제공하는 파일을 다운로드 바아서 화면에 보여주는 프로그램
basic2/day06/ex/ChatServerMain.java & basic3/day06/ex/ChatClientMain.java 참조!
Scanner로 콘솔을 통해서 입력한 내용을
서버 -> 클라이언트
클라이언트 -> 서버
하나는 서버
하나는 클라이언트
-> 문자열 String을 이용한 문자를 주고받는것
basic2/day06/ex/FileServerMain.java & basic3/day06/ex/FileClientMain.java 참조!
Scanner로 콘솔을 통해서 입력한 내용을
클라이언트 -> 서버 파일이름 입력
서버 -> 클라이언트 파일 보내준다
하나는 서버
하나는 클라이언트
클라이언트 저장
-> 파일은 문자열 Stream이 아니라 byte로 처리해야함