분류 전체보기 (66) 썸네일형 리스트형 [TIL] 210805 1. Collection 2. Iterator 3. Stream 4. Optional Collection 여러 데이터의 묶음을 Collection이라고 한다. Collection은 추상체 Collection의 구상체 : List, set List의 구상체 : LnkedList, ArrayList, Vector, Stack Set의 구상체 : HashSet Iterator 여러 데이터의 묶음을 풀어서 하나씩 처리할 수 있는 수단을 제공한다. next()를 통해서 다음 데이터를 조회할 수 있다. 앞 쪽 방향으로 방향을 바꿀 수 없다. --> 이전 데이터 조회 불가 Stream Java 8 이상에서 부터 사용 가능. 데이터의 연속을 나타냄 Collections.stream() 을 제공, stream() 메서드.. Object 클래스 - 메서드 Object클래스 Object 변수는 모든 자바 클래스의 부모 클래스이다. 때문에 모든 클래스는 Object의 메서드를 사용할 수 있는데, 모든 클래스가 공통으로 포함하고 있어야 하는 기능을 제공하기 위해서 존재한다고 생각해도 무방하다. String toString() 인스턴스에 대한 정보를 문자열로 반환한다. 해당 메소드는 기본적으로 각 API 클래스마다 자체적으로 오버 라이딩을 통해 재정의되어 있기 때문에 활용도가 높다. newObject.toString(); protected Object clone() 해당 인스턴스를 복제하여, 새로운 인스턴스를 생성해 반환한다. 하지만 필드의 값만을 복사하므로, 필드의 값이 배열이나 인스턴스면 제대로 복제할 수 없다. 따라서 클래스에서 Cloneable 인터페이스.. Constant Pool Constant pool은 리터럴 상수 값을 저장하는 곳이다. String a = "String Pool"; String b = "String Pool"; String c = new String("String Pool"); System.out.println((a==b)?true:false); //true System.out.println((a==c)?true:false); //false java에서 일반적으로 문자열을 비교할 때 == 연산을 사용하지 않고 .equals()를 사용하여 문자열이 일치하는지 비교한다. 그 이유는 java에서 == 연산은 객체의 주소값을 비교할 때 사용하기 때문이다. 하지만 예시 코드의 연산 결과는 true이다. 그 이유를 알기 위해서는 Constant Pool과 literal.. StringBuffer / StringBuilder의 차이점 StringBuffer 와 StringBuilder StringBuffer와 StringBuilder는 둘다 문자열을 다루는 클래스입니다. String으로 문자열을 저장하여 사용할 경우, 문자열에 변형이 있을 때 마다 새로운 Constant가 생성되는 문제가 있기 때문에 메모리 관리에 문제가 생기게 됩니다. 이를 방지하기 위한 방법으로 StringBuffer 와 StringBuilder 두가지 클래스를 사용합니다. 두 클래스는 가변성을 가지기 때문에 .append(), .delete() 메소드를 이용해 문자열의 수정이 가능합니다. StringBuffer, StringBuilder의 공통 주요 메소드 append(값) StringBuffer, StringBuilder 뒤에 값을 붙인다 insert(인덱스,.. [TIL] 210804 1. interface의 기능 2. default Method 3. Functional Interface 4. Lambda 표현식 1. Interface의 기능 (1) 구현을 강제 인터페이스 : 모든 메서드가 추상 메서드로 구성된 클래스 한 클래스에 여러개의 implements를 가질 수 있음 구현 부분이 없으므로 implement 후에 꼭 구현 부분을 구현해야 함 (2) 다형성을 제공 (3) 결합도를 낮추는 효과 (의존성을 역전) //1. Main m = new Main(); m.myRun(); m.yourRun(); //2. MyRunnable mm = new Main(); mm.myRun(); //mm.yourRun(); //3. YourRunnable mmm = new Main(); //mmm.m.. [TIL] 210803 1. 객체지향 프로그래밍 2. 객체지향의 특성 3. UML 4. 객체지향 설계의 5가지원칙 1. 객체지향 프로그래밍 객체지향 프로그래밍 : 프로그램을 객체로 구성하는 것 - 프로그램이 거대화 되면서 등장함 - 큰 프로그램을 만드는 방법으로 작게 나눠서 만든 후 합치는 방법을 택한 것 객체란? - 개념적 용어 : 객체 - 기술적 용어 : class, instance - 객체는 각각 작은 기능을 수행하고 객체가 모여서 큰 프로그램이 됨 즉, 객체지향을 잘 설계하는 법은 일(기능)을 잘게 쪼갠 후 객체에게 위임하고, 서로 협력하게 만드는 것이다. - 객체를 서로 구분할 필요가 있다. - 구분하는 기준 : Type 2. 객체지향의 특성 (1) 캡슐화 - 캡슐화는 2가지의 의미가 있다. - 1. 완성도가 있다. .. 자바 환경설정 - JDK 버전 바꾸기 Java를 공부하면서 eclipse, vscode, sts와 같은 툴을 사용해봤는데, 짧은 기간에 많은 툴을 써본 만큼 환경설정하면서 많은 오류들이 발생했었어요. sts를 새로 설치하고나서 코테공부를 위해 vscode를 켰더니 실행이 안됐던 기억이 새록새록 나는데 이번에 데브코스를 시작하면서 새로운 마음가짐으로 JDK 버전설정을 제대로 다시 해보기로 마음먹었습니다..!! - 문제점 제 JDK 환경설정의 문제점은 1. 버전이 3가지가 설치되어있다 2. jdk가 아닌 jre로 실행된다 3. 실행하고싶은 버전으로 바뀌질 않는다 였습니다. 정말 지금봐도 환경설정에 대해서 하나도 모르는 채로 java 언어 공부만 했던 것 같네요 원래 설치되어있던 버전은 oracle JDK 16버전과 8버전 이었습니다. - Ope.. [TIL] 210802 1. Gradle 환경설정 및 실행 2. InteliJ 단축키 3. 초보 개발자가 알면 좋을 정보들 1. Gradle 실행 spring gradle 프로젝트를 cli 환경에서 생성 및 실행하는 방법 - 프로젝트 생성 1. 생성하고자 하는 위치에 빈 폴더 생성(ex> mkdir gradle) 2. gradle init 3. 타입 설정 -> 프로젝트 타입 : application -> 언어 : java -> 멀티 프로젝트 구성 여부 : no -> script dsl은 어떤 것? : Groovy -> 테스트 : Junit Jupiter -> 패키지 이름 설정 : com.programmers.java 정상적으로 생성한 후 tree 명령어를 이용해 전체 프로젝트의 계층구조를 볼 수 있다. tree.com //a .. 이전 1 ··· 4 5 6 7 8 9 다음