(규제적 측면)객체가 특정한 인터페이스를 사용한다면 객체는 반드시 인터페이스의 메소드들을 구현중괄호가 없는 클래스!구현! 인터페이스의 클래스를 구체적으로 구현해야 함!클래스 A는 인터페이스 I를 구현한다.서로 약속, 합의 어떤 클래스가 어떠한 메서드와 멤버를 가지고 있
하나의 메소드나 클래스가 있을 때 그것들이 다양한 방법으로 동작오버로딩같은 이름 같은 동작방법똑같은 이름을 가진 메소드지만 매개변수로 무엇을 줬느냐에 따라서 다른 것이 동작!클래스 B로 객체를 만드는데, 객체가 담겨있는 데이터 타입이 A어떤 클래스를 인스턴스화 시킬 때
모든 클래스의 공통된 조상\~\~~항상 extends object{} 를 생략한 것.toString - object에 있는 메소드! 항상 생략되어 있음.(문자화 시킴)\-> 즉, 오버라이딩 가능(this는 인스턴트 자신!)하면이랑결과 같음 ~ 항상 생략되어 있으니 ㅎ
클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법인포의 데이터 타입이 TT는 스트링이 됨!
JVM(Java Virtual Machine): 자바 가상 머신바이트코드를 어떻게 실행할 수 있는지에 대한 스팩.구현체는 다양하다. 자바 바이트 코드(.class파일)을 OS에 특화된 코드로 변환(인터프리터와 JIP 컴파일러)하여 실행. 특정 플랫폼에 종속적. (네이티
getField()는 public만 받아옴.다 받아오고 싶으면 getDeclaredField를 해야 함.값을 가져오고 싶다..forEach(f -> { f.get(book)});값을 가져오려면 인스턴스가 있어야 함.위에Book book = new Book();넣어주기.
프로세스실행 중인 하나의 애플리케이션운영체제로부터 실행에 필요한 메모리를 할당받아 코드를 실행스레드: 코드 실행 흐름멀티스레드하나의 프로세스가 두 가지 이상의 작업을 처리할 수 있음.하나의 프로세스 내부에 생성되기 때문에, 하나의 스레드가 예외 발생 시 프로세스 자체가
List를 정렬할 때는 Collection.sort()배열을 정렬할 때는 Arrays.sort()HashSet<데이터타입> 변수명 = new HashSet<데이터타입>();Set 인터페이스에서 지원하는 구현 클래스순서 X, 일정하게 유지 X중복 허용 X하나의
getDeclaredField(String name) name과 동일한 이름으로 정의된 변수를 Field 클래스 타입으로 반환 sourceClosed Scanner 클래스에서 해당 자원이 종료되었는지 저장된 boolean 변수 setAccessible() 필드나
문자열 여러개를 조작해야 할 때! StringBuilder(그냥 String 쓰면 메모리 많이 쓰게 됨.)Stirng은 변경 불가능한 문자열을 생성하지만 StringBuilder는 변경 가능한 문자열을 만들어 줌.사용\-StringBuilder의 객체를 생성한 후, a
해주면 ~를 입력하세요.입력: 이렇게 출력됨!
참조 호출if 문으로만 만들기함수명 짓기커밋메시지기능단위로 쪼개기TDD구글링 잘 하는 법: ex. java date from string yyyy mm dd - stackoverflowparse 파씽제네릭익셉션은 호출하는 쪼ㅓㄱ에 넘겨주겠다.내 메소드를 부르는 누군가가
(문자열을 비교할 때는 ==이 아니라 equals() 메서드를 사용)긴 문자열 조합 값을 추가할 때엔 append() 메서드 값을 사용하기 위해서는 StringBuffer.toString() 메서드\-nextInt() 메서드 사용 시 Integer 범위에서 난수가 나온
Collection 인터페이스는 List, Set, QueueMap의 경우 Collection 인터페이스를 상속받고 있지 않지만 Collection으로 분류배열과 다르게 하나의 컬렉션에 서로 다른 데이터형 저장 가능 + 크기 변경 가능참조 데이터 형만 저장 가능.기본
우테코에서 제공해주신 강의 정리
Model은 Controller와 View에 의존하지 않아야 한다.Model 내부에 Controller와 View에 관련된 코드가 있으면 안 된다.View는 Model에만 의존해야 하고, Controller에는 의존하면 안 된다.View 내부에 Model의 코드만 있을
참고: https://zzang9ha.tistory.com/307 리팩토링 정리
printf 내에서 자주 사용되는 지시자사용: 다양한 형식으로 출력여러 변수를 한문장으로 출력%d : 10진수(decimal) 정수 출력%f : 부동 소수점(floating-point) 출력. %.1f 의 형식으로 소수점 자리수를 지정 (1: 소수점 첫째자리 2: 소수
String 의 static 메서드인 format 메서드: 문자열의 형식을 설정%d (10진수 형식)%s (문자열 형식)%f (실수형 형식)Locale 설정%t (날짜시간 형식)%c (유니코드 문자 형식)%o, %x(8진수, 16진수 형식)예시)double n = 12
MapIterator Class를 사용하여 데이터 꺼낼 때 유용일반적으로 가장 많이 사용하는 Map 객체이다.속도가 빠른 대신 정렬순서는 알 수 없다.숫자 → 영어 대문자 → 영어 소문자 → 한글 순으로 정렬데이터를 넣은 순서대로 꺼냄
콜렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다.각 콜렉션은 그 자체로 포장필터는 또한 스스로 함수 객체새 클래스는 동작 처리 (예시 동작: 두 그룹을 같이 묶는다든가, 그룹의 각 원소에 규칙을 적용)를로 Wrapping -> 그 외 다른 멤버 변수가
자료형이 같다크기가 고정데이터의 추가, 삭제 번거롭다int \[]a = new int\[3];int a\[] = {10,20,30,40,50};자료의 중복을 허용하지 않는다.HashSet : 무작위 값을 담는 setLinkedHashSet : 넣은 순서대로 담는 set
: 두개의 값을 비교하여 int 값으로 반환숫자의 비교 같은 경우는 단순히 크다(1), 같다(0), 작다(-1) 의 관한 결과값을 리턴문자열의 비교 같은 경우는 같다(0), 그 외 양수/음수값 같이 참 재미난 결과를 반환예1)str.compareTo("ab") 의 결과
('소트웍스 앤솔러지'라는 책)규칙 1: 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다.규칙 2: else 예약어를 쓰지 않는다.규칙 3: 모든 원시값과 문자열을 포장한다.규칙 4: 한 줄에 점을 하나만 찍는다.규칙 5: 줄여쓰지 않는다(축약 금지).규칙
대표적으로 중복이 발생하는 부분은 도메인별 CRUD(Create, Read, Update, Delete)메소드Post에 대한 코드뿐 아니라 모든 도메인의 Get, Put, Patch, Delete 요청에 대한 부분이 중복위와 같이 구현하게 되면 Person 객체를 다음
piece 객체가 Empty라는 클래스 타입인지 확인하는 메서드piece가 piece2와 같은 타입의 객체인지 확인하는 메서드단점: instanceof를 사용하는 경우, 각 객체가 무엇인지, 어떤 점수를 돌려주어야 하는지 불필요한 외부의 객체가 그 정보를 알게 됨객체
객체의 인스턴스가 오직 1개만 생성되는 패턴장점메모리: 한번의 new 연산자를 통해서 고정된 메모리 영역을 사용다른 클래스 간에 데이터 공유가 쉽다단점코드 자체가 많이 필요동시성 문제 해결을 위해 syncronized 키워드를 사용해야테스트하기 어렵다: 자원을 공유하
함수형 인터페이스람다식을 사용하기 위한 API인터페이스에 구현할 메소드가 하나 뿐인 인터페이스enum과 함께 사용하면 좋음! new 연산자로 생성한 문자열과 리터럴로 생성한 문자열은 내부의 값은 같아서 equals()는 true를 반환하지만 실제 주소를 비교하는 ==는
\\n 한 줄 띄움\\t 일정 간격 띄움\\" 쌍따옴표 출력System.out.println("\\"Hello,Java\\"");결과: "Hello,Java"%d 정수%f 실수%d 문자%s 문자열순서: %argument_index$widthconversion%와 con
boolean startsWith(String prefix): 비교 대상 문자열이 입력된 문자열 값으로 시작되는지비교 문자열.startWith(체크할 문자열);예)System.out.println(max.startsWith(min));true //출력boolean en
모든 요소들이 매개값(Predicate)으로 주어진 조건을 만족하는지 조사최소한 한 개의 요소가 주어진 조건에 만족하는지 조사모든 요소들이 주어진 조건을 만족하지 않는지 조사출력2의 배수? true3의 배수가 하나라도 있나? true3의 배수가 없나? false
Java ArrayList 조건 삭제 'removeIf'arrayList 경우 내가 삭제하고 싶은 애를 삭제하고 싶은 경우for문을 돌리고, if문을 통해 삭제하는 경우가 있었다.하지만 자바8부터 생긴 removeIf를 사용하면 람다식을 이용하여 간단하게 삭제할 수 있
요소의 출력 : forEach()요소의 소모 : reduce()요소의 검색 : findFirst(), findAny()요소의 검사 : anyMatch(), allMatch(), noneMatch()요소의 통계 : count(), min(), max()요소의 연산 : s