본문 바로가기

개발자로 가는 길(국비지원과정)/1. Java45

[자바복습 Day10] Collection, equals와 HashCode, 자바에서는 다중 상속은 불가, 다중구현은 가능, 함수형 인터페이스, Comparator, 람다식, Collection의 List, Set, Map 모두 인터페이스이다. ArrayList Set set = new HashSet(); Hash의 장담점 : 데이터를 찾는 속도가 매우 빠르지만 데이터를 쌓아두기에는 좋지 않다. : 검색이 빈번하게 일어나는 작업이라면 hash를 이용하면 좋다. : Collision이 자주 발생하는 것이 단점, Collision 주소가 같은 값이 안나오게 하기위해서는 메모리가 커야 한다. Map : 데이터를 집어 넣을 때, Key와 Value 쌍으로 넣는다. : Key는 중복되면 안된다. : HashTable, HashMap : 데이터 넣기 put, 빼기 get, 삭제 remove : 파이썬에서는 딕셔너리와 유사하다. 더보기 Map map = new HashMap(); map... 2022. 1. 11.
[자바복습 Day09] 컬렉션 ArrayList, Map, Set, CRUD, 본격적으로 UI, Service, VO를 만들어 코딩 시작 우리는 앞으로 수많은 데이터를 다루게 됨. Collection는 java.util.*안 에 들어가 있고, 종류는 List, Map, Set가 있다. -List : 데이터를 선형으로 수집하는 형태 ArrayList, Vector CRUD Create : add Read : iter update : index, remove, add delete : remove 데이터 넣기 add, 데이터 삭제 remove(인덱스 혹은 문자열로도 삭제할 수 있다. ), clear(리턴타입이 void이기때문에 아무것도 받을 수 없다.) 데이터 변경 직접적인 변경은 안되고 수정할 데이터의 인덱스를 찾아 삭제 후 그 위치값(인덱스)를 보존해 넣는 방법뿐, set 더보기 List list = new ArrayList(); Syste.. 2022. 1. 10.
[자바복습 Day08] API, StringTokenizer, (auto boxing, unboxing을 하는 이유), Exception 예외처리, 제네릭, 컬렉션 자바에서 기본이 되는 PACKAGE java.lang java.lang 안에 들은 패키지는 따로 import하지 않아도 된다. Wrapper : API의 묶음 ex) Integer.parseInt ==> 구문분석해서 int로 바꿀 수 있는지, 이것을 형변환이라고 하지 않으며 parsing 시킨다고 하는 것이 더 올바른 표현 String는 immutable한 데이터, 수정불가능, JVM에 무리가 되기 때문에 String를 수정할 일이 많으면 StringBuffer를 사용하는 것이 좋다. StringBuffer는 수정하는 메소드가 많다, 메모리공간을 여유롭게 잡음, ex) append, insert split이 불편하다면 StringTokenizer을 사용, 구분자만 주면 알아서 잘라줌 Object toSt.. 2022. 1. 6.
[자바복습 Day07] this, super, 참조변수의 하향캐스팅, 동적바인딩, 인터페이스 다중구현, String메소드, String과 StringBuffer, String.format 상속(기능을 확장 extends)을 한다는 것은 메소드의 기능을 상속한다는 뜻 this 현재 객체 super 상속을 했을 시 상위 클래스를 지칭하는 용어 참조변수의 하향캐스팅 (클래스) 참조변수 ==> 하향캐스팅 더보기 public static void init(Bread bread) { if(bread instanceof Bread) { bread.setName("단팥빵"); bread.setPrice(500); } if(bread instanceof Cake) { Cake cake = (Cake)bread; //하향캐스팅 cake.setName("3단 케잌"); cake.setPrice(35000); cake.setSize(150); } if(bread instanceof Roll) { Roll ro.. 2022. 1. 5.
[자바복습 Day06] 자바의 특징, OOP, 캡슐화, 추상화, 생성자의 존재 이유, String의 기본값(null), 향상된 for문, package, is-a관계, has-a관계, 연산자 instanceof, 다형성 OOP언어의 특징 1) 캡슐화 2) 상속 : 기존에 존재하는 클래스(상위, 부모 클래스, super class하위, 자식, 파생, sub class)를 확장해서 사용하는 개념 : extends라는 키워드로 public, protected한 요소들을 상속받아 확장한다. : private, 생성자는 상속되지 않는다. : 메소드(기능)를 상속하기 위해 상속이 사용되어 진다. : (부모)생성자는 상속되지 않기 때문에 super();를 사용한다. : super();는 부모의 기본생성자를 호출함! 상속받은 public한 메소드 기능을 확장할 수 있다. ==> overriding 상속받은 메소드가 마음에 들지 않을 경우 리폼해서 사용하는 것이 오버라이드라고 한다. (재정의) 오버라이딩의 규칙 -메소드 시그니쳐가 같아.. 2022. 1. 4.
[자바복습 Day05] 프로그래밍의 흐름(thread), 객체지향언어(절차-> 구조-> 객체지향), 자바의 변수(지역변수, 인스턴스변수, 클래스변수의 차이), 생성자의 역할, 자료형의 기본값 예전의 프로그래밍은 절차적이었지만 프로그램이 커질수록 문제가 커져서 문제발생 절차적(문제: 스파게티코드) -> 구조적(반복적으로 사용하는 블럭을 따로 빼는 함수, 메소드) -> : [(접근지정자/ 생략가능)] [키워드] return type 메소드명([파라미터 변수 선언]){ .... [return 값, 식, 변수]; } 더보기 //메소드를 만드는 문법 규칙 //define method public static void methodA() { System.out.println("메소드 A입니다."); } : { } 생략 불가 : 반복되는 코드를 작성 후 return : 메소드명은 변수명 규칙과 동일 : 프로그램의 시작은 main이며 main블럭 이후에 메소드를 작성! : 메소드는 클래스 안에 만들어 놓고 .. 2022. 1. 3.
[자바복습 Day04] long형, 지역변수, 이중for문, 배열, 유니코드, 대문자, 소문자를 서로 바꾸기, 다차원배열 기본자료형(stack영역) : byte, short, int(4 : 32bit), long(8 : 64bit) long num1 = 32; long num1= 32L; ==> 두 개가 저장되는 것이 다르다. float num2 = 3.15; (X) float num2 = (float)3.15; (O) float num2 = 3.15F; (O) ==> 캐스팅을 해주거나 float을 나타내는 F를 적어줘야 오류가 나지 않는다. 참조자료형(heap영역) Scanner sc; % 연산자 순위가 높음 ! 지역변수 local variable : 특정 블럭 { } 안에서 선언된 변수, 그 지역 내에서만 사용 가능 ex) 온통대전 지역변수를 바깥에서 사용하고 싶으면 바깥에 따로 선언해서 사용해야하며 for문 안 변수와.. 2021. 12. 30.
[자바복습 Day03]printf 사용, Switch, equals, 반복문 System.out.printf("문자열 %n", 값을 가져올 변수); f 실수 d 정수 s 문자열 c 문자 2개 n new line 줄바꿈 double형일 경우, f를 사용, 소수점 6자리 이하는 찍지 않는다. %.17f %와 f의 사이의 숫자는 소수점 아래 어디까지 표시할지를 정하는 숫자수를 의미한다. 소수점 2자리까지 나타낸다면 %.2f라고 표현하면 된다. %10.3f 총 10칸 중 소수점 이하 3자리까지 표현하라는 표현 System.out.printf("%f, %d, %s, %c", 42.195, 48, "문자열", '#'); Ex) System.out.printf("당신의 키는 %.2f(cm), 몸무게는 %.2f(kg), bmi 결과는 %.2f, 결과는 %s입니다. %n", height, wei.. 2021. 12. 29.
[자바복습 Day02] 스택, 힙, 자바의 연산자(삼항연산자, 논리연산자), buffer를 지우기 위해 nextLine()을 사용, if문, white space 기초자료형은 stack에 저장, 참조자료형(ex String)은 데이터는 다른 곳에 있지만 위치의 주소만 힙 heap 영역 저장된다. String str = "가"; str은 heap 영역에 저장됨 *참조자료형 : 다른 영역에 참조되는 데이터를 가짐 초기화은 처음에 변수에 값을 대입하는 것, 대입(assignment)은 초기화 이후 값을 넣는 것을 말한다. 연산은 메모리에서 하지 않고, 연산장치 CPU에서 함 나머지 연산자%는 피연산자가 반드시 정수여야만 한다. 실수도 가능하지만 가능한 맞는지 확인하는 것이 좋다. : 그리고, 이거나 : &&(and), ||(or) : &&(and) 특정 값이 범위에 들어가 있는 것을 확인할 때 사용 자바에서는 10 파이썬에서는.. 2021. 12. 28.