반응형 IT/Java394 [자바] 메모리 영역 Static, Stack, Heap Static 영역 Java 파일은 크게 필드(field), 생성자(constructor), 메서드(method)로 구성되어 있다. Static 영역은 그 중 필드 부분에서 선언된 전역변수와 정적 맴버 변수(static 으로 선언되는 것)들의 데이터를 메모리에 상주시킨다. 상수 개념의 static과 의미를 묶어서 보면 도움이 된다.(아래 참고 포스팅 참고) 정적 맴버 변수 = Static 변수와 Static 메서드가 합쳐진 것 (=클래스 멤버) 객체에 소속된 맴버가 아닌 클래스에 고정된 맴버다. 클래스 정보(맴버변수의 이름), static변수, 변수 정보(데이터타입, 접근제어자정보), 메서드 정보 등을 저장한다. static (전역)변수는 어디서든 접근이 가능하기 때문에 가능한 무분별한 사용을 하지 않는 .. 2023. 6. 28. HttpServletRequest, HttpServletResponse에 대한 이해 was 에서 웹 브라우저로 요청을 받게 되면 아래 그림처럼 동작을 한다. 1. 요청 받는 정보를 HttpServletRequest객체를 생성하여 저장 2. 웹 브라우저에게 리턴할 HttpServletResponse객체를 생성(빈 객체) 3. 생성된 HttpServletRequest(정보가 저장된)와 HttpServletResponse(비어 있는)를 Servlet에게 전달 그러면 여기서 나오는 HttpServletRequest, HttpServletResponse 에 대해서 설명을 하면 다음과 같다. HttpServletRequest Http프로토콜의 request 정보를 서블릿에게 전달하기 위한 목적으로 사용 Header정보, Parameter, Cookie, URI, URL 등의 정보를 읽어들이는 메소.. 2023. 6. 24. spring-boot-maven-plugin 자바에서 maven 관련해서는 아래 참고 포스팅 참고 바란다. Spring Boot Maven Plugin은 다음과 같은 Spring Boot 지원을 제공한다. 프로젝트를 실행가능한 jar 파일이나 war 파일로 패키지(package) Spring Boot 애플리케이션 실행 Build 정보 생성 통합 테스트를 하기 전에 Spring Boot 애플리케이션을 시작 그리고 maven 을 설정하는 pom.xml 파일에 아래 plugin 부분을 명시해줘야한다. org.springframework.boot spring-boot-maven-plugin ${parent.version} test org.projectlombok lombok 물론 groupId랑 artifactId만 작성해줘도 되는데, 다양한 옵션들을 함.. 2023. 6. 22. @PostConstruct, @PreDestroy 어노테이션 오늘 소개할 어노테이션은 다음과 같다. @PostConstruct @PreDestroy 해당 메서드를 이해하려면 Bean 생명주기(Life Cycle) 에 대해서 이해를 해야한다. 예전에 스프링이 지금처럼 활발하지 않을때는 인터페이스로 빈을 관리하거나, @Bean(initMethod = "initialize", destroyMethod = "close") 이런식으로 빈을 생성하여 시작시, 종료시 행해지는 메서드들을 정의하곤 했다. 그래서 최신 기술로는 오늘 소개하는 @PostConstruct, @PreDestroy 이 두 annotation을 사용하는것이 권장된다. annotation에 대해서는 아래 참고 포스팅 참고 바란다. @PostConstruct Spring은 bean을 초기화 한 이후에 @Pos.. 2023. 6. 20. JVM 내에 저장되어있는 데이터 위치 값 확인 자바를 사용한다면 JVM 이 뭔지 알것이라고 생각이 되지만 혹시 좀더 이해가 필요하면 아래 참고 포스팅을 참고 바란다. 자바에서 만약 String text = "A"; 이라고 선언을 하면 jvm 메모리 어딘가에 text 값을 저장하고 있는 위치가 있다. 그 것을 확인하기 위해서는 아래와 같이 사용을 한다. System.identityHashCode(text)); 자세히 보면 hashcode라는 글이 있는데 아래 참고 포스팅을 확인하면 도움이 될것이다. 사용을 하면 실제 물리적인 jvm 의 메모리 위치 주소가 출력이 된다. hashcode와 identityHashCode 둘의 차이는 Object의 hashCode() 메소드는 하위 클래스에서 override가 가능하기 때문에 객체마다 유일한 값을 갖고 있지.. 2023. 6. 18. Optional – orElse() 와 orElseGet() 이전 포스팅에서 Optional 에 대한 내용을 다룬적이 있다. 자세한 내용은 아래 참고 포스팅 참고 바란다. Optional 은 결국엔 NPE 를 해결하기 위해서 생겨났고, 만약 Null일 경우엔 default 값을 넣어줄수 있는 개념으로 만들어진 함수가 바로 이 orElse / orElseGet 이다. 결국 둘다 null일때 default 를 받을건데 둘의 차이는 어떤것인지 확인해보면 orElse() : T 클래스를 인수로 받음 orElseGet() : T 클래스를 상속받은 하위 클래스를 return해주는 Supplier 함수 인터페이스를 받음 좀더 이해하기 쉽게 예시를 들어서 설명하면 다음과 같다. orElse Optional text = "a"; Sting bb = text.orElse(testM.. 2023. 6. 16. [eclipse] Ant 란? 현재는 빌드 관련해서는 maven 과 gradle 을 주로 사용하곤 한다. 이 둘에 대해서는 아래 참고 포스팅을 참고 바란다. 현재는 아니지만 maven 과 gradle 이전에는 Apache Ant 를 통해서 빌드도 인기가 있었었다. https://ant.apache.org/ Apache Ant - Welcome Welcome Apache Ant™ Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is .. 2023. 6. 15. Java 에서의 정규 표현식 정규표현식에 대한 정의는 이전 포스팅에서도 많이 다룬적이 있기에 해당 참고 포스팅을 참고 하면 도움 될것이다. 이전 포스팅에서는 파이선에 대한 포스팅이 주를 이뤘는데 이번 포스팅에서는 자바에서의 정규 표현식을 정리 해보려고 한다. 자바에서 정규표현식을 사용하기 위해서는 java.util.regex 에 있는 클래스를 사용하게 되고 주로 Pattern / Matcher 를 사용하게 된다. Pattern은 matches() 메서드를 지원한다. 주어진 패턴이 주어진 정규 표현식에 일치하는지 체크를 한다. 아래와 같이 사용이 된다. String pattern = "^[0-9]*$"; // 숫자만 String str = "123123"; boolean result = Pattern.matches(pattern, s.. 2023. 6. 14. 자바에서 Null 체크 관련(if) 이전 포스팅에서 null에관한 내용을 다룬 글을이 몇개 있다. 자세한 사항은 아래 참고 포스팅 참고 바란다. 하지만 이번 글에서는 적용을 안하면 틀린건 아니지만 좀더 깔끔하고 효율적인 코드가 될수 있도록 null 체크를 해보려고 한다. 특별한건 없고 바로 코드로 설명하도록 하겠다. if ( list.size()>0 && list != null) { if ( list.size()>0 || list != null) { if ( "".equals(text) && text != null) { if ( "".equals(text) || text != null) { 이전 코드에서 복사해온 코드였는지.. 언제 짰는지도 기억이 안나는데 위와 같은 코드가 있었었다. ( 기억에서 작성한 코드라서 그냥 의미만 보시면 될듯 .. 2023. 6. 9. 이전 1 ··· 20 21 22 23 24 25 26 ··· 44 다음 반응형