728x90
반응형

자바 6

[java] 배열복사, 얕은복사, 깊은복사

배열원시데이터타입과 객체배열 사용법이다름객체배열인경우 전체 틀만 만들어지기때문에, 방마다 객체 생성해서 서랍처럼 일일이 넣어줘야함  객체 배열 복사 (얕은복사)System.arrayCopy(src, srcPos, dest, destPos, length) 자바에서 제공되는 배열 복사 메서드사용얕은 복사(주소만 복사) 즉, 두 배열이 같은 객체를 가리킴객체 주소만 복사되어 한쪽 배열의 요소를 수정하면 같이 수정 됨public class ObjectCopy { public static void main(String[] args) { Book[] library = new Book[5]; Book[] copyLibaray = new Book[5]; library[0] = new Book("태백산맥1", ..

백엔드 2025.03.03

[java] 배열 요소에 값이 있는 것만 추출하기

배열 선언 및 초기화 규칙int[] arr = new int[]{1,2,3,4,5}; // O 선언 및 명시적인 초기화int[] arr = new int[5]{1,2,3,4,5}; // X 오류!!!int[] arr = {1,2,3,4,5}; // O new int[] 생략, 컴파일러가 인식하고 자동으로 new int[]추가해줌int[] arr;arr = {1,2,3,4,5}; // X 오류!!! 선언후에 초기화시 반드시 new int[]추가해줘야함 컴파일러가 인식못함int[] arr;arr = new int[]{1,2,3,4,5}; // O 배열을 선언하면 개수만큼 메모리가 할당되지만, 실제 요소(데이타)가 없는 경우도 있음배열의 length 속성은 배열의 개수를 반환해주기 때문에 요소의 개수와는..

백엔드 2025.03.03

[패턴] 싱글톤 패턴 (Singleton pattern)

public class Company { private static Company instance = new Company(); // ① 클래스 로딩 시 객체 생성 private Company() {} // ② private 생성자 (외부에서 new 사용 불가) public static Company getInstance() { if( instance == null) { // ③ 항상 false이므로 실행될 일 없지만 방어적인 코드작성 instance = new Company(); } return instance; // ④ 항상 최초에 생성된 객체 반환 }} public class Company { private st..

백엔드 2025.03.03

[java] this, heap, stack메모리

this가 하는 일인스턴스 자신의 메모리를 가리킴생성자에서 또 다른 생성자를 호출 할때 사용자신의 주소(참조값)을 반환 함 생성된 인스턴스 메모리의 주소를 가짐- 클래스 내에서 참조변수가 가지는 주소 값과 동일 한 주소 값을 가지는 키워드public void setYear(int year){ this.year = year;} - 객체생성시 힙메모리에 인스턴스가 생성됨- 함수나 메서드의 지역변수는 스택메모리에 잡힘  생성자에서 다른 생성자를 호출 하는 this - 클래스에 생성자가 여러 개 인경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음- 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement 이전에 다른 statemen..

백엔드 2024.08.03

[Eclipse] Project root directory is the workspace directory 오류

https://start.spring.io/스프링부트 프로젝트 생성후 이클립스에서 import시, 아래같은 오류가뜨는이유는 결론적으로 말하면 .metadata 폴더 때문이다workspace가 자체적으로 가지고 있는 .metadata 폴더에는 해당 프로젝트가 import 되어 추가된 적이 없음에도 중복이라고 오류가 뜨는것임  나같은 경우엔 toyproject압축을 푼 폴더를 삭제하고 내용물만 넣어서 오류가 난것,,  [해결법]Project root directory 경로를 .metadata 폴더를 피해 다른경로로 지정하면됨import 성공!임포트후엔  플젝 우클릭 - Run As - Spring Boot App 으로 잘 돌아가는지 실행해보자!  역시 잘 돌아간다~~~ 짝짝짝

오류 2023.03.21

[Java] Project, Package, Class, Method 네이밍 규칙

공통 대소문자가 구분되며 길이에 제한이 없다. 예약어를 사용해서는 안 된다. 숫자로 시작해서는 안 된다. 특수문자는 '_' 혹은 '$'만 허용한다. 파스칼 표기법(PascalCase)과 카멜 표기법(camelCase)을 사용한다. 반의어는 반드시 대응하는 개념으로 사용해야 한다. 1. Project(프로젝트) 대/소문자 구분없이 시작 가능하다. 대문자 사용을 권장한다. 2. Package(패키지) 패키지명은 대소문자를 모두 허용 하지만 클래스명과 쉽게 구분하기 위해서 소문자로 하는 것을 원칙 으로 하고 있다. 표준 패턴을 따른다. Ex) [com].[Company].[Project].[toppackage].[lowerpackage] 가급적 한 단어 사용을 권장한다. 좋은 예: com.nexon.maple..

백엔드 2023.03.21
728x90
반응형