Java
-
반복문 for 흐름 ExJava 2022. 11. 30. 20:31
public class Main { public static boolean check1(int i) { System.out.println("chk i: " + i); return true; } public static void main(String[] args) { int i = 0, ii = 0; for(System.out.println("init i: " + i); check1(i) && i < 10; ii=i*2, i=i+1, System.out.println("inc i:" + i) ) { System.out.println("Hello i: " + i); } System.out.println("Hello World"); } } init i: 0 chk i: 0 Hello i: 0 inc i:1 c..
-
InputStream to Byte Array, ByteBufferJava 2022. 8. 11. 16:17
Java로 InputStream 에서 Byte Array, ByteBuffer 변환 방법1 public void conv1() throws IOException { InputStream is = new ByteArrayInputStream(new byte[] { 0, 1, 2, 3, 4, 5, 6 }); byte[] targetArray = new byte[is.available()]; is.read(targetArray); } 방법2 public void cnv2() throws IOException { InputStream is = new ByteArrayInputStream(new byte[] { 0, 1, 2, 3, 4, 5, 6 }); // not really known ByteArrayOutp..
-
getPath(), getAbsolutePath(), getCanonicalPath()Java 2022. 8. 8. 15:50
Java getPath(), getAbsolutePath(), getCanonicalPath() getPath() : 입력된 경로 그대로 리턴 getAbsolutePath() : 입력된 절대 경로 리턴 getCanonicalPath() : 불필요한 것 등이 정리된 절대 경로 리턴 입력 ./example/../example/file1 getPath() 위 내용 그대로 getAbsolutePath() /home/user1/example/../example/file1 getCanonicalPath() /home/user1/example/file1
-
RxJava subscribeOn, observeOnJava 2022. 8. 7. 08:19
2022.08.07 - 스케쥴러(Scheduler) 종류 private Disposable data1Task; //작업 환경 생성, RxJava 이해 필요. data1Task = Observable.fromCallable(()->{ //async work return "result xxx"; }) .subscribeOn(Schedulers.io()) //work .observeOn(AndroidSchedulers.mainThread()) //dsp .subscribe(rststr -> { //result data1Task.dispose(); qv("work end: " + rststr); }, throwable -> qv("ec: " + throwable.toString())); subscribeOn: ..
-
Thread IO UI 혼용 문제 증상Java 2022. 8. 7. 07:59
예제 구성 Android환경에서 RxJava에 Observable를 이용한 비동기 처리 방식. 작업 Thread는 SchedulersIO로 설정하고 처리된 결과를 SchedulersMainthrad(=UI)로 보내 최종 처리하는 구조. Disposable data1Task = Observable.fromCallable(()->{ //... work ... return "workcomplete" }) //Observable이 실행되는 스레드는 subscribeOn() 함수에서 설정하고 처리된 결과를 observeOn() 함수에 설정된 스레드로 보내 최종 처리합니다. .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subsc..
-
RxJava HttpUrlConnectionJava 2022. 8. 7. 07:00
RxJava HttpUrlConnection Restful Api 2022.08.07 - HttpURLConnection 2022.07.28 - Restful Api Ex 준비 RxJava 환경 준비: 2022.08.05 - RxJava 2022.08.05 - RxAndroid RxJava 이해 2022.08.06 - RxJava Observable emitter Ex 주요 코드 구성 private Disposable data1Task; String urlString = "http://google.com"; //작업 환경 생성, RxJava 이해 필요. data1Task = Observable.fromCallable(()->{ URL url = new URL(urlString); HttpURLConnec..
-
RxJava 스케쥴러(Scheduler) 종류Java 2022. 8. 7. 06:46
RxJava Scheduler 종류 2022.08.07 - RxJava subscribeOn, observeOn RxJava 스케쥴러(Scheduler) 종류 Schdulers.io() - I/O 처리 작업을 할 때 사용하는 스케쥴러 - 네트워크 요청 처리, 각종 입/출력 작업, 데이터베이스 쿼리 등에 사용 - 쓰레드 풀에서 쓰레드를 가져오거나 가져올 쓰레드가 없으면 새로운 쓰레드를 생성한다. Schdulers.computation() - 논리적인 연산 처리 시, 사용하는 스케쥴러 - CPU 코어의 물리적 쓰레드 수를 넘지 않는 범위에서 쓰레들르 생성한다. - 대기 시간 없이 빠르게 계산 작업을 수행하기위해 사용한다. Schdulers.newThread() - 요청시마다 매번 새로운 쓰레드를 생성한다. ..