do not concatenate text displayed with setText 1textView.setText("내용 " + content);cs 이와 같이 하드코딩된 문자열을 넣으면 해당 경고가 발생한다. 경고 내용은 다음과 같다. When calling TextView#setText:Never call Number#toString() to format numbers; it will not handle fraction separators and locale-specific digits properly. Consider using String#format with proper format specifications (%d or %f) instead.Do not pass a string literal..
Type Safety : unchecked 말 그대로 type 의 안정성을 보장할 수 없을 때 이 경고가 발생한다. 내 경우에는 intent 로 1ArrayListcs 이와 같은 데이터를 넘겨주어 전달받은 Activity 에서 1ArrayList persons = (ArrayList) getIntent().getSerializableExtra("persons");cs 다음과 같이 type cast 를 했을 때 해당 경고가 발생했다. Person 은 Serializable 을 implements 한 class 이다. 일반적으로 Java 컴파일러는 실행되는 모든 시점에서 각 변수의 유형을 알고있다. 호환되지 않는 유형으로 작동하면 프로그램이 컴파일되지 않기에 해당 경고를 보여준다. 만약 지정한 형식의 개체만..
문제 백준 11047, 탐욕적 기법 ( Greedy Algorithm ) 문제준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)출력첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 접근&풀이 A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수 이것이 조건으로 주어지기 때문에 가장..
코드 난독화 프로그램 코드의 일부 또는 전체를 변경하는 방법 중 하나로, 코드의 가독성을 낮춰 *역공학에 대한 대비책을 제공한다. * 역공학 대부분의 개발자들은 컴파일된 바이너리를 완전한 블랙박스로 취급한다. 보안 취약점 분석가들의 주요 업무는 이런 바이너리 코드를 읽고 보안 취약점을 찾아내는 것이다. 보통 컴파일된 바이너리를 다시 원래의 소스코드로 복구하는 프로그램인 디컴파일러 ( decompiler ) 의 도움을 받는다. 디컴파일러는 원래 소스 코드를 완벽히 복구하지는 못하지만, 어셈블리에 비해서는 훨씬 이해하기 쉬운 프로그래밍 언어의 소스 코드를 생성해준다. 이처럼 바이너리 코드를 분석해 유용한 정보를 뽑아내는 작업을 역공학 ( reverse engineering ) 이라 부른다. 최근 보안 취약점..
Service FLAG bindService 에서 사용되는 FLAG BIND_AUTO_CREATE Component 와 연결되있는 동안 비정상적으로 종료시 자동으로 다시 시작된다 BIND_DEBUG_UNBIND 비정상적으로 연결이 끊어지면 로그를 남긴다 (디버깅용) BIND_NOT_FOREGROUND 백그라운드로만 동작한다. 만약 Activity 에서 생성한 경우 Activity 와 생성주기를 같이한다 + References https://tourspace.tistory.com/19
동적 BroadcastReceiver 동력 BroadcastReceiver 는 123456789101112131415 Colored by Color Scriptercs 이처럼 AndroidManifest.xml 에 등록하는 정적 리시버와 다르게 12registerReceiver( BroadcastReceiver, IntentFilter )unregisterReceiver( BroadcastReceiver )cs 이 함수를 통해 리시버를 등록, 해제 한다 등록시에 IntentFilter 에는 수신하고자 하는 이벤트를 전달해 준다 사용법은 http://helloit.tistory.com/267 등 여러곳에 잘 나와있으니 참고하자 정적 리시버와의 차이점 정적 리시버를 등록하여 사용하면 구현한 앱이 동작 중이 ..
:: ( 더블콜론 ) ? Java8 에서 추가된 메소드 참조 ( Method Reference ) 연산자이다 메소드 참조는 람다 식과 동일한 처리 방법을 갖는 표현식이지만 람다 본문을 제공하는 대신, 이름으로 기존 메소드를 참조한다 1234567List list = Arrays.asList("a1", "b1", "a2", "b2"); System.out.println(" -- Using Lamda Functions --"); list.stream().map(s -> s.toUpperCase()).forEach(s -> System.out.println(s)); System.out.println(" -- Using Method Reference --");list.stream().map(String::toU..
Iterator ( 반복자 ) ? 자바의 컬렉션 프레임워크는 컬렉션에 저장된 요소를 읽어오는 방법을 Iterator 인터페이스로 표준화하고 있다 Collection 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메소드를 정의하여 각 요소에 접근하도록 하고 있다 Set, List 등은 Collection 을 상속 받고 Collection 이 Iterable 을 상속 받고 있다 따라서 Collection 인터페이스를 상속받는 List 와 Set 인터페이스에서도 iterator() 메소드를 사용할 수 있다. Map 은 Set 이나 List 와 달리 Key-Value 의 구조이다Key 에 대한 Iterator 인지 Value 에 대한 Iterator 인지 구..