Backend
Java8
1. 람다 표현식(lambda expresssion) : 함수형 프로그래밍(익명함수) Q. 함수랑 메소드랑 다른가? 함수 : 특정 작업을 수행하는 독립적인 존재(알고리즘 할 때 따로 구현하는 function() 생각하면 될 듯) 메소드(클래스함수) : 클래스, 구조체, 열거형에 포함되어 있는 함수, 해당 클래스에 대한 객체가 생성되어 사용 가능 ★ 자바에서는 클래스의 선언과 동시에 객체를 생성하므로, 단 하나의 객체만을 생성할 수 있는 클래스를 익명 클래스라 함 따라서 자바에서 람다 표현식은 익명 클래스와 같다고 할 수 있다 new Object() { int min(int x, int y) { return x x x < y ? x : y; // 추상 메소드의..
Java 순열과 조합
package practice; import java.util.Arrays; import java.util.Scanner; public class PermutationTest1 { static int n; static int r; static char[] numbers; static boolean[] visited; static int res; static char[] data = {'a','b','c','d','e'}; //nPn //nPr public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); r = sc.nextInt(); res = 0; numbers= new char[r]; vis..
Java 코딩테스트를 위한 문법
static 정적 변수의 속도에 대한 고찰 static 변수를 만들어서 참조하면 지역변수(파라미터)보다 시간이 많이 소요. 시간에 예민한 문제들은 int 변수 1개라도 파라미터로 선언해주자 Scanner sc = new Scanner(System.in); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) sc.nextByte()// byte 형 입력 및 리턴 sc.nextShort()// short 형 입력 및 리턴 sc.nextInt()// int 형 입력 및 리턴 sc.nextLong()// long 형 입력 및 리턴 sc.nextFloat()// float 형 입력 및 리턴 sc.nextDouble()// double ..
Java 직렬화
books.dat 이라는 파일을 읽어들일때 직렬화를 해서 객체에 할당을 하려고 한다. class Person implements java.io.Serializable{ String transient name; int age; public Person(String name, int age) { this.name = name; this.age = age; } } 객체를 만들 때 보통 "이지원", 18이라고 하게되면 알맞게 저장이 되지만 위처럼 name에 대해서 직렬화를 시키지 않겠다라고 선언해버리면 name에 대한 부분이 저장이 되지 않는다. File.separator File.separator는 프로그램이 실행 중인 OS에 해당하는 구분자를 리턴한다. File file = new File("/tmp/" +..
Java 예외 처리
package exception; public class MainExceptionHanding { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; int x = 10; for (int i = 0; i
Java Generic, Collection에 대해
제네릭(Generic) 만약에 우리가 어떤 자료구조를 만들어 배포하려고 한다. 그런데 String 타입도 지원하고싶고 Integer타입도 지원하고 싶고 많은 타입을 지원하고 싶다. 그러면 String에 대한 클래스, Integer에 대한 클래스 등 하나하나 타입에 따라 만들 것인가? 그건 너무 비효율적이다. 이러한 문제를 해결하기 위해 우리는 제네릭이라는 것을 사용한다. 제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 큐랑 스택은 LIST에 포함 Queue 생성 JAVA에서 자료구조 Queue 를 생성하는 방법은 아래와같다. import java.util.Queue; Queue queue=new LinkedList(); Queue queue= new Li..