-127 ~ +127 은 메모리 참조 캐시된다. https://medium.com/programmingmitra-com/java-integer-cache-why-integer-valueof-127-integer-valueof-127-is-true-e5076824a3d5
함수가 호출되면 스택에는 함수의 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소값, 함수에서 선언된 지역 변수 등이 저장됩니다. 즉, 함수에 정의된 지역 변수는 함수가 호출될 때 마다 생성되고, 종료되면 제거됨. 그래서 intellij 에서 하나의 메소드 내에서 쓰는데 전역변수로 설정하면 지역변수하라고 에러냄 ㅅㄱ --> 왜냐하믄 어차피 메소드 호출될 때, 생성되고 삭제되는 변수인데 왜 전역변수로 지정하냐? 이런 개념인듯함. http://www.tcpschool.com/c/cmemorystackframe
https://dublin-java.tistory.com/53 https://gyrfalcon.tistory.com/entry/Java-Reflection https://velog.io/@ptm0304/Java-%EC%9E%90%EB%B0%94-%EB%A6%AC%ED%94%8C%EB%A0%89%EC%85%98 https://brunch.co.kr/@kd4/8
Java에서 String을 사용할 때 주의할 점이 있다. 내가 개발을 할 때, 상수로 처리할려는 변수는 전역변수로 처리하는 습관?이 있었는데 이는 메모리 낭비가 될 수 있다. String은 두 가지 생성 방식이 있고 각각의 차이점이 존재한다. new 연산자를 이용한 방식 리터럴을 이용한 방식 두 가지 방식에는 큰 차이점이 있다. new를 통해 String을 생성하면 Heap 영역에 존재하게 되고 리터럴을 이용할 경우 string constant pool이라는 영역에 존재하게 된다. new 연산자를 이용하여 String을 선언하는 방법과 리터럴을 이용한 방식에 차이가 있다고 했다. 그럼 두 가지 방식에 있어서 사용에 있어 어떤 문제가 있을 수 있을까? 두 개의 결과값은 어떻게 나올까? 분명 동일한 “loper”라는 문자열을 선언한 String 객체이다. 연산의 결과는 false이고 equals 수행 결과는 true이다. equals는 문자열을
토픽 : 자바 Generic 자바 Generic 의 개념 자바 Generic 의 사용 사례 자바 Generic 에 대한 사용 경험 자바 Generic 의 개념 - 제네릭(Generic) 이란? 제네릭(Generic)은 JDK1.5에 도입된 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. - 제네릭을 사용해야하는 이유 제네릭을 사용하면 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다. 자바 컴파일러는 코드에서 잘못 사용된 타입 때문에 발생하는 문제점을 제거하기 위해 제네릭 코드에 대해 강한 타입 체크를 한다. 실행 시 타입 에러가 나는것보다는 컴파일 시에 미리 타입을 강하게 체크해서 에러를 사전에 방지하는 것이 좋다. 또 제네릭 코드를 사용하면 타입을 국한하기 떄문에 요소를 찾아올 때 타입 변환을 할 필요가 없어
2020-12-21 Topic! 프로그램 세계에서의 추상화 의 개념 (정의, 효과, 장/단점 등) interface 의 개념 추상화를 적용한 프로그래밍 사례 3가지 추상화 정의 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것 어떤 작업을 수행할 때 그 이면에 존재하는 복잡한 것들을 간단한 것처럼 보이게 만들어주는 것 > 현실세계에서 '추상화'란? 포토샵을 사용하여 컬러 사진을 흑백 사진으로 변경한다고 생각해보자. 포토샵은 이미지 프로세싱이라는 복잡한 연산을 수행하는 프로그램이지만, 우리는 포토샵이 제공하는 여러가지 기능들을 사용하여 사진 보정이라는 행위에만 집중할 수 있다. 실제로 컬러 사진을 흑백 사진으로 변경할 때는 행렬로 이루어진 사진의 픽셀 데이터를 순회하며 RGB 값의 평균을 내거나하는 등의 과정을 수행해야한다. 하지만 그런 복잡하고 귀찮은 과정이 추상화되어있기 때문에 사용자는 그저 포토샵
2020-12-14 Topic! Java bytecode https://hoonmaro.tistory.com/19 Java Byte 코드를 알기전에! > JVM(Java Virtual Machine) write once, run everywhere, 하나의 Java 파일이 모든 OS에서 실행되어야 한다. 즉, JVM만 각 OS에 설치되어 있다면 HW 기종에 상관없이 단 한번만 컴파일하면 된다. 이를 '플랫폼에 독립적'이라고 한다. 간단히 말해 JVM은 Java 클래스 파일을 로드하고, 바이트 코드를 해석하며, 메모리 등의 자원을 할당하고 관리하며 정보를 처리하는 작업을 하는 프로그램이다. OS는 JVM을 실행하고, JVM은 Java프로그램을 실행한다. > Java 컴파일러는 .java파일을 .c
1) DAO(Data Access Object) DAO는 DB의 data에 접근하기 위한 객체로 직접 DB에 접근하여 데이터를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행한다. DataBase 접근을 하기 위한 로직과 비지니스 로직을 분리하기 위해 사용한다. DAO의 경우는 DB와 연결할 Connection 까지 설정되어 있는 경우가 많다. 현재 많이 쓰이는 Mybatis 등을 사용할 경우 커넥션풀까지 제공되고 있기 때문에 DAO를 별도로 만드는 경우는 드물다. 2) DTO(Data Transfer Object) DTO는 계층간(Controller, View, Business Layer) 데이터 교환을 위한 자바 빈즈(Java Beans)를 의미한다. DTO는 로직을 가지지 않는 데이터 객체이고 getter/setter메소드만 가진 클래스를 의미한다. DTO(Data Transfer Object)는 데이터 전송(이동) 객체라는 의미를 가지고 있