GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

Back to the Java 36

[ Stream] 기본 문법

- 기본적으로 Lambda 식과 함께 이용됩니다. - JavaScript 에서는 '화살표 함수' 로 함수를 전달 할 수 있는 기능과 유사합니다. https://backcoder.tistory.com/48 Lambda 식 ( ) -> { }; 사용조건 1. 인터페이스 일때만 가능하고 2. 인터페이스에 메소드가 하나만 있을때 가능하다. 람다식은 포켓몬 진화 완전체 같은거다. ( 기본 인터페이스 사용 ) - 이상해씨 interface A{ v backcoder.tistory.com [ 점점 더 간단하게 ] 직접 '클래스' 를 만들고 interface 를 상속해서 사용 => 내부 클래스로 사용 => 익명객체로 사용 => Lambda 식 [ Stream ] 자료구조들에서 특정 조건에 해당하..

Back to the Java 2023.01.13

.equals( ) 메소드 override => 객체 비교하기

[ 객체 끼리 비교 ] Product p1 = new Product("laptop", "lenovo"); Product p2 = new Product("laptop", "lenovo"); 두 개의 객체가 같은 값을 가지고 있더라도, 주소값이 다르므로 자바는 두 객체를 서로 다른 객체로 인식합니다. 1. equals == 는 주소 값 다르게 잡혀있어서 당연히 다르게 나오고 equals 로도 기본은 false 잡히는데 이건 override 해서 주소값은 무시하고 값만으로 비교할 수 있게 해서 사용하기도 합니다. 예시 ) @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.g..

Back to the Java 2023.01.11

객체지향 활용하기

