반응형

Java 13

[안드로이드] SHA256 해시 알고리즘 예제

안드로이드 자바 SHA256 해시 알고리즘 예제이다. 결과를 byte[]로 리턴 public static byte[] sha256(String input) { byte[] result = null; try { MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(input.getBytes()); result = md.digest(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return result; } 결과를 String(Hex)으로 리턴 위 코드에서 StringBuffer 부분만 추가되었다. public static String sha256ToString(String..

[안드로이드] getIntent 데이터 삭제하기

A앱에서 Intent로 값을 전달하며 B앱을 오픈한 경우, B앱을 종료한 후에 앱 목록에서 B앱을 선택해 다시 실행시키면 getIntent에 전달받은 값이 그대로 있는 문제가 발생한다. 테스트 순서 1. A앱에서 Intent로 값 전달하며 B앱 오픈 2. B앱에서 getIntent().getData()로 데이터 전달받아 작업 진행 후 앱 종료 3. 메뉴 키(softkey) 눌러서 나타나는 앱 목록 중 B앱 눌러서 실행 4. B앱 실행되며 getIntent().getData() 확인 시 1번에서 전달받은 데이터가 그대로 있음 해결 방법 onCreate에 아래 코드로 추가하여 해결이 가능하다 1 2 3 if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED..

[안드로이드+JAVA] 지정한 수 만큼 문자열 잘라서 출력하기

지정한 수 만큼 문자열 잘라서 출력하기 문자열 길이와 반복 횟수를 구한 후 substring을 사용하여 출력 android string api : developer.android.com/reference/java/lang/String 1 2 3 4 5 6 7 8 9 10 11 12 String word = "1234567890a1234567890b1234567890c1234567890d"; int cut = 10; // 문자열 자를 문자 수 int len = word.length(); // 문자열 총 길이 int repeat = len / cut; // 반복 횟수 String leftWord = word; // 자르고 남은 문자열 while (0

[JAVA] 전위 연산자, 후위 연산자, ++, --

[연산자] 전위 연산자, 후위 연산자, ++, -- 단항 연산자 중에서 증감 연산자 ++, -- 가 있고 변수 앞에 붙이면 전치 증감 연산자(++i,--i)라고 하고 변수 뒤에 붙이면 후위 증감 연산자(i++,i--)라고 한다. * 전위 증감 연산자는 실행문에서 값이 먼저 증가/감소해서 적용된다. 1. int i = 1;2. int j = ++i;j = 2, i = 2 가 된다. * 후위 증감 연산자는 실행문에서 값이 후에 증가/감소해서 적용된다. 1. int i = 1;2. int j = i++;j = 1, i = 2 가 된다. 보통 for문에 자주 사용하고 전위, 후위 연산자 모두 같은 결과를 나타내지만 내부적으로 동작 원리가 다르다. * 전위 증감 연산자 (++i, --i)1. i = i + 1;2..

[JAVA] synchronized

[JAVA] synchronized 자바 애플리케이션이 수행되면 서버나 WAS에 프로세스가 생성된다. 그리고 하나의 프로세스에는 하나이상의 Thread(스레드)가 생성된다. 단일 스레드가 생성되었다가 종료될 수도 있고 여러개의 스레드가 생성되고 수행되다가 소멸될 수도 있다. 즉 1대多의 관계다. 스레드는 WAS가 관리하며 시스템 개발시에 스레드를 개발자가 직접 컨트롤하는 일은 별로 없으며, 오히려 제대로 알지 못한 상태에서 직접 제어하면 서비스의 안전성에 문제가 생길 수도 있으니 어떤 원리로 작동되는지 정도만 알아도 충분하다고 본다. 스레드는 같은 프로세스내에서 동일한 데이터를 공유한다. 따라서 하나의 데이터에 대해서 동시에 여러개의 스레드가 접근이 가능하게 되고 그에 따라 데이터의 일관성에 관한 문제가..

[안드로이드] 안드로이드 자바 명명관례 Naming Conventions

명명 관례(Naming Conventions) 1. 클래스 명은 반드시 대문자로 시작한다.예) Myclass(O), myclass(X), myClass(X) 2. 패키지를 표현하는 이름은 모두 소문자를 사용한다. mypackage, com.company.application.ui 패키지 이름의 시작부는 반드시 도메인 이름으로 소문자를 사용해야만 합니다. 충돌 방지를 위해 패키지명은 보통 도메인의 역순으로 한다.도메인이 www.myhouse.com 이라면패키지는 com.myhouse 정도로 하면 됩니다. 3. 변수의 이름은 반드시 소문자로 시작하고 카멜(낙타)명명법을 이용한다.(명사) account, eventHandler 예) Account account; // 선언문변수와 메소드는 카멜 명명법을 쓴다...

[안드로이드] SurfaceView Camera 서페이스뷰 이용한 카메라 기능

[안드로이드] SurfaceView Camera 서페이스뷰 이용한 카메라 기능 [출처 : http://webnautes.tistory.com/822 ] http://www.tutorialspoint.com/android/android_camera.htm 에 있는 예제를 수정해서 만들었습니다.. AndroidManifest.xml 파일에 아래 빨간색 4줄을 추가해줍니다.회색으로 칠해진 2줄은 카메라 영상 결과를 보여줄 액티비티를 적어준 것입니다. 메인 액티비티의 레이아웃 파일입니다. activity_main.xml카메라 프리뷰를 보여줄 SurfaceView와 카메라 촬영시 사용될 버튼이 정의되어 있습니다. 다음은 결과를 보여줄 레이아웃 파일입니다. result.xml결과 이미지를 보여주기 위한 imagev..

[안드로이드 + 자바] 정규표현식 Patten Match 및 검증방법

java.util.regex 패키지에 있는Match 클래스와 Pattern 클래스를 이용하여 문자열을 정규검증식으로 나타낼 수 있습니다. boolean flag = Pattern.matches("^[a-zA-Z0-9]*$", strInput); 정규표현식의 내용은 다음을 의미합니다. 1) ^ : 문자열의 시작2) $ : 문자열의 종료3) . : 임의의 한 문자 (문자의 종류와 관계없음)4) | : or의 의미임5) ? : 앞 문자가 없거나 하나 있을때6) + : 앞 문자가 하나 이상임 (최소 한개 이상)7) * : 앞 문자가 없을 수도 있고, 무한정 많을 수도 있음8) [] : 문자 클래스의 지정, 문자의 집합이나 범위를 나태내면 - 기호를 사용한다. [] 내에서 ^를 사용하면 not의 의미임9) {} ..

