자바 EE 연구 일곱째 주 반사 기본 I / O 프레임 워크, 네트워크 프로그램의 내용 (도 마음을 포함) 결론

주 세븐

Day31, Day32

I / O 프레임 워크

  • 흐름의 개념

    • 메모리 및 저장 장치의 채널 간 데이터 전송
  • 분류 스트림

    • [포커스]의 방향

      • 입력 스트림

        • 상기 저장 장치의 내용을 메모리에 읽어
      • 출력 스트림

        • 콘텐츠 <메모리> <저장 장치>에 기록된다
    • 단위 당

      • 바이트 스트림

        • 바이트, 당신은 읽고 모든 데이터를 기록 할 수 있습니다
      • 문자 스트림

        • 문자 만 읽기 및 쓰기 텍스트 데이터 수
    • 프레스

      • 노드 스트림

        • 읽어야 실제 데이터 전송을 작성하는 기능을 갖는
      • 흐름 여과

        • 베이스 노드가 상기 흐름에 향상된
  • 바이트 스트림

    • 바이트 스트림 부모 클래스 (추상 클래스)

      • 바이트의 InputStream 입력 스트림

        • 공공 INT 읽기 () {}
        • 공개 INT 읽기 (바이트 [] b) {}
        • 공개 INT 판독} {(바이트 [] B, INT LEN 오프 INT)
      • OutputStream에 : 바이트 출력 스트림

        • 공공 무효 쓰기 (INT N) {}
        • 공공 무효 쓰기 (바이트 [] b) {}
        • 공공 무효 기록} {(바이트 [] B, INT LEN 오프 INT)
    • 바이트 스트림 노드

      • FileOutputStream에 :

        • 공공 무효 쓰기 (바이트 [] b); // 시간 복수 바이트를 작성하기 위해, 어레이의 모든 바이트 출력 스트림
      • FileInputStream에 :

        • 파일의 끝에 도달 -1; 공공 INT 판독) (바이트 [] b) 바이트 // 수가 배열 b의 내용을 읽고, 스트림으로부터 판독 실제로 읽은 바이트 수를 반환
    • 바이트 스트림 여과

      • 버퍼 흐름 :의 BufferedOutputStream / BufferedInputStream을

        • IO는 효율성을 향상 디스크 액세스의 수를 줄일 수
        • 버퍼에 저장된 데이터는 파일에 기록됩니다 버퍼의 내용을 플러시, 또는 직접 닫을 수 있습니다
      • 객체 스트림 : ObjectOutputStream에 / ObjectInputStream를

        • 첨단 완충액 함수

        • 강화 된 쓰기 여덟 기본 데이터 형과 기능 문자열

        • 읽을 수있는 기능 및 쓰기 객체를 강화

          • readObject에 ()는 스트림으로부터 객체를 읽
          • 객체의의 writeObject (Object obj)이 스트림에 기록됩니다
        • 객체 직렬화를 스트리밍 프로세스라는 사용하여 직렬화

    • 객체 직렬화

      • 직렬화 세부 사항

        • 우리는 Serializable를 구현해야합니다
        • 우리는 모든 속성 직렬화 할 수 있는지 확인해야합니다
        • 수정 일시 속성을 transicent, 직렬화에 참여하지 않습니다
        • 파일의 마지막에 기호를 읽 java.io.EOFException를
  • (문자 인코딩) 인코딩

    • ISO-8859-1은 더 서유럽, 그리스어, 태국어, 아랍어, 히브리어 해당 단어 기호를 포함하여 ASCII에 추가로 포함
    • 유니 UTF-8 문자, 가변 길이 부호화의 길이
    • 중국어 간체 GB2312
    • GBK 중국어 (간체), 중국어 보충
    • BIG5 대만, 중국어 (번체)
    • 참고 : 일관성 코딩 할 때, 왜곡
  • 문자 스트림

    • 상위 클래스 문자 스트림 (추상 클래스) :

      • 리더 : 문자 입력 스트림

        • 공공 INT 읽기 () {}
        • 공개 INT 읽기 (CHAR [C) {}
        • 공개 INT 판독} {(CHAR [] B, INT LEN 오프 INT)
      • 쓰기 : 문자 출력 스트림

        • 공공 무효 쓰기 (INT N) {}
        • 공공 무효 쓰기 (문자열 STR []) {}
        • 공공 무효 기록 (문자 [C) {}
      • 노드 흐름 문자

        • FileWriter

          • 공공 무효 쓰기 (문자열 STR) // 추기 여러 문자, 배열 B의 모든 문자 출력 스트림
        • 을 FileReader

          • 파일의 끝에 도달 한 경우, 또는 공용 INT 읽기 (CHAR [C) // 배열 C에 내용을 읽고, 스트림으로부터 복수의 문자를 읽을 수는, 문자의 개수는 실제로 판독 리턴 -1
    • 캐릭터 필터링 흐름

      • 버퍼 흐름 : BufferedWrite, BufferedReader로

        • 지원 입력 줄 바꿈
        • 하나는 라인을 읽어 줄을 쓸 수 있습니다
      • 의 PrintWriter

        • 를 캡슐화 인쇄는 ()에 println () 메소드는 지원 랩을 기록
    • 노드 흐름 문자

      • 다리 감형 : InputStreamReader /의 OutputStreamWriter

        • 바이트 문자 스트림으로 변환 할 수 있습니다
        • 당신은 문자 인코딩을 설정할 수 있습니다
      • 사용 단계

        • 노드 스트림을 생성
        • , 필터의 흐름을 생성하는 문자 세트 인코딩 설정
        • 패키지 흐름 여과
        • 읽기 및 쓰기 데이터
        • 닫기 흐름
  • 파일 형식

    • 개념 : 파일이나 폴더의 실제 드라이브 문자를 나타냅니다

    • 방법

      • 때 createNewFile () 새로운 파일을 생성 //
      • MKDIR () 새로운 디렉토리를 생성 //
      • // 삭제 파일이나 새로운 디렉토리를 삭제
      • () 파일 객체를 결정 // 존재하면 오브젝트가 나타내는
      • 절대 경로 getAbsolutePath () 파일을 얻을 //
      • getName () // 얻을 이름
      • 의 getParent는 () // / 디렉토리가있는 디렉토리의 파일을 가져옵니다
      • isDirectory는 () // 디렉토리입니다
      • 파일 인 경우 ISFILE () //
      • 길이는 () // 파일의 길이를 얻을
      • LISTFILES () //리스트 디렉토리의 모든 내용
      • renameTo은 ()라는 이름의 파일을 수정 //

Day33-34

네트워크 프로그래밍

  • 네트워크는 무엇입니까

    • 그리고 점선으로 구성, 많은 객체 사이의 연계를 나타냅니다
  • 컴퓨터 네트워크

    • 자원 공유 및 정보 전송을 달성하기 위해. 통신 회선으로 연결된 여러 호스트 (호스트)
    • 인터넷 : 점들을 연결
    • WWW는 : 끝 끝 연결
    • 것들 : 조성물은 그와 접속되고
    • 인터넷 프로그래밍 : 컴퓨터와 컴퓨터, 통신 사이의 연결을
  • 네트워크 모델

    • 첫째 층 : 송신 신호 및 물리적 매체 PHY 장치 사이에서 데이터 통신을 제공한다. (연선, 광섬유)
    • 두번째 계층 : 물리 계층 링크 층 프로토콜 또는 프로토콜 (에러 제어)에 의해 전송 된 데이터의 정확성을 제어한다. (MAC)
    • 세 번째 계층 : 네트워크 계층은 모든 논리 주소를 식별 할 수있는 네트워크 노드를 정의 할 책임이있다 (IP 주소)
    • 제 4 층 : 선택한 프로토콜이 데이터를 재조합하는 경우 전송 계층은 오류 복구에 대한 책임, 잘못된 순서로 재 배열. (TCP, UDP)
    • 다섯 번째 계층 : 세션 층은 응용 프로그램 세션을 수립하고 유지 보수에 대한 책임, 통신 실패시 통신을 복원 상속합니다. (HTTP)
    • 여섯째 층 : 프리젠 테이션 층, ASCII 또는 바이너리 포맷으로 전송 있도록 선택 정의되는 데이터 포맷으로 변환하기 위해서, 암호화이고
    • 일곱 번째 층 : 응용 프로그램 계층은 파일 액세스 및 관리, 안정적인 운송 서비스, 원격 작업 서비스를 담당합니다. (HTPP, FTP, SMTP)
  • 통신 프로토콜

    • TCP / IP 모델

      • 상호 연결된 네트워크의 집합을 구현하는 데 사용되는 통신 프로토콜, 프로토콜은 네 단계로 나누어 져 있습니다

      • 네 계층

        • 응용 프로그램 계층

          • OSI 참조 모델의 응용 계층, 표현 계층, 세션 계층

            • 제 4 층은 : 응용 계층은 다양한 최종 형태의 데이터를 전송하는 책임이 사용자와 직접 거래 층 인 전형적인 프로토콜은 HTTP, FTP 등이며
        • 전송 계층

          • OSI 참조 모델의 트랜스 포트 층에 대응

            • 세 번째 계층 : 전송 계층은 텍스트 데이터 전송을 담당하는 주요 프로토콜은 TCP, UDP 프로토콜입니다
        • 네트워크 계층

          • OSI 참조 모델의 네트워크 계층에 해당

            • 두번째 층 : 네트워크 계층은 이진 데이터 및 어드레스 할당의 전송에 대한 책임은 IP 프로토콜은 기본 프로토콜
        • 네트워크 인터페이스 계층

          • 은 OSI 참조 모델의 데이터 링크 계층과 물리 계층에 해당

            • 첫 번째 계층 : 인터페이스 층 회로 연결을 설정하는 책임이있다. 전체 네트워크의 물리적 기초가되어, 일반적인 프로토콜은 이더넷, ADSL 등을 포함한다
      • TCP 프로토콜 : 전송 제어 프로토콜

        • 바이트 스트림에 기초해서 연결 지향 신뢰성있는 전송 계층 프로토콜이다. 무제한 데이터 크기. 이 프로세스는 연결을 설정하는 세 방향 핸드 셰이크가 필요 해제 절차는 네 방향 핸드 셰이크를 필요로
      • UDP는 프로토콜 : 사용자 데이터 그램 프로토콜을

        • 비 연결 전송 계층 프로토콜은 단순한 거래 신뢰할 수없는 정보 전송 서비스, 각 패킷 64킬로바이트의 크기 제공,인가
    • IP

      • IP 프로토콜 : 인터넷 프로토콜 주소 인터넷 프로토콜 주소 / 인터넷 프로토콜 주소

        • 인터넷 장치에 할당 된 디지털 라벨 (고유 식별)
      • IP 주소는 2 개로 나누어 져있어

        • IPV4 : 4 바이트의 32 비트의 정수이고, 4 내지 8 비트 이진 세그먼트, 도트 (8)로 구분으로 나누어, 각각의 8 비트 정수 포맷 0 ^ 255 진수 정수로 변환 될 수있다 : 예를 들어 255.255 DDDD. 255.255
        • IPV6는 16 : 128 바이트 정수, 8 부 16 진수로 나누어, 각각의 도트 (16)에 의해 분리된다. XXX .XXXXX FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF 예컨대 각 16 비트 정수 포맷은 십진수 0 ^ 65535로 변환 될 수있다
      • 분류 IPV4의 응용 프로그램

        • 클래스 A : 정부 기관, 1.0.0.1 ^ 126.255.255.254
        • 클래스 B : 중간, 128.0.0.1 ^ 191.255.255.254
        • 클래스 C : 개별 사용자, 192.0.0.1 ^ 223.255.255.254
        • 클래스 D : 멀티 캐스트, 224.0.0.1 ^ 239.255.255.254
        • 클래스 E : 실험에 대한, 244.0.0.1 ^ 255.255.255.254
        • 루프백 주소 : 127.0.0.1이 기계를 의미, 일반적으로 테스트에 사용됩니다
        • 보기 IP 명령 : 같이 IPconfig
        • IP 테스트 명령 : 핑 DDDD
    • 포트

      • 고유 통신 프로그램 개체를 통해 통신 네트워크를 식별 : 포트 번호

      • 포트 분류

        • 인식 포트 : 0 ^ 1023
        • 등록 포트 : 1024 ^ 49151
        • 동적 또는 개인 포트 : 49152 ^ 65535
      • 일반적인 포트

        • MySQL은 : 3306
        • 오라클 : 1521
        • 톰캣 : 8080
        • SMTP : 25
        • 웹 서버 : 80
        • FTP 서버 : 21
    • 의 InetAddress 클래스

      • 개념 : 오브젝트의 인터넷 프로토콜 (IP) 주소가 모든 IP 관련 정보를 캡슐화 나타내고, 정보를 취득하는 일반적인 방법을 제공한다

      • 방법 :

        • 공용 static InetAddress getLocalHost () 로컬 호스트 주소 오브젝트를 취득
        • 정적 공용의 InetAddress getByName (String host) 지정된 호스트 이름에 기초하여 상기 물체의 주소를 가져
        • 모든 관련 개체에 대한 공공 정적의 InetAddress [] getALLName (문자열 호스트) 주소 접속
        • 공공 문자열 getHostAddress () IP 주소 문자열을 얻기 위해
        • 공공 문자열 getHostName의 ()는 호스트 이름의 IP 주소를 얻기 위해
  • 네트워크 프로그래밍

    • TCP 기반 네트워크 프로그래밍

      • 소켓 프로그래밍 :

        • 소켓 (소켓)은 네트워크에서의 통신 노드
        • 클라이언트와 서버 소켓 ServerSocket의로 나누어
        • 통신 요구 사항 : IP 주소 + 포트 번호
    • 개발 단계

      • 통신 접속 (세션)을 수립

        • , ServerSocket를 만들기 포트 번호를 지정
        • 통화는 클라이언트 액세스를 기다리는 동의
      • 클라이언트가 서버에 요청

        • 소켓을 생성, 서버 IP + 포트 번호를 지정
        • 서버에 상기 전송 요청 된 데이터를 출력 스트림을 사용하여
        • 입력 스트림을 사용하여, 클라이언트에 수신 된 응답 데이터 (대기)
      • 클라이언트에 서버 응답

        • 입력 스트림을 사용하여 서버에 수신 된 요청 데이터 (대기)
        • 출력 스트림을 사용하여, 클라이언트에 응답하여 데이터를 송신
    • 교실 케이스

      • S coket 사용 서버 측 프로그램 레지스터

        • 등록 정보는 파일 properies에 저장됩니다
        • 캡슐화
        • 아이디 = {ID : "1001", 이름 :}
        • 성공적으로 등록 반환 한 문자열은 "성공적으로 등록"
      • Scoket 로그인 프로그램을 사용하여 서버 측

        • 사용자 정보 속성 파일을 얻는 것은, 사용자 이름과 암호를 확인
        • 성공적인 검증 문자열을 반환 한 후 "로그인 성공"

개요

  • 통신 회선을 통해 접속 일부 호스트 자원 공유 및 정보 전송 : 컴퓨터 네트워크
  • 프로토콜 : TCP는 바이트 스트림을 기반으로 연결 지향, 신뢰할 수있는 전송 계층 프로토콜입니다. 무제한 데이터 크기
  • IP : 인터넷 장치에 할당 된 숫자 라벨 (고유 식별)
  • 고유 통신 프로그램 개체를 통해 통신 네트워크를 식별하는 포트를
  • Scoket 프로그래밍 : 연결 수립 요청을 수신하고 응답을 전송

Day35

반사

  • 클래스 객체는 무엇인가

    • 객체 클래스 : 객체의 객체의 새로운 클래스 밖으로 알려진 예를 기반으로
    • 개체 클래스 : 클래스 로딩 제품은 모든 정보 (클래스 이름, 부모 클래스, 인터페이스, 속성, 메서드, 생성자) 클래스를 캡슐화
  • 클래스 객체를 가져옵니다

    • 객체 클래스. 클래스 객체를 가져옵니다

      • 학생의 = 새 학생 (); 클래스 C = s.getClass ()
    • 클래스 이름으로 클래스 객체를 가져옵니다

      • =의 .class 클래스 명 C 클래스;
    • 정적 방법으로 클래스 오브젝트를 취득

      • 클래스 C = Class.forName을 ( "클래스 이름 패키지 이름입니다.");
  • 일반적인 작업

    • 일반적인 방법

      • 공공 문자열로, getName ()
      • 공공 패키지 getPackage ()
      • 공공 클래스 <? 슈퍼 T> getSuperclass 메소드 ()
      • Public 클래스 <?> []의 getInterfaces ()
      • Public 필드 [] getFields ()
      • 공개 방법 [] getMethods는 ()
      • public 생성자 <?> [] getConstructors ()
      • 공공 T 위해서, newInstance ()
  • 디자인 패턴 소개

    • 공장 디자인 패턴

      • 개발은 매우 중요한 원칙이있다 "개폐의 원리를." 개방형 확장하려면 수정을 위해 폐쇄
      • 공장 패턴은 객체 생성의 문제를 주로 담당한다
      • 그것은 디자인을 반영하여 공장 모드를 될 수있는 동적 오브젝트 작성을 완료합니다
  • 싱글 톤 디자인 패턴

    • 싱글

      • 싱글은 : 오직 객체의 클래스의 생성을 허용

      • 옵션 1 : (클래스가로드 될 때 생성 본질적으로 스레드 안전) 굶주린 식

        클래스 Singletion {

        개인 정적 최종 싱글 인스턴스가 새로운 싱글 톤 () =;
        개인 Singletonb () {}
        공공 정적 싱글의 getInstance () {}
        리턴 인스턴스;

        }

      • 모드 2 "게으른 (thread에 대해서 안전한 사용하는 경우 생성, 플러스 동기화) 매뉴얼

        클래스 싱글 {
        개인 정적 싱글 intance = NULL;

        개인 Sington () {}
        싱글의 getInstance (동기화 공용 static) {
        경우 (예 == NULL) {
        예 새로운 싱글 = ();

        }
        인스턴스를 반환;

        }
        }

      • 모드 3 : (생성 사용, 스레드 안전) 게으른 사람

        클래스 싱글 {
        개인 싱글 () {}

        개인 정적 클래스 Holer {
        정적 싱글 S = 새로운 싱글 ();
        }
        공공 정적 싱글 인스턴스 () {

        retuen Holder.s;
        }

        }

  • 개요

    • Class 객체

      • 같은 클래스 개체로 프로그램 실행 가능한 정보, Class 객체는 클래스의 모든 정보를 캡슐화
    • 클래스 객체를 얻을 세 가지 방법

      • 클래스 C = 객체입니다. getClass ()
      • =의 .class 클래스 명 C 클래스;
      • 클래스 C = Class.forName을 ( "클래스 이름 패키지 이름입니다.");
    • 공장 패턴

      • 주로 객체를 생성하는 데 사용, 동적 객체 생성을 완료, 공장 디자인 패턴에 의해 반사되어
    • 싱글

      • 싱글은 단지 객체의 클래스의 생성이 허용하는
        프로그래머가 코딩 사랑 : 마이크로 채널 대중 번호
        그림 삽입 설명 여기

추천

출처blog.csdn.net/weixin_43501566/article/details/105026149