일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 자바스크립트
- JPA
- 인테리어 계획짜기
- reflog
- 자바
- AWS
- 돌출분전함
- 오라클
- PS120
- 셀인 후기
- HashMap
- 컴포넌트
- 셀프인테리어 후기
- 자바기초
- 개나리 프리모
- 리액트
- Java
- pageshow
- 99115-2
- pagehide
- git 머지방법
- git reflog
- javascript
- 욕실인테리어 비용
- 셀인후기
- git
- 두꺼비집 교체
- 해커랭크
- 커밋하지 않은 파일 원복
- git reset 원복
- Today
- Total
목록IT/Java (15)
나의 기록
- 인터셉터(Interceptor) 란 ? 컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채는 역할을 한다. 예를들어 관리자만 접근할 수 있는 페이지의 경우, 페이지에 접근하기 전에 관리자 인증을 유도하는 용도로 활용할 수 있다. 주로 로그인과 같은 권한 체크에 유용하게 사용된다. 이와 유사한 역할을 하는 것이 'Filter'인데 Filter와 Interceptor는 비슷한 역할을 하지만 호출 시점에 차이가 있다. 1. 호출 시점. Filter는 DispatcherServlet 이 실행되기 전, Interceptor는 DispatcherServlet이 실행된 후에 호출된다. 2. 설정 위치 Filter는 web.xml에서 설정하고, Interceptor는..

- 람다(Lamdda) 란 ? 자바 8부터 등장하는 개념으로, 기존에 메소드 사용을 위해서는 클래스를 먼저 만들고, 클래스 안에 메소드를 정의해야만 객체화 이후 사용이 가능했다. 하지만, 람다는 별도의 정의없이 보다 선언적인 메소드 사용을 가능하게 만드는 표현식이다. 람다의 핵심은 ( 파라미터 -> {실행코드;} ); 메소드와 동일한 기능을 하지만 정의하지 않고, 바로 사용 가능한 것이 핵심이다. 대부분 스트림(Stream)이나 ForEach 등을 사용할 때 주로 사용하며 아무 곳에서나 사용은 불가능하다. 아래는 ForEach문에 사용되는 Lambda의 예제로 파라미터가 1개 일 경우와 2개일 경우다.
- 스트림(Stream) 이란? 자바8 이전에는 배열이나 컬렉션 안의 각 요소들에 접근하기 위해 for나 Iterator 등을 사용했는데, 자바8 부터는 Stream을 이용해서 보다 간결하고 가독성 높은 코드로 각 요소들에 접근하고, 컨트롤하는 것이 가능해졌다. 또 하나의 장점은 병렬처리가 가능하다는 점으로, 쓰레드를 이용해 많은 요소들을 빠르게 처리할 수 있다. 스트림은 선언, 가공, 반환 세 부분으로 이뤄진다. // 스트림 선언 방법 Stream stream명 = Arrays.stream(배열명); Stream stream명 = 리스트명.stream(); Stream stream명 = Stream.of('값', '값'....); 가공부에서는 제공하는 메소드들을 이용해 요소들을 원하는 형태로 가공하며,..
entrySet()은 key 와 value 반환하고, keySet()은 key값을 반환. Iterator()는 순서에 상관없이 하나씩 접근. public static void main(String[] args) { Map map = new HashMap(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); map.put("key4", "value4"); // entrySet for( Map.Entry elem : map.entrySet() ){ System.out.println( "key : " + elem.getKey() + ", value : " + elem.getValue()) ); } // keySet..

자바에서 데이터를 다룰 때 사용하는 데이터 타입은 기초 타입(Primitive Type)과 레퍼런스 타입(Reference Type)으로 나뉜다. 기초 타입은 언어에서 사전에 정의해 놓은 데이터 타입으로 저장공간에 실제 리터럴 형태의 값이 저장된다. 반면에, 레퍼런스 타입은 실제 값이 아닌 해당 값을 참조하는 참조값(주소값)이 메모리상에 저장된다는 차이점이 있다. 기초타입에는 총 8개의 타입[int, char, short, long, float, double, boolean, byte]이 있고, 이 이외에는 모두 레퍼런스 타입에 해당한다.

- 자바 [getOrDefault, putIfAbsent] 1. getOrDefault map.getOrDefault(key, defaultValue) map에서 key 를 찾아 있으면 key의 value를 반환하고, 없으면 defaultValue 를 반환 2.putIfAbsent map.putIfAbsent(key, value) map에 key가 없으면 데이터 셋을 넣고[map.put(key, value)], map에 key가 있으면 건너띈다.

- 예외처리 (Exception) 완벽한 프로그래밍은 없다. 아무리 잘 짜여진 코드라도 예외상황은 있기 마련이다. Exception처리가 없으면 프세스가 실행 시, 예외상황을 맞딱뜨릴 경우, 프로세스가 멈추게 된다. 예외상황을 맞딱드려도 정상적으로 원활한 프로세스의 진행을 위해 Exception을 사용한다. 위의 catch문 안에 있는 e.getMessage()는 예외상황에 대한 메시지를 보기위한 코드이다. e.getMessage(); 를 많이 사용하기도 하고, 메세지를 자세히 보고자 할때는 e.printStackTrace();를 사용한다. - Exception의 종류 Exception의 종류는 다양하다. 가장 많이 볼 수 있는 흔한 Exception으로는 ArrayIndexOutOfBoundsExcep..

- 자바 API 7 [Random과 SecureRandom의 차이] java.util.Random 클래스는 난수를 생성할 때 seed값으로 '시간'을 이용한다. 따라서, 각각 동일한 시간에 Random 클래스를 이용하여 난수를 생성하게 되면, 동일한 값이 리턴된다. [ deterministic(결정론적)] java.security.SecureRandom클래스는 이와 다르게 non-deterministic(비결정론적) output을 생산한다. 예측할수 없는 seed를 이용하여 난수를 생성하기 때문이다. 참고 : API document에서 발췌 [Unlike the java.util.Random class, the java.security.SecureRandom class must produce non-de..