[안드로이드] 코드 컨벤션 정리 - 낙타, 헝가리안, 파스칼

[안드로이드] 코드 컨벤션 정리 - 낙타식 명명법, 헝가리안, 파스칼 1. 낙타 케이싱 두 개 이상의 단어로 이루어진 변수 이름에서 첫 단어는 소문자로 시작하되, 나머지 단어는 모두 대문자로 시작하는 방식 ex) int numbersOfMembers, timeElapsed, timeLeft 등 2. 파스칼 케이싱 첫 단어부터 대문자를 쓴다. ex) int NumbersOfMembers, TimeElapsed, TimeLeft 등 3. 헝가리안 표기법 변수명에 변수의 타입을 명시하는 방식 [출처] http://tapito.tistory.com/29

[JAVA] return 의미

public class Test {int 멤버변수; // 난 멤버변수라고~void test() {System.out.println("test() : 여기는 실행이 됨. ");if(true)return;System.out.println("여기는 실행이 안된다. ");}int test2() {return 0;} public static void main(String[] args) {Test t = new Test();System.out.println(" void 함수에서 return; 이란 함수를 종료시키는 의미. 아무것도 리턴하지 않음 즉 함수를 마침. ");t.test();int tmp = t.test2();System.out.println(" return 이란 어떤 값이나 객체를 되돌려준다 라는 의미 ..

[자바] 삼항연산자 ?: (펌)

안녕하세요.진형아빠입니다. 이번에는 너무 간단해서 뭥미? 하실수 있는 자바의 삼항연산자입니다. 이런 코드가 있다고 생각해보죠~if( a > b) {a = 111;System.out.println("a의 값은::"+a);}else{b = 222;System.out.println("b의 값은:::"+b);}이런 식이 있다고 하면 삼항연산자를 이용해서 다음과 같이 간단히 코드를 구성할 수있습니다. result = (a>b)?111:222;System.out.println("result의 값은:::"+ result); 한번 자바코드를 만드시고 실행해보세요~~결과는 동일할 겁니다. 6~7줄이 한줄로 간단히 변경되었죠?약간 기존의 if코드가 억지가 좀 있긴하지만 이해해주세요~~just sample이니까요~~^^ 추..

반응형