Java 9

MySQL DateTime 레코드의 시(hour)와 분(minute)이 제대로 불러와지지 않을 때

출처 : https://thiago6.tistory.com/94 MySQL에서 DateTime 타입의 컬럼을 자바의 Java.sql.Date 타입으로 가져오던 중 분명 DB에는 2020-08-16 01:11:15 로 저장되있는데 자바에서는 2020-08-16 00:00 으로 나오는 현상 발생. 구글링 후 얻어낸 결과! VO(혹은 DTO)의 java.sql.Date 타입을 java.sql.TimeStamp 로 변경해주었더니 초 단위까지 잘 나온다.

Java 2020.08.17

메모리 구조 (Method, Heap, Stack)

* 모든 자바 프로그램은 자바가상머신(JVM)을 통해서 실행되는데, 이 자바 프로그램이 실행되면 JVM은 운영체제로부터 필요한 메모리를 할당받는다. Method = 클래스, 클래스 변수 Heap = 객체, 인스턴스 Stack = 메소드, 지역변수, 매개변수 ▶ Method (클래스, 클래스 변수) = 자바 프로그램에서 사용되는 클래스에 대한 정보, 클래스 변수가 저장되는 영역 JVM 은 자바 프로그램에서 특정 클래스가 사용되면 해당 클래스의 클래스 파일(.class)을 읽어들여, 해당 클래스에 대한 정보를 Method 에 저장 ▶ Heap (인스턴스 변수, 동적할당) ; 낮은 주소에서 높은 주소로 = 자바 프로그램에서 사용되는 인스턴스 변수 저장 JVM 은 new 연산자를 통해 인스턴스를 생성하게 되면,..

Java 2020.03.05

접근제한자

해당 객체 상속받은 객체 해당 패키지 모든 패키지 public O O O O package(default) O O O X protected O O X X private O X X X public = 클래스, 변수, 메소드, 생성자 등의 모든 접근을 허용한다. 보통 상수(static final 변수), 메소드(get/set) 등에 사용한다. protected = 디폴트와 같으나, 추가적으로 다른 패키지의 클래스에서도 상속이 가능 package = 디폴트에 해당. 같은 패키지의 클래스, 변수, 메소드, 내부클래스에서 접근 가능. private = 같은 클래스에서만 접근 가능. 보통 인스턴스 변수, 외부에서 호출해서는 안되는 메소드

Java 2020.03.05

Singleton

인스턴스를 하나만 만들어 사용하기 위한 패턴 해당 클래스의 인스턴스가 1개만 만들어진다. 클래스에서 자신의 단 하나뿐인 인스턴스를 관리하도록 만든다. 어디서든 그 하나뿐인 인스턴스에 (즉 싱글톤에) 접근할 수 있도록 한다. 사용 목적 싱글톤 패턴을 사용하면 같은 인스턴스를 계속해서 참조하기 때문에, 객체 생성 횟수를 줄일 수 있으며 자연스레 메모리 공간을 절약할 수 있게 된다. 또한 코드라인 수가 감소하여 가독성이 향상된다. 특징 1. 싱글톤 패턴은 2개 이상의 객체를 가질 수 없으며, 2. 이를 구현하기 위해서는 객체 생성을 위한 new 에 제약을 걸어야 하고, 만들어진 1개의 객체를 반환 할 수 있는 메소드가 필요하다. (예를 들어 getInstance()) 즉, new 를 실행할 수 없도록 생성자에..

Java 2020.03.05

Static

* 다른 패키지에서도 접근 가능한 공유폴더라고 생각하면 됨. * 메소드를 Static 으로 선언해놓으면 다른 패키지에서 굳이 new 로 객체 생성할 필요 없이 바로 불러올 수 있음 예를 들어 다음과 같이 두 파일이 있고, main.java sub.java main에 public static perform() { } 이라는 메소드가 있다. 그러면 sub 클래스에서 main 클래스의 perform() 메소드를 불러오고자 할 때 main.perform(); 하면 된다. 만약에 perform() 메소드가 static 으로 선언하지 않았다면 main m = new main(); m.perform(); 이런 식으로 불러오게 된다.

Java 2020.03.05