목록코딩 공부/Java (19)
ballqs 님의 블로그

오늘 정리할 내용은 함수형 인터페이스이다.왜냐하면 람다식을 사용하려다 감이 안잡혀서 이래저래 알아본 결과@FunctionalInterface 를 사용했더니 해결 가능해져서 이다. 우선 @FunctionalInterface 어노테이션 은 자바8에서 추가되었다. 함수형 인터페이스(Functional Interface) 는 추상 메서드가 딱 하나만 존재하는 인터페이스를 말한다.※추상 메서드란? 구현이 안된 메서드이며 abstract 키워드를 앞에 붙이며 아래와 같이 사용abstract void myMethod(String str); 그리고! 이러한 함수형 인터페이스에 작성된 추상 메서드를 람다식으로 접근하여 작성할수 있다. 간단한 예시로 살펴보자! Interface Code@FunctionalInterfac..

자바 8버전으로 넘어오면서 자바로 크게 많이 변경되었다.예전에 배웠을때랑 크게 차이가 나는게 있는데 Javascript에서 사용했었던 람다식으로 작성이 가능해졌다는 것이다.그렇게 시대에 맞게 진화했기에 지금의 자바가 된게 아닌가 싶긴 하다.그러면 람다를 어떻게 사용해나갔는지 살펴보자 람다식이란?쉽게 말해서 메서드를 "하나의 식"으로 표현한 것이다.훨씬 간략하게 표현이 가능하게 되며, 메서드의 이름과 반환값이 없어지므로 "익명함수" 라고도 한다.public class B() { public boolean flag(int num) { boolean f = true; // 내용 return f; }}// 사용할때B b = new B();if (b.flag(50)..

다형성(polymorphism)이란?다형성(polymorphism)이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다.예를 들어 강아지나 고양이의 경우 둘 다 포유류라고 할 수 있다.자바에서 다형성은 한 타입의 참조 변수를 통해 여러 타입의 객체를 참조할 수 있도록 하는 것이다. 즉 부모 클래스를 통해 자손 클래스의 참조 변수를 다루거나 부모 클래스가 가지고 있는 동일한 이름의 오버라이딩하여 재작성한 메소드를 참조한다.다형성의 장점같은 메서드 이름이지만 여러 다른 실행 결과가 나옴객체지향 프로그래밍의 가장 큰 특징 중 하나하나의 부모클래스로 관리가 가능해 유지보수가 편리하다코드 예public class Main { public static void main(String[] args) ..

오늘은 자바 파일을 생성하면 만들어지는 구조와 온갖 배운 내용들을 정리해볼 생각이다. Main.java 파일을 생성하면 아래와 같다.public class Main { public static void main(String[] args) { // 내용 }} public 이란? 접근제어자의 종류중 하나로 언제 어디서든 접근 가능하다는 것을 의미한다. 다른 종류로는 private , protected , default 등이 있다. 단! class 앞에는 public 과 default 만 사용 가능하다.더보기public : 언제 어디서나 접근 가능 private : 같은 클래스 내에서만 접근 가능 protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근..

JVM이란?Java Virtual Machine의 약자로 "자바 가상 머신"이라는 뜻여러가지 기기 위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어 주는 것을 의미바이트 코드내가 작성한 Java 파일을 운영체제가 읽을 수 있는 클래스 파일로 컴파일(Java 컴파일러)을 통해 변환한 코드 인터프리터운영체제가 읽은 바이트 코드를 기계가 실행할 수 있는 기계어로 번역 JIT 컴파일러인터프리터의 효율을 높여주는 서포터 해석기 메모리 영역운영체제로부터 JVM이 할당받은 메모리 영역 클래스 로더JVM으로 바이트 코드를 불러와서 메모리에 저장함 가비지 컬렉터메모리 영역에 안쓰는 데이터를 주기적으로 청소해줌 ※Runtime 시스템은 프로그램이 실행 중인 상태를 관리하는 시스템

프로그래머스의 N개의 최소공배수라는 문제를 풀면서 알게된 내용들이 있다.분명 어렸을때 학교를 다니면서 배웠던 내용인 최대 공약수와 최소 공배수였지만 이부분을 알고리즘으로 풀어내고자 하니 규칙을 찾아내기 보다는 나만의 풀이과정을 통해 풀게 되었다. 소인수분해를 통해 주어진 각 숫자의 최대 제곱을 구하여 풀어내는 방법이였다. 나의 풀이 방법과 동시에 최대 공약수 , 최소 공배수는 어떻게 구현해가는지 정리해보자최대 공약수(GCD) 알고리즘최대 공약수(Greatest Common Divisor)란? 두 수 이상의 여러 수의 공약수 중 최대인 수를 가리킨다. 12의 소인수분해 해보면 2 * 2 * 3이 된다.18을 소인수분해 해보면 2 * 3 * 3이 된다.두 수에서 소인수분해 후 주어진 숫자가 일치하는 것에서 ..
알고리즘 문제를 풀다가 높은 확률로 겪는 문제가 거의 이부분이였다.수식에는 뭔가 틀린게 없는데 테스트케이스를 통과 못하는 경우!계산된 수치가 Int가 감당할수 있는 크기를 벗어난 경우이다.그래서 java에 다른 숫자 타입이 많지만 문제 풀면서 사용한 int long BigInteger에 대해서 작성해본다. 차이점 intlongBigInteger저장 공간4 byte8 byteMinimum 70 byte데이터 범위약 -21억 ~ +21억약 -900경 ~ +900경Infinity타입기본타입기본타입참조타입 intint는 산술 연산이 가능한 정수값을 저장하는 자료형이다. 기본 사용// 아무런 선작업이 필요가 없다.int num = 10; int -> longint i = 4;long l = Long.valueO..
Set 이란?Set은 중복 요소를 허용하지 않는 Java Collection Framework의 인터페이스입니다. Set 특징중복 요소를 허용하지 않습니다.순서가 없습니다.엑세스가 빠릅니다.indexing이 없습니다.primitive type가 없습니다. Set 사용법import 작성import java.util.Set;import java.util.HashSet; 사용법Set set= new HashSet(); 값 추가Set set= new HashSet();set.add("a");set.add("a");System.out.println(set); // "a"위 예제에서 “a”를 두번 추가를 해보고 출력하면 중복이 제거된 상태에서 출력되는 것을 볼 수 있다. 값 제거set.remove("a");Sys..
Javascript나 php에서는 간단하게 정렬기능이 있고 웹에 검색만해도 쉽게 나오는데 Java의 경우에는 여러개가 나오는 것과 동시에 어떤것은 에러가 나면서 동작안되는 경우가 생기곤 한다. 그래서 정리해보고자 한다. 1.Arrays.sortArrays.sort는 java.util.Arrays에 포함되어 있으며 import하여 사용 가능하다.String ,int 등 배열을 정렬할때 사용한다. 오름차순import java.util.Arrays;class Solution { public void solution(){ int[] arr = {1, 2, 3, 1, 2, 3, 1}; for(int i = 0; i 오름차순은 만약 각종 Type들이 섞여 있을시 숫자 > 대문자 >..