자바4

[JAVA] String에 대하여

자바의 문자열 자바에서 문자열을 선언해 보자. String str = "abc123가나다" 큰 생각 없이 썼었던 문자열이지만 과연 내부적으로 어떻게 돌아갈것인가? C언어로 문자열을 만든다고 생각하면, 기본적으로 'a','b','c','1','2','3','가','나','다' 각각의 문자를 나열한 배열이다. 자바에서도 내부적으로는 각각의 배열일 것인가 ? 하는 물음에 시작되었다. Primitive Type 자바에서 원시타입은 byte,short,int,long,float,double,char,boolean,void 가 있다. String은 무엇인가? 일반적으로 객체를 생성할 때는 new 키워드를 사용하는데 특이하게 String은 new 연산자가 아니라 바로 값을 할당할 수 있는데 이를 문자열 리터럴 이라 ..

자바 2022.07.12

자바 스레드 동기 비동기 이해 및 활용

자바 웹소켓을 사용하여 채팅방을 관리해주는 배열을 구현하면서 동기의 필요성을 느꼈다. 예를들어, 10개의 채팅방이있다. 그 중 7번째 채팅방의 유저가 모두 나가서 해당 Room은 비어있다. (remove방식 X) 이제 유저1, 유저2 각각 createRoom함수를 동시에 호출하여 Room 생성 요청을 했다. 하나의 스레드로 Room배열을 검사했으면 아무런 문제가 없지만(동기) 유저1, 유저2의 요청에대한 스레드가 동시에 검사(비동기)를 진행하면서 7번방이 Null이라 둘 모두에게 방을 내어주려고 할 때 문제가 발생한다.. 이제 둘 이상의 스레드가 동기적으로 실행하도록하는 방법을 알아보자. 목표1. 하나의 객체접근 시 동기 접근 1.비동기 public class TestThread { public stat..

자바 2020.09.18

스프링부트 로그 초간단 사용법

스프링부트 log 초간단 사용법 - logback, slf4j 구글링 결과.. 너무 길어서 간단히 정리했습니다. 1. 컨트롤러 import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Controller public class TestController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @ResponseBody @RequestMapping(value = "/log") public String logtest() { for(int i=0;i src/main/resources 에 복붙 파일명 : logback-spring.xml [%d{yy-MM-dd}:%-3rela..

자바 2020.09.17