일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 스프링 log
- Pessimistic Lock
- 스프링 로그
- bean
- component
- 스마일게이트
- Transaction isolation level
- JPA
- JPA Lock
- 서버개발캠프
- 서버
- Optimistic Lock
- spring
- 안드로이드
- JPA 동시성
- spring security 인증
- 캠프
- 암호화
- JPA 낙관적락
- JPA 비관적락
- Inno DB
- annotation
- Redis
- spring security
- 개발
- 낙관적락 비관적락 차이
- flask
- Android
- 디자인 패턴
- 스프링
- Today
- Total
목록자바 (6)
모르는게 많은 개발자
저번 포스팅인 함수형 인터페이스, 람다 표현식 개념/예제에 이어서 Stream, Optional을 정리해보려 한다. 1. Stream 자바8 이전에서는 List에 담긴 데이터를 처리하려면 foreach, for를 이용해 순회하며 데이터를 처리했다. 하지만 이렇게 작성된 코드는 길이도 길고 가독성이 떨어졌다. 이러한 문제점을 해결하기 위해 stream기능이 추가됐다. Stream은 Array, Collections와 같이 연속된 형태의 객체다. 그리고 2개의 연산 과정을 거쳐 데이터를 가공할 수 있다. 생성 연산 : Stream객체 생성 중개 연산 (filter, map) : List에 들어있는 데이터를 조건에 맞게 가공(ex: 특정 String만 골라내기)하는 연산들을 의미 Stream을 반환 즉, 중개..

최근 자바8을 제대로 모르는 것 같아 공부를 하면서 함수형 인터페이스와 람다 표현식을 정리하기 위해 이 글을 쓴다. 1. 함수형 인터페이스 람다식을 알기전에 함수형 인터페이스가 무엇인지 알아야할 것 같다. 함수형 인터페이스란 한개의 추상 메소드가 선언된 인터페이스를 의미한다. @FunctionalInterface public interface RunSomething { void doIt(); } 위의 코드를 보면 @FunctionalInterface Annotation이 선언되어 있는데 이것은 해당 인터페이스가 함수형 인터페이스라는 것을 알려준다. 만약, @FunctionalInterface가 선언된 인터페이스에 추상 메소드가 1개가 아닐 경우 컴파일 에러가 발생한다. @FunctionalInterfac..
이번 포스팅에서 final, static에 대해 정리해보려 한다. 1. final final 키워드는 변수, 메소드, 클래스에 사용할 수 있다. 변수 변수에 final 키워드를 붙이면 그 변수는 한번만 초기화 가능 및 수정 불가능 public class Main { public static void main(String[] args){ final int a = 1;//1로 초기화 final int b; b = 2;//b를 선언하고 2로 초기화 a = 2; //이미 선언되었기 때문에 Error } } 클래스 변수에 final을 사용하면 생성자를 통해 값을 할당 가능 public class Sample { private final int test; private int test1; //생성자를 통해 값할당 ..

저번 포스팅에서 JVM에 대해 알아보았다. 이번에는 자바에서 정말 많이 중요한 기능이라 생각하는 Garbage Collection에 대해 알아보았다. 1. Garbage Collection이란? 자바 어플리케이션을 실행하게되면 여러 객체들이 생성되게 된다. 여기서 어플리케이션이 실행되다보면 이제는 쓰지 않는 객체가 나오기 마련이다. 이러한 객체를 계속 가지고 있으면 메모리 낭비가 되게 된다. 프로그래머가 명시적으로 객체를 null로 하여 해제할 수 있지만 JVM에서 더이상 쓸모없는 객체를 알아서 제거해주는 기능을 Garbage Collection이라고 한다. 2. Garbage Collection 조건/구조 GC란 필요없는 객체를 회수하는 작업이란 것을 알았다. JVM이 GC를 수행하게 되면 GC를 수행..

1. JVM(JAVA Virtual Machine)이란? 자바 가상 머신의 줄임말이다. 쉽게 말해 자바 프로그램을 실행시키는 소프트웨어이다. JVM은 자바와 운영체제(OS)에서 중개자 역할을 하여 OS에 구애받지 않고 자바 프로그램을 실행할 수 있다. 2. JVM 구성 JVM은 크게 Class Loader, Execution Engine, Garbage Collector, Runtime Data Area로 구성되어있다. Class Loader 자바 프로그램을 작성하면 .java파일을 만들게 된다. 그리고 실행을 하게 되면 컴파일을 통해 .class(바이트코드)를 생성한다. Class Loader는 이 .class파일들을 Runtime Data Areas에 적재하는 역할을 한다. Excution Engin..
String과 StringBuilder, StringBuffer는 같은 기능을 하는데 어떤 차이점이 있을지 궁금해서 조사해봤다. String String은 객체 하나가 생성이 되면 메모리공간이 고정 String객체를 append등으로 값을 바꾸면 새로운 String 객체를 만들어 변경된 값을 넣고 참조 기존 객체가 제거되면 Garbage Collection이 회수 문자열 연산이 많을 때 성능 좋지 않음 String 예제 public class Example { public static void main(String[] args) { String a = "awd"; System.out.println(a.hashCode()); //a객체의 주소 System.out.println("awd".hashCode()..