프로그래머스 - 기초트레이닝 2일차
·
Java & Spring/코딩테스트
코드 처리하기사용명령어 : for문                      switch문                     if문등차수열의 특정한 항만 더하기 사용명령어 : for문                      if문                     Integer.parseInt(str);                     Integer.toSring(a);다른방법 : - 어짜피 included의 요소들이 boolean값이므로 if에 바로 대입하여 true 경우만을 answer에 더해주면됨주사위 게임2원소들의 곱과 합이어 붙인 수마지막 두 원소- 사용명령어 : Array.copyOf(arr,n); → 배열 arr의 복사본 크기 n의 배열을 생성수 조작하기 1 다른방법 :  사용명령어 : c..
프로그래머스 - 기초트레이닝 1일차
·
Java & Spring/코딩테스트
문자열 출력하기- 사용명령어 : System.out.println(); → 출력    a와 b 출력하기- 사용명령어 :  System.out.println(); → 출력                        ※ 출력명령어 ( ) 내에서                            "a"는 문자열 a를,                            a는 int a를 의미,                            \n은 줄바꿈을,                            +연산자는 각 단어들을 조합하여 출력문자열 반복해서 출력하기- 사용명령어 : for문(반복)대소문자 바꿔서 출력하기- 사용명령어 : str.length() : 문자열 str의 길이를 int값으로 반환        ..
프로그래머스 - 배열의 원소만큼 추가하기
·
Java & Spring/코딩테스트
배열{arr}을 입력배열의 길이가 배열{arr}의 원소의 총합크기를 가진 새로운 배열 생성이중 for문을 통해 배열{answer}에 배열{arr}의 k번째 인덱스를 arr[k]번만큼 추가배열{answer}의 인덱스 초기화 값을 for문 밖에 두어 계속 0부터 시작하는것을 방지- 풀이중 문제점 :위 코드에서 처음에 두번째 for문에서 j값이 계속 0으로 초기화 돼서 풀이에 어려움이 있었음answer[0]~answer[4]까지 arr[0]인 5를 입력 한 후j = 0으로 초기화 돼어 다시 answer[0]이 arr[1]인 1으로 초기화돼고다시 j = 0으로 초기화 후 answer[0]~answer[3]까지가 arr[2]인 4로 채워지게됨결과 {4,.4,4,4,5,0,0,0,0,0} 출력→ 해결방법 : 초기화..
생활코딩 - Java(Collection framework)
·
Java & Spring/Java
□ Collection framework 구성  - set : 중복을 허용하지 않음(순서가 보장되지 않음)- list : 중복 허용(순서 보장)□ ArrayList배열은 크기를 한번 지정하면 크기를 초과할 수 없지만ArrayList는 크기를 미리 지정하지 않기 때문에 얼마든지 많은 값을 저장할 수 있다.구분배열ArrayList값의 개수.length.size출력[인덱스번호].get(인덱스번호) ※ ArrayList의 메소드 add의 입장에서는 인자로 어떤 형태의 값이 올지 알 수 없다.    그렇기 때문에 모든 데이터 타입의 조상인 Object 형식으로 데이터를 받고 있다.   따라서 ArrayList 내에서 add를 통해서 입력된 값은 Object의 데이터 타입을 가지고 있고, get을 이용해서 이를 꺼..
생활코딩 - Java(참조)
·
Java & Spring/Java
□ 복제 □ 참조 ex) 메모장으로 예를 들었을 때 '복사본'의 경우 서로 복제된 상태로 더이상 연관이 없지만 '바로가기'의 경우 원본 '메모장'을 참조한 상태이므로 상호작용이 발생함 또한 복사의 경우 용량이 2배가 되는 것 이지만 바로가기는 훨씬 작은용량을 차지하게 됨 ex2) 아래 코드로 다시한번 참조에 대해 정리해보면 1) runValue 메소드부터 확인해보면 기본변수 a에 1이라는 값이 들어있다. 그다음 _value라는 메소드를 호출 하는데 해당 메소드의 매개변수 b에 a를 넣는 상황이다(int b = a;). 그 후 변수 b의 값을 2로 바꾸더라도 a에 영향을 주지 않는다. → runValue, 1 2) A a = new A(1); : id 값이 1인 새로운 A 객체를 생성하고, a 변수가 이 ..
생활코딩 - Java(상수와 enum)
·
Java & Spring/Java
□ enum enum은 열거형(enumerated type)이라고 부른다. 열거형은 서로 연관된 상수들의 집합이라고 할 수 있다. 위의 예제에서는 Fruit가 말하자면 열거인 셈이다. - enum의 특징 코드가 단순해진다. 인스턴스 생성과 상속을 방지한다. 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 나타낼 수 있다. □ enum 생성자 위 코드에서 APPLE("red")에서 ( )는 생성자를 호출 그 생성자를 Fruit(String color)의 매개변수 color에 들어감 this.color = color에서 color으로 들어감 this.color은 다시 전역변수 public String color으로 들어감 출처 : 생활코딩 유튜브 : https://www.youtube.co..
생활코딩 - Java(Object 클래스)
·
Java & Spring/Java
□ Object 자바에서 모든 클래스는 사실 Object를 암시적으로 상속받고 있는 것이다. 그런 점에서 Object는 모든 클래스의 상위 클래스라고 할 수 있다. 그 이유는 모든 클래스가 공통으로 포함하고 있어야 하는 기능을 제공하기 위해서다. □ to String 객체를 문자로 표현하는 메소드 클래스 Calculator에 toString을 재정의(overiding)했다. 그리고 인스턴스를 System.out.println의 인자로 전달하니까 toString을 명시적으로 호출하지 않았음에도 동일한 효과가 나고 있다. toString을 직접 호출하지 않아도 어떤 객체를 System.out.print로 호출하면 자동으로 toString이 호출되도록 약속되어 있다. □ equals equals는 객체와 객체..
생활코딩 - Java(예외 Exception)
·
Java & Spring/Java
□ 예외란? 예외(Exception)란 프로그램을 만든 프로그래머가 상정한 정상적인 처리에서 벗어나는 경우에 이를 처리하기 위한 방법 □ try - catch ex) 0으로는 나눌 수 없기 때문에 오류가 발생하게 되는데 try - catch를 통해 오류 내용을 출력함 ※ e.메소드 e.getMessage(); → by zero 오류에 대한 기본적인 내용을 출력해준다. 상세하지 않다. e.toString() → java.lang.ArithmeticException: / by zero e.toString()은 e.getMessage()보다 더 자세한 예외 정보를 제공한다. e.printStackTrace() 메소드 getMessage, toString과는 다르게 printStackTrace는 리턴값이 없다...
생활코딩 - Java(다형성)
·
Java & Spring/Java
□ 메소드와 다형성 다형성이란 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미한다. 같은 메소드 명 'a'지만 매개변수 타입이 int와 String차이로 아래 o.a(1);와 o.a("one");가 오류없이 작동한다. □ 클래스와 다형성 위 코드에서 obj.y();은 오류가 발생한다. 그이유는 A obj = new B(); 에서 클래스 B를 new를 통해 인스턴스화 하여 변수 obj에 담을 때 타입을 클래스 A로 정의했기 때문이다. 클래스 A에는 메소드 y가 정의되지 않았기 때문에 오류가 발생한다. 그러나 하위 클래스에서 메소드를 오버라이딩 하게되면 해당 메소드가 호출이된다. 위 예제에서 System.out.println(obj.x()); , System.out.printl..
생활코딩 - Java(abstract,final,interface)
·
Java & Spring/Java
□ abstract(추상 메소드) 추상 클래스는 상속을 강제하기 위한 것이다. 즉 상위 클래스에는 메소드의 시그니처만 정의해놓고 그 메소드의 실제 동작 방법은 이 메소드를 상속 받은 하위 클래스의 책임으로 위임하고 있다. abstract class A{ public abstract int b(); public void d(){ System.out.println("world"); } } 메소드 b의 선언 부분에는 abstract라는 키워드가 등장하고 있다. 이 키워드는 메소드 b는 메소드의 시그니처만 정의 되어 있고 이 메소드의 구체적인 구현은 하위 클래스에서 오버라이딩 해야 한다는 의미다. 이렇게 내용이 비어있는 메소드를 추상 메소드라고 부른다. 추상 메소드를 하나라도 포함하고 있는 클래스는 추상 클래스..