[JAVA] long 타입에 접미사 'L'이 없으면 무슨 타입으로 인식될까? [변수의 타입과 접미사의 중요성]
·
◎ Java/Java☕
- long 타입에 접미사 'L'이 없으면 무슨 타입으로 인식될까? Java에서 숫자 리터럴을 표현할 때, 기본적으로 정수형은 int 타입으로 인식된다. long 타입의 숫자 리터럴을 표현할 때는 리터럴 값 끝에 대문자 L 또는 소문자 l을 붙여주어야 한다. long 타입의 숫자 리터럴에 대문자 L 또는 소문자 l을 붙이지 않고 그냥 숫자만 표현하면, Java 컴파일러는 해당 리터럴을 int 타입으로 인식한다. 따라서 long 타입으로 인식하기 위해서는 반드시 L 또는 l을 붙여주어야 한다. // long 타입 리터럴 long l = 123456789L; // int 타입으로 인식됨 long l2 = 10_000_000_000; // 에러 발생. // long 타입으로 인식하려면 10000000000L과..
[JAVA] 변수의 메모리 할당 시점과 삭제 시점 [메모리 할당 시점, 삭제 시점, 블록 내에서의 메모리 재사용]
·
◎ Java/Java☕
- 변수의 메모리 할당 시점과 삭제 시점 1. 메모리 할당 시점 변수가 선언되면 해당 변수에 대한 메모리 공간이 할당되며, 이 때 변수의 타입에 따라 할당되는 메모리의 크기가 결정된다. 변수가 선언된 블록에서만 사용할 수 있으며 해당 블록이 실행될 때 메모리에 할당된다. 2. 삭제 시점 변수의 생명 주기는 해당 변수가 선언된 블록의 실행이 끝날 때까지이며, 블록이 실행되는 동안 변수는 유효하다. 블록이 실행을 마치면, 해당 블록에서 선언된 모든 변수들은 메모리에서 삭제된다. 객체가 변수일 경우, 해당 객체에 대한 참조 카운트가 0이 되면 가비지 컬렉터(Garbage Collector)가 메모리에서 삭제한다. 3. 블록 내에서의 메모리 재사용 Java는 스택(Stack)과 힙(Heap) 영역으로 메모리를 ..
[JSP] 표현식(JSTL) 안에서 삼항연산자 쓰는 방법 [JSTL 문자열 연결하기]
·
◎ Java/JSP📋
- 표현식(JSTL) 안에서 삼항연산자 쓰는 방법 JSTL 안에서도 조건에 따른 값이 달라지는 삼항연산자를 사용할 수 있다. JSTL 안에서 문자열을 연결하고 싶다면? 우리가 알고 있는 '+'나 '||'를 사용하게 되면 에러가 발생한다. JSTP 안에서 문자열 연결을 하고 싶다면 '+='를 사용하면 된다. 단순한 문자열 연결은 아래처럼 연결 할 수 있다. - 참고자료 [JSP] JSTL(EL) 문자열 연결(문자열 더하기) apple, delicious, tateless 세 개의 변수가 선언되어 있습니다. JSTL(EL)에서는 '+' 연산자를 이용할 수 없기 때문에 단순히 아래의 이미지와 같이 문자열을 연결할 수 있습니다. 만약, 삼항연산자로 처리 congsong.tistory.com
[JAVA] 향상된 for문 사용 시 주의사항 [개선된 for문, foreach문]
·
◎ Java/Java☕
- 향상된 for문 사용 시 주의사항 향상된 for문은 JDK 1.5 이상부터 추가된 반복문이다. → 반복문에 사용될 대상은 배열이나 여러 원소를 포함한 자료형이어야 한다. ex) String[], ArrayList int[] nums = int[10]; // 반복문에 사용할 배열 // 기존 for문 for(int i = 0 ; i < nums.length ; i++) { // 반복할 내용 } // 향상된 for문 for(int num : nums) { // 반복할 내용 } 향상된 for문은 기존 for문에 비해 가독성이 좋다는 장점이 있으나.. 1) index를 사용하지 못하며, 2) 배열의 값을 수정할 수 없다는 단점이 있다. (read only)
[JSP] Ajax로 보낸 JSON 데이터 서블릿(Servlet)으로 받아오기 [JSON 인코딩 깨짐 해결하기]
·
◎ Java/JSP📋
- Ajax로 보낸 JSON 데이터 서블릿(Servlet)으로 받아오기 화면에서 Ajax POST로 데이터를 보냈는데, Servlet에서 null이 떴다. → 해당 프로젝트는 Spring을 사용하지 않고 Servlet으로만 구성되고 있다. 보낼 데이터를 객체가 아니라 JSON 형태로 변경하였고, Servlet 쪽에서도 JSON 파싱 구문을 넣어줬다. //JSON Parsing StringBuffer jb = new StringBuffer(); String line = null; try { BufferedReader reader = request.getReader(); while ((line = reader.readLine()) != null) jb.append(line); } catch (Exceptio..