목록프로그래밍/Java (8)
코딩.zip

String - 불변 StringString str3 = "hello"` 와 같이 문자열 리터럴을 사용하는 경우 자바는 메모리 효율성과 성능 최적화를 위해 문자열 풀을 사용자바가 실행되는 시점에문자열 리터럴이 있으면 문자열 풀에 `String` 인스턴스를 미리 만들어둔다! package lang.string;public class StringEqualsMain1 { public static void main(String[] args) { String str1 = new String("hello"); String str2 = new String("hello"); System.out.println("new String() == 비교: " + (str1 == str..
사이드 이펙트(side effect): 프로그래밍에서 어떤 계산이 주된 작업 외에 추가적인 부수 효과를 일으키는 것➡️ 프로그래밍에서 사이드 이펙트가 발생한 것은 의도치 않게 다른 부분에 영향을 미치는 현상이다. 때문에 디버깅이 어려워지고 코드 안전성이 저하된다. 공유하면 안되는 객체를 여러 변수에서 공유했기 때문에 발생한 문제! 하지만 체의 공유를 막을 수 있는 방법은 없다.그런데 사이드 이펙트의 더 근본적인 원인을 고려해보면, 객체를 공유한다고 바로 사이드 이펙트가 발생하지는 않는다. **문제의 직접적인 원인은 공유된 객체의 값을 변경한 것이다. ➡️ 객체의 값을 변경하지 못하게 설계하면 사이드 이펙트 발생하지 않는다. 불변객체 (Immutable Object): 객체의 상태(객체 내부의 값, 필드,..
java.lang 패키지가장 기본으로 제공해주는 라이브러리lang은 language의 줄임말, 자바의 기본이 되는 클래스들을 보관하는 패키지import 구문 사용하지 않아도 자동으로 임포트된다. java.lang 대표적인 클래스Object : 모든 자바 객체의 부모 클래스 (최상위 클래스) 따라서 모든 객체를 참조할 수 있다!String : 문자열Integer , Long , Double : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class : 클래스 메타 정보System : 시스템과 관련된 기본 기능들을 제공Object Class - 생략 권장부모가 없으면 묵시적으로 Object(java.lang) 클래스를 상속 받음 Object 는 모든 객체에 필요한 공통 기능을 제공한다. `Object ..

맥북 STS3 깔기... 걍 안돼서 STS4 설치했네요근데 STS는 레거시 지원 안 해주는거 시롸?? 일단 중요한거.. jdk-11로 환경변수 지정해줬는데 springtoolsuite.ini에서 -vm이 17로 되어있자나... 11로 바꾸는 방법 모르겠어서 환경변수랑 싹 다 jbk-17로 변경해줬다.. 그랬더니 레거시 프로젝트 등장...ㅣ;;;; -> sts3부터 jdk 17 이상 지원이래요~ ㅎ-startup../Eclipse/plugins/org.eclipse.equinox.launcher_1.6.700.v20240213-1244.jar--launcher.library../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.aarch64_1.2...

🍀 컬렉션: 배열처럼 데이터 저장 - 배열과 차이 배열컬렉션크기고정유동적, 크기를 늘리고 줄일 수 있음타입기본값과 객체 모두 저장기본값 사용 X (int 절대 안됨)데이터 저장유사한 데이터만일부는 유사한 데이터, 일부는 다른 유형 데이터 저장 가능메모리효율 떨어짐효율 높음성능좋음성능에 따라 다름 List : 순서가 있는 데이터 집합, 중복 O = 배열이라고 생각Set : 순서가 없는 데이터 집합, 중복 XMap : 순서가 없는 키와 값 한 쌍으로 이루어진 데이터 집합, 키=중복 X / 값= 중복 OQueue : 헤드에서만 제거되는 특수한 종류의 목록을 처리List 컬렉션Collection 인터페이스의 자식 인터페이스 ( 클래스 아님, 객체로 사용 불가 ) - 🚨 같은 요소 중복 저장 가능하지만, ..

🌱 파일 처리 파일처리를 위해 java.io 패키지 포함해야 한다. 입출력 스트림 유형 바이트 스트림 - OutputStream 클래스 - InputStream 클래스 문자 스트림 - Reader 클래스 - Writer 클래스 1️⃣ 파일 생성 File 클래스 : 생성, 삭제, 이름변경, 디렉터리 내용 나열 등 다양한 작업 수행하는 메서드 포함되어 있다. - example01.txt File 생성 🚨 boolean 값으로 받는 createNewFile()은 파일이 있으면 false, 없으면 true 값을 가진다. ⌗ createNewFile() : 원하는 경로에 새 파일 생성, 보통 생성된 파일은 비어 있다. package chap12; import java.io.File; import java.io.I..

🚨 추상화 : 불필요한 정보 숨기고 중요한 정보만 나타내는 것추상 클래스 & 추상 메서드선언 방법 : abstract 키워드 ✏️ 추상 메서드는 자식 클래스에서 구현된다. ➡️ 부모 클래스는 메서드명만 가지고 있고 자식 클래스가 해당 메서드명을 사용하는 것추상 클래스는 추상 메서드 있어도 없어도 되지만(일반 메서드만 있어도 된다.) 있다면 반드시 추상 클래스로 선언해야 한다.추상 클래스에서 일반 메서드를 포함할 수 있는 이유 : 추상 클래스는 인터페이스보다 더 많은 유연성을 제공하기 때문에 공통된 구현을 상속받는 클래스들이 반복해서 구현할 필요성을 줄인다.클래스의 사용자가 특정 동작을 반드시 구현해야 할 때 사용 : 추상 클래스는 하위 클래스에서 반드시 구현해야 하는 메서드를 강제로..

자료형 기본형 : 계산을 위해 실제 값을 저장 참조형 : 실제 값이 아닌 객체의 주소값을 저장 메모리의 힙(heap)에 실제 값을 저장하고, 그 참조값(주소값)을 갖는 변수는 스택에 저장 출처: https://inpa.tistory.com/entry/JAVA-☕-변수의-기본형-참조형-타입 [Inpa Dev 👨💻:티스토리] [비슷하지만 다른] 매개변수와 인수 매개 변수는 메서드에 전달된 입력값을 저장하는 변수를 의미하고, 인수는 메서드를 호출할 때 전달하는 입력값 🌎 클래스와 객체 클래스 구성요소 멤버 변수 : 객체의 데이터가 저장되는 곳 멤버 메서드 : 객체의 동작, 데이터의 조작이 이루어지는 곳 생성자 : 객체를 생성할 때 초기화 되는 항목 관리 멤버 변수와 정적 변수 차이 1. 소속 및 클래스의 범..