Java Stream API 란? Java8 API에 새로 추가된 기능입니다. 컬렉션, 배열 등을 함수형 프로그래밍을 활용하여 반복 처리하도록 도와주는 API입니다. 그럼 Stream API를 왜 쓸까? 1. 컬렉션 데이터를 선언형으로 코드를 구현할 수 있습니다. With For-Loop List lowCaloricDishes = new ArrayList(); for(Dish dish : menu) { if(dish.getCalories d.getCalories() < 400) .sorted(Compara..
Overview Java에서 제공하는 ByteBuffer에 대해 알아보고, 생성해봅니다. ByteBuffer란? ByteBuffer 는 바이트 데이터를 저장하고 읽는 저장소입니다. 배열을 멤버변수로 가지고 있고, 배열에 대한 읽기/쓰기를 지원합니다. CharBuffer, IntBuffer, LongBuffer.. 등 데이터 타입에 따라 다양한 추상 메소드를 제공합니다. 배열상태 관리 capacity 버퍼에 저장할 수 있는 데이터의 최대 크기입니다. 한 번 정하면 변경할 수 없고, 생성자의 파라미터로 입력받아 버퍼를 생성합니다. position 읽기/쓰기가 작업 중인 위치를 나타내는 필드입니다. 버퍼가 생성될 때 0으로 초기화되고, put 메소드나 get 메소드가 호출되면 자동으로 증가합니다. limit과..
Overview Immutable Object에 대해 알아보고, 학습해 봅니다. Immutable Object란? 객체 생성 후 객체 내부 상태가 변경 불가능한 객체를 말합니다. 다시 말해, 객체가 생성 된 후 모든 lifecycle에서 동일한 값을 보장받을 수 있습니다. Java에서는 대표적으로 String, Boolean, Integer, Float, Long 등 이 있습니다. String message = "hello"; message = "bye"; String 의 경우 위와 같이 변수값이 변경하여 불변객체가 아니야? 라고 생각할 수 있는데, message 가 참조하고 있는 주소의 "hello" 값이 "bye"로 변경되는것이 아니라, 새로운 객체를 만들고 그 참조하는 주소에 "bye"라는 값을 할..
Overview 세 클래스는 전부 Java에서 String(문자열)을 저장하고 관리하는 클래스이다. Java 프로그래밍을 할 때 문자열을 가장 많이 사용하는데, 자주 사용되는 클래스들의 쓰임새를 잘 알고 효율적으로 사용하는 것이 바람직해 보여 포스팅을 한다. 불변성(immutable) : 객체의 값이 할당된 Heap 영역의 값을 변경할 수 없다. 주소가 재할당 됩니다. 가변성(mutable) : 객체의 값이 할당된 Heap 영역의 값이 변경 가능합니다. 주소는 그대로 사용하고 값을 변경합니다. String String은 immutable(불변성) 합니다. 객체가 생성되면 할당된 메모리공간에 변화가 일어나지 않습니다. @Test public void testString(){ String originText..
네이버 검색 OPEN API를 활용하기 목 표책 검색 api의 url에 적절한 파라미터를 세팅해 요청을 보내고 xml형식으로 돌아오는 응답을 잘 읽어서 원하는 정보를 추출 자바코드로 어떻게 url에 요청을 보내고 응답을 읽을 수 있는지.. xml문서에 원하는 값을 어떻게 획득할 수 있는지.. 순 서 1. 모델 클래스 생성12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182package model; public class Book { private String title; privat..
TCP 1 : 1 채팅 Class TcpChatServer 123456789101112131415161718192021222324252627282930313233 import java.io.IOException;import java.net.ServerSocket;import java.net.Socket; public class TcpChatServer { public static void main(String[] args) { ServerSocket serverSocket = null; Socket socket = null; try { serverSocket = new ServerSocket(5000); socket = serverSocket.accept(); TcpSendThread sender = n..