본문 바로가기
반응형

Android 개발/Java, Java814

Java 8의 메서드 참조(Method Reference) 문법 이해하기 오늘은 Java8의 메소드 참조 문법에 대해서 알아보겠습니다.이 문법은 RxJava에서도 사용가능한데,이를 사용하면 아주 간결한 표현이 가능해집니다. 1. 메소드 참조이미 이름이 있는 메서드를 람다 표현식으로 사용할 수 있게 해주는 문법입니다.메소드 참조 문법은 '클래스::메소드' 순서로 적어서 사용하는데요.예를 들어, String 클래스의 정적 메소드인 toUpperClass는 아래와 같이 사용할 수 있습니다. String::toUpperCase  그런데 잘 보면, 클래스와 메소드만 있고,인자로 사용되는 변수명 자체가 사라진 것을 볼 수 있습니다. 보통 람다식에서라면 아래와 같이 변수명이 하나 필요한데요.s -> s.toUpperCase() 메소드 참조를 이용하면,컴파일러가 컨텍스트를 통해,필요한 매개.. 2024. 11. 2.
Java에서 랜덤 함수를 이용해 난수 얻기 프로젝트를 하다 보면, 랜덤하게 무언가를 출력해주어야 할 때가 있습니다. 프로젝트에서 바로 사용 하려면 갑자기 생각이 않나기도 하는데요. 오늘은 Java의 랜덤 함수를 이용해 난수를 얻는 방법에 대해서 정리해 보도록 하겠습니다. 1. 자바의 Random함수 Java에서는 Random한 결과값을 얻기 위해 두가지 클래스에서 함수들을 사용할 수 있는데요. Random클래스의 멤버함수와 Math클래스의 멤버함수 입니다. 먼저 Random 클래스를 보도록 하겠습니다. 2. Random클래스 아무래도 Math클래스보다는 Random에 전문적인 class 이름이기는 한데요. java.util패키지의 Random클래스를 import해 주어야 사용할 수 있습니다. Random클래스의 객체를 생성한 다음, 멤버 함수들을.. 2019. 9. 13.
Java, Android 에서 날짜 표현할 때 Calendar, Date 그리고 SimpleDateFormat 안드로이드 앱을 만들다 보면, 날짜를 알아와야 할 때가 종종 있습니다. 이 때, 자바의 클래스중 어떤 걸 써야했는지 가물가물 할 때가 있는데요, SimpleDateFormat 클래스와 Date클래스에 Calendar클래스 까지 있는데요. 이들을 이용해서 날짜를 얻어와 보겠습니다. 1. 클래스 소스보기 SimpleDateFormat과 Date, Calendar클래스의 소스 코드 설명을 보면서 어떤 클래스들인지 한번 쓰윽 보도록 하겠습니다. SImpleDateFormat은 DateFormat클래스를 상속받고 있네요. 흥미로운 점은, 다른쓰레드에서는 다른 객체를 사용하라고 되어있네요. Thread-Safe하지 못하다는 점이 마음에 좀 걸리지요. 주의해서 써야할 것 같습니다. SimpleDateFormat의 p.. 2018. 12. 11.
Enum값에 대해서 알아보겠습니다 오늘은 Enum에 대해서 무엇인지 정리해 보고,그 특징들에 대해서 알아보도록 하겠습니다. 1. Enum enum은 Enumerated Type의 줄임말인데요.열거형 타입이라는 의미입니다. 선택할 수 있는 관련되어 있는 상수들을 모아서,하나의 집합으로 정의한 상수인데요. 이것을 좀더 쉽게 풀어보도록 하겠습니다.요일은 월요일부터 일요일까지만 존재하는데요.따라서, 요일에 관해서는 월요일~일요일 이 7가지만 쓰도록 하면,좀 더 안전하게 코딩을 할 수 있을텐데요.enum을 사용해서 열거되는 아이템들을 정해놓고 그 안에서만 선택하도록 할 수 있습니다. 2. Enum의 특징 2-1. 명확하다 키워드인 enum을 사용하므로,명확하게 열거형 상수를 의미할 수 있구요.의도하지 않게, enum이 객체화 하거나 상속되는 것을.. 2018. 4. 10.
정규 표현식 (Regular Expression) 과 응용 사례를 정리해 보자 정규표현식은 특정한 조건으로 문자를 검색하거나 바꿀 때 사용하는데요. 사용은 하지만, 자주 사용하지는 않아서, 정작 사용할 때가 되서는, 기억이 가물가물한 경우가 많습니다. 오늘은 자주 쓰이는 것들을 위주로, 정규 표현식과 응용 사례(이메일 형식체크 등)들을 정리해 보겠습니다. 1. 정규 표현식 아래는 자주 사용되는 정규식을 정리해 놓은 표입니다. 주의할 것은 "\"(역슬래쉬)는 Kotlin이나 Java에서는 Escape문자로, 코드에서 사용할 때는 "\\"(역슬래쉬 2개) 로 대신 표기해 주어야 합니다. ( ) 패턴들을 하나의 그룹으로 묶음 예> or연산자인 | 과 함께 써서, (txt|hwp|doc) 과 같이 txt, hwp,doc 세가지에 매치시킬 수 있음 + 기호 앞의 패턴이 1번 이상 발생하는 .. 2017. 9. 7.
Math 클래스 의 반올림, 올림, 버림 등 자주 사용하는 메소드 정리 #Java Java 프로그래밍을 하다보면, 반올림이나 올림 혹은 내림등을 해야하는 경우들이 있습니다. 이럴 때는, Math클래스의 메소드인 round나 ceil, floor 등을 사용하면 되는데요. 오늘은 이 Math클래스의 자주 사용하는 메소드들에 대해서 정리해 보겠습니다. 1. 반올림 먼저, 반올림에 대해서 알아보겠습니다. 사용하는 메소드는 round()이구요. 여기서는 0.5324라는 값을 주었는데요. 반올림하면 아래와 같이 1을 반환해줍니다. 2. 내림 이번에는 무조건 값을 버리는 내림을 해볼텐데요.사용하는 메소드는 floor() 입니다.아래와 같이 소수점 아래값을 모두 버리고, 0,0을 반환해 줍니다. 2017. 4. 9.
Matcher 클래스와 Pattern Class로 정규 표현식을 활용해보자 지난 글에서 정규 표현식(Regular Expression)에 대해서 정리해 보았었는데요.오늘은 Matcher클래스와 Pattern 클래스를 이용해서,정규 표현식을 활용해보는 것에 대해서 정리해 보도록 하겠습니다. 참고로, 정규표현식에 관해서는 아래글을 참조해주세요.>>> 정규 표현식 (Regular Expression) 과 응용 사례를 정리해 보자 2017. 3. 22.
Java 배열 및 ArrayList 를 Comparable과 Comparator 를 이용해 정렬하기 안드로이드 앱을 만들 때, 자료형으로 배열이나 arrayList를 사용하게 되는 경우가 많은데요. 작업을 하다보면, 자료를 넣은대로 꺼내서 사용하지 않는 경우도 생기고,유저에게 보여줄 때, 순서를 필터링해서 보여줘야 하는 경우도 생깁니다. 오늘은, 배열이나, ArrayList를 이용해서, 자료를 원하는 Data기준으로, 정렬하는 방법에 대해서 정리해 보도록 하겠습니다. 1. 간단한 배열의 오름차순 정렬 먼저 아래와 같은 간단한 형태의 배열을 생성합니다. 순서가 뒤죽박죽인데요.오름차순으로 숫자가 적은 순서대로 정렬해 보도록 하겠습니다. Array.sort() 메소드에 인자로 위에서 생성한 Array를 넣어주기만 하면 되는데요.이것을 정렬해서 리스트로 표현해보겠습니다. 참고로 RecyclerView로 리스트.. 2017. 3. 19.
Bit 논리 연산과 시프트 연산 의 정리 오늘은 Bit의 논리 연산과 시프트 연산에 대해 정리해 보겠습니다.Bit논리연산을 알아보기전에,Bit가 무엇인지부터 알아보겠습니다. 1. Bit = Binary DigitBit는 Binary Digit의 약자입니다.컴퓨터에서 사용하는 가장 작은 단위 데이터 단위입니다. Binary가 2개를 의미히고,digit은 자리를 의미하지요.이 둘을 합치면 2개의 자리수라는 뜻이 됩니다. 실제로 여기서 말하는 것은,2개의 진수인 0과 1입니다. 2진수를 구하는 방법은 다른 글에서 정리를 하구요.(특히 음수를 표현하는 방법은 따로 정리할 필요가 있을 것 같네요.)오늘은 자바의 toBinaryString()메소드를 이용해, 10진수인 88의 Binary값(즉, 2진수)를 뽑아보겠습니다.(Kotlin에서도 동일한 함수명.. 2017. 3. 16.
Java Wrapper 클래스 를 정리해 보자 안드로이드 프로그래밍을 하다보면,Wrapper Class를 사용하게 되는 경우가 많이 있습니다.HashMap이나 Generic, 혹은 ArrayList를 사용할 때 인데요. 오늘은 Java의 WrapperClass에 대해서 정리해보겠습니다. 1. Wrapper Class Java 개발을 할 때, 무심코 사용하던 Wrapper Class란 말은,사실은 기본형(Primitive) 타입을 Wrap해서 쓰는, Primitive Wrapper Class를 지칭한다고 볼 수 있습니다. 실제로 Wrapper Class는, Primitive Wrapper Class뿐만이 아니라, 어떤 Class를 Wrap(포장)해서 사용하는 Class를 가르키는 것 입니다.하지만, 이 글에서도, Wrapper Class를,자바의 Pr.. 2017. 3. 7.
Java Map인 HashMap, TreeMap, LinkedHashMap 에 대해서 정리해 보자. 안드로이드 프로그래밍을 하면서 Map을 사용하게 되는 경우가 종종 있는데요.Java 에서 제공해주는 Map에는 HashMap, TreeMap, LinkedHashMap 이 있는데요.이들에 대해서 한번 정리해보겠습니다. 1. HashMap HashMap의 소스코드는 길어서 다 볼수는 없지만, 간단한 주석이 들어있는 앞부분을 참조해보겠습니다.눈이 띄는 부분들을 정리해보면 다음과 같네요.인자로, null값이 허용되는 key,value값을 로 허용한다.해쉬맵의 순서는 정해져있지 않으므로, 정해진 순서대로 iterate을 하고 싶다면, LinkedHashMap을 사용할 것여러 워커 쓰레드를 사용하는 경우, 자동으로 동기화되지 않으므로, synchronized를 해야할 필요가 있다.Serializable을 사용하므.. 2017. 2. 12.
Java의 3항 연산자는 알아야, 소스코드도 보인다 안드로이드 소스코드를 보면, 가끔씩 3항 연산자를 볼 수 있는데요.오늘은 이 3항 연산자에 관해서 정리해보고자 합니다.우선 공식을 보면 다음과 같은데요. 조건문 ? true일때의 값 : false일때의 값 자주 사용하지는 않기는 하지만 경우에 따라서는 가독성도 좋아지고 코드도 짧아져서 좋습니다.실제 코드를 보면서 정리해 보겠습니다. 1. 쉬운 예 먼저 쉬운 예를 보도록 하겠습니다.조건: 여기서 조건문은 i>9 이 true인지 false인지 를 묻고있습니다.공식대로 보면 아래와 같은데요.true이면: "참",false이면: "거짓",을 result에 넣으라는 것입니다. 2. 안드로이드 소스코드 예 이번에는 안드로이드 소스코드에서 실제 사례를 하나 뽑아서 보겠습니다. getName()이라는 메소드를 사용하면.. 2017. 1. 21.
Java IO에서 InputStream, OutputStream, Reader, Writer Java에서 IO(Input/Output)라는 것을 하게 되면 InputStream, OutputStream, Reader, Writer 를 사용하게 되는데요. 오늘은 이들에 대해서 기본적인 것들을 정리해보려고 합니다. 1. Stream or Reader, Writer? 자바 IO는 입출력에 관해, 크게 두가지로 나눌 수 있습니다. 하나는, 바이트 단위로 입출력을 하는 Stream이구요, 여기엔 InputStream과 OutputStream이 있습니다. 다른 하나는, 2바이트인 문자단위 입출력을 하는 Reader, Writer입니다. InputStream과 Reader가 입력을, OutputStream과 Writer가 출력을 담당하므로, 두 개씩 묶어서 보도록 하겠습니다. 2. InputStream, R.. 2017. 1. 7.
JAVA Interface 안드로이드를 위한 자바 인터페이스 #다중상속 #콜백 오늘은 안드로이드를 위한 자바의 Interface를 정리해볼려고 합니다. 참고로 여기서 말하는 Java의 혹은 android에서 사용하는 Interface는User Interface, 즉 UI의 Interface가 아닙니다.개발자의 코드와 생성한 객체간의 interface의 역할을 의미합니다.음... 추상적이라 잘 않와닿으니,, 쓰임새를 보면서 알아보기로 하겠습니다. 안드로이드와 관련해서 Interface가 필요한 경우가 여러가지가 있겠지만,크게 두가지를 짚고 가려고 합니다.바로, 다중상속이 필요할 때와 콜백으로 사용할 때인데요. 1. 다중 상속이 필요할 때 사실 말이 어패가 좀 있는것이, 정확히는 다중 상속이 아니라, 다중 구현(implements)을 하는 것입니다.특히나 다중 상속이 않되는 자바의 클.. 2016. 12. 21.