[ Object Oriented Programming 활용하기 ] [ 은닉화 ] 특히나 Entity 필드 값에 private 접근제어자를 걸어서 숨겨두고, 직접 조작할 수 없게 할 수 있다. => public 메소드로만 접근하도록 설계 => private 변수들은 은닉화됨 ( final 과 같이 사용 ) [ 캡슐화 ] 논리적 순서에 따라 실행되는 단계별 메소드들을 묶어서 '캡슐화' 해서 사용할 수 있다. 메소드 안에 메소드 넣어서 연계해서 사용 => 순서를 정해두고 사용할 수 있다. [ 상속 ] 자식 생성자는 super() 을 기본값으로 해서 부모 생성자를 먼저 실행시킴 부모생성자 실행 => 자식생성자 실행 @Override public void dance() { super.dance(); wink();..

Back to the Java 2023.01.10

TCP / UDP 프로토콜 방식 / Socket / Packet /

서버 클라이언트 TCP => ServerSocket / Socket UDP => DatagramSocket / DatagramPacket ( 기본 사용 ) - 양방향 스트림 전송 서비스 - 전화 (연결-통신-해제) => 순차적인 순서에 의해서 내용이 전달됨 => 동기화 / 전화하듯, 연결되어 있는 동안 다른데서 사용 불가능 => 다수의 클라이언트에게 다수의 요청이 들어오면 TCP 만 사용할 시 순차진행이 되므로 후에 들어온 요청들은 주구장창 대기해야한다. => 웹서비스에서 TCP는 사실상 거의 멀티쓰레드로 구현해서 사용한다. => 다수의 쓰레드사용 ㅡ 요청 동시처리 가능 (스레드풀/MAX스레드/WAS/Sevlet) - TCP : 신뢰성 안정성 필요할 때 사용 - 서버,클라이언트간의 신..

Back to the Java 2022.07.11

Net 클래스 / 네트워크/ IP/Port / InetAddress 클래스 /

네트워크 - 여러대의 통신기기들을 연결한 구조 홈네트워크 -> 지역네트워크 -> 인터넷 - 네트워크로 연결되어있어야 한다. 클라이언트 - 고객. 요청자 서버 - 고객의 요청을 받아 응답 protocol - 서버와 클라이언트 간의 통신 규칙 - 약속 언어 IP - 네트워크상 컴퓨터 식별 번호 - ip4 방식 (0~255) 256.256.256.256 ( 256^4 부족해 ) => ip6 방식으로 개선중 - cmd => "ipconfig" => ip4/ip6 주소 확인가능 - 하나의 IP 서버 에서 여러개 서비스를 구현할 수 있다. IP : 162.84.24.144 => 1.웹서버 / 2.DB서버 이 IP 로 접근하면 어떤 서비스 요청인지 구분 필요 => Port 번호 사용 IP : 162.84.24.144..

Back to the Java 2022.07.11

File 클래스 => 파일/디렉토리 정보제공

입출력 X - File - 파일이나 디렉토리 취급 기능 자바에서 구현 - win탐색기, mac파일관리자 등 파일 (java.io) - .File~ 입출력 X - File - 파일이나 디렉토리 정보 제공 용도 - os 파일시스템 (파일과 디렉토리) 관리 기능 제공 - 이 클래스 자체에는 입출력 기능 메소드 없다. 별개다. - 입출력은 Input Output Reader Writer 로 생성자 File f = new File("a.txt"); ( 디폴트 값 ) => 현재 java프로젝트 Root 디렉토리 a.txt 파일 존재 간주 File f = new File("c:/test/a.txt"); ( 주소 직접주기 ) => 해당 주소에 파일로 간주 (참고 - 파일분리자 => 모든 OS 가능 / 슬래쉬하나 win..

Back to the Java 2022.07.08

파일 입출력 클래스 / FileInput/OutputStream / FileReader/FileWriter

FileInputSteram 1BYTE 단위 FileOutputStream FileReader 2BYTE 단위 FileWriter - 입력은 입력끼리 똑같고 출력은 출력끼리 똑같다. - 메소드명도 똑같다. 입력은 read 출력은 write - 1BYTE(키보드 하나) / 2BYTE(문자=>한글가능) 차이 - 입력은 파일 없으면 만들어서 입력(자동) - 출력은 파일 없으면 만들어서 출력 - 주의! 출력 기존파일이 있으면 생성자 두번째 파라미터에 기본 default 가 false 로잡혀있어서 있던거 지우고 덮어써버린다. => true 로 바꾸면 원래 파일에 새로운내용을 추가만 한다. 안전하게 true로 바꿔서 사용하자. - IOException / FileNotFoundException 잡아야한다. (IO ..

Back to the Java 2022.07.08

IO 입출력 클래스 / In/outputStream / reader/writer / + Scanner

- java.io. [ Input 입력의 방법 ] - args[명령형매개변수] 이용하는 방법 실행하기전에 다 넣어놔야함. (프로그램 실행 중간에 넣을 수 없음) - 난수 도 하나의 방법 [ IO클래스 이용 => 입출력 ] 키보드 / 모니터 - System.in/System.out 메모리 (java.io) - BuffuredReader/Writer => 속도측면에서 메모리를 사용한 입출력이 뛰어난 성능을 보인다. ( 데이터가 많을 수록, 차이가 더 심해진다. ) java.io.50여개 1. InputStream / OutputStream 클래스 => 단위 1byte씩 ( BYTE 스트림 ) (Stream = 데이터의 연속흐름) - read( )메소드 - 키보드 하나 입력만 읽어옴 - write( )메소드 ..

Back to the Java 2022.07.08

Lambda 식 ( ) -> { };

사용조건 1. 인터페이스 일때만 가능하고 2. 인터페이스에 메소드가 하나만 있을때 가능하다. 람다식은 포켓몬 진화 완전체 같은거다. ( 기본 인터페이스 사용 ) - 이상해씨 interface A{ void m1( ); } class B implements A { void m1( ){ 오버라이딩 } +다른 메소드, 생성자,변수 추가 가능 } main A a1 = new A () ; a1.m1( ); -다른 메소드등을 추가해서 사용해야할 땐, 기본 방법을 써야한다. ( 익명 객체 사용 인터페이스 ) - 이상해풀 main A a1 = new A( ){ public void m1( ) { 오버라이딩 } }; a1.m1( ); - 익명객체는 다른 메소드 생성자 변수 추가 불가능 하다. 즉,..

Back to the Java 2022.07.07

Generic < T > 제너릭

- Data 타입을 미정 로 줘놓고, 나중에 정하기 - class 내부에서 사용할 data type 을 나중에 instance 를 생성할 때, 확정 하는 것 [1] instance 별로 필요한 data type 으로 바꾸어 class 를 사용할 수 있게 함으로서 코드 중복 방지 [2] Type safety - 용도와 맞지않는 data type 이 들어가지 않도록 안전보장 [3] generic 은 참조형 data type 만 가능 ( wrapper class ) - 명시적 형변환 필요 X ( instanceof ) if (bb instanceof Apple){ System.out.println(((Apple)bb).origin);} Generic 을 사용하지않고, Objec..

Back to the Java 2022.07.07