JAVA
-
[JAVA] 람다식이란? 그리고 사용법!JAVA 2018. 11. 11. 16:41
람다식(lambda expression)이란? => 메서드를 하나의 '식'으로 표현한 것. JDK1.8부터 람다식이 도입됨으로서 JAVA는 객체지향언어이면서 동시에 함수형언어가 됨. 메서드를 람다식으로 표현하면서 메서드의 이름과 반환값이 없어지므로 람다식을 익명함수라도 한다. 게다가 모든 메서드는 클래스도 만들어야하고, 객체도 호출해야 사용할 수 있지만 람다식자체만으로도 메서드의 역할을 수행 할 수 있음. 그리고 람다식은 메서드의 매개변수로 전달되어지는 것이 가능함 기본문법12345(매개변수선언) -> { //내용 } cs 1(a, b)-> a>b ? a:bcs 반환값이 있는 메서드의 경우 return문 대신에 식으로 대신 할 수 있음 매개변수타입은 추론이 가능한 경우 생략 할 수 있다이게뭔말이냐면 이런..
-
[JAVA] LocalDate, LocalDateTime 사용법JAVA 2018. 11. 5. 22:50
1234567891011121314151617181920212223242526272829303132333435package test_java; import java.io.IOException;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.Period;import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) throws IOException { System.out.println("오늘 날짜 : " + LocalDate.now()); // 2018-11-05 System.out.println("지금..
-
[JAVA] final 멤버 변수는 상수가 아니다JAVA 2018. 10. 25. 22:24
멤버 변수의 final을 "상수"라고 생각하는 개발자분이 게셨다. final로 선언한 이유를 상수로 사용하기 위해 선언했다는 답변은 정확한 답은 아니다. final은 정확히 엄밀히 말하면 "딱1번 값을 할당 할 수 있다"이다. 아래 예제를 보자 12345678910111213141516171819package test_java; public class Test { final String userName; public Test(String name) { this.userName=name; } public String getUserName() { System.out.println(userName); return USER_NAME; } } Colored by Color Scriptercs 12345678910..
-
[소스코드 보안 취약점]적절하지 않은 난수 값 사용JAVA 2018. 10. 21. 23:12
BAD1234567891011package test; public class Test { public static void main(String[] args) { int random= (int) (Math.random()*10); //0~10 System.out.println(random); }}Colored by Color Scriptercs Math.random()이 안전하지 않은 이유 => seed 값이 없기 때문에 난수가 전체적으로 고르게 분포하지않음. GOOD1234567891011121314151617181920 import java.util.Date;import java.util.Random; public class Test { public static void main(String[] ar..
-
[JAVA] 객체 정렬 ComparatorJAVA 2018. 8. 29. 12:37
* Comparator=> 기본정렬기준 외에 다른 여러 기준으로 정렬하고자 할때 사용하는 클래스 단순 리스트를 정렬할때 보통 Collections.sort()를 사용한다 //오름차순 ArrayList list = new ArrayList();list.add("d");list.add("c");list.add("b");list.add("a");Collections.sort(list); 출력시: abcd 하지만 개발을 하다보면1234567891011public class User{ private String name; private int grade; private int no; //생략.... } cs 이러한 형태의 VO를 List에 담기도 한다 만약에 아래와 같은 코드가 있다고 하자List list = m..