일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 큐 자바 코드
- 스택 자바 코드
- rxjava disposable
- 자바 다형성
- 안드로이드 유닛 테스트 예시
- jvm이란
- 안드로이드 os 구조
- rxjava cold observable
- 안드로이드 라이선스
- android retrofit login
- 안드로이드 레트로핏 crud
- 안드로이드 유닛테스트란
- jvm 작동 원리
- 서비스 vs 쓰레드
- 클래스
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트
- android ar 개발
- ANR이란
- 안드로이드 라이선스 종류
- 스택 큐 차이
- 플러터 설치 2022
- 2022 플러터 설치
- rxjava hot observable
- 객체
- ar vr 차이
- 2022 플러터 안드로이드 스튜디오
- Rxjava Observable
- 멤버변수
- 안드로이드 레트로핏 사용법
- Today
- Total
목록JAVA (38)
나만을 위한 블로그
요즘 출시되는 컴퓨터는 대부분이 멀티쓰레드를 지원한다. 말 그대로 쓰레드가 여러 개기 때문에 별도의 처리를 하지 않는 이상 종종 여러 쓰레드가 같은 자원에 액세스하려고 시도하고, 그 결과로 내가 생각한 것과는 전혀 다른 결과가 나올 수 있다. 예를 들어서 쓰레드 A, B가 있다고 치고 a라는 객체에 두 쓰레드가 같이 붙어서 작업한다고 가정한다. 쓰레드 A가 a에 붙어서 작업하던 도중 B에게 제어권이 넘어가고 B가 a의 데이터를 변경한 후, 다시 A에게 넘기고 나서 A가 나머지 작업을 이어서 수행하면 분명히 원래 내 의도와 다른 결과가 나올 수도 있다. 이런 일이 발생하는 걸 막기 위해선 한 쓰레드가 어떤 작업을 끝내기 전까진 다른 쓰레드에게 방해받지 않게 하는 처리가 필요하다. 자바에선 동기화(synch..
이번 포스팅에선 HashTable(이하 해시테이블)에 대해서 정리하려고 한다. 먼저 해시테이블이 뭔지부터 알아보자. 해시란? 단방향 암호화 기법이다. 해시함수(알고리즘)을 써서 고정된 길이의 암호화된 문자열로 바꾸는 걸 의미 해시함수란? 임의의 길이를 가진 데이터를 고정된 길이의 데이터로 매핑하는 함수. 이 때 매핑하기 전의 원래 데이터 값을 키, 매핑 후 데이터의 값을 해시값(hash value), 매핑하는 과정을 해싱(hashing)이라고 한다. 뉘앙스로는 해시함수의 뜻이 더 가깝다. 해시테이블의 기능 자체가 해시함수와 같은 맥락의 기능이기 때문이다. 그럼 테이블은 뭘까? DB를 공부했다면 알겠지만 모른다면 엑셀을 생각하면 된다. 정리하면 테이블 형태로 키와 값을 매핑하는 걸 해시테이블이라고 하는 것..
안드로이드 앱을 만들다 보면 자주 사용하게 되는 것 중 하나가 ArrayList라는 것이다. 이번 포스팅에선 ArrayList라는 것의 간단한 사용법을 적어보려고 한다. 먼저 ArrayList란 무엇일까? 이 단어 자체는 Array와 List로 나눌 수 있다. Array = 집합체(모음, 무리), (메모리) 배열, 배열하다 List = 목록, 명단, 일람표, (특정 순서로) 열거하다 어떤 것에 담긴 것들의 명단, 어떤 것을 열거해놓은 것, 배열의 목록 등등 여러 뜻이라고 유추해볼 수 있다. 다음은 구글에선 뭐라고 나오는지 확인하자. 아래는 구글에 ArrayList를 검색한 결과를 요약한 것들이다. ArrayList는 동적 크기의 요소 모음을 저장하는 데 사용된다. 크기가 고정된 배열과 달리, ArrayL..
인텔리제이 설치 후 업데이트할 게 있대서 한 다음, 자바 프로젝트를 만들고 헬로월드를 출력하는데 제목과 같은 에러가 보였다. 프로젝트 실행은 됐지만 RUN 창에 저 문구가 계속 나오니 보기 싫어서 해결책을 찾아봤다. 방법은 설정을 열고 gradle을 검색해서 Build Tools 아래의 Gradle 탭을 클릭 > gradle로 돼 있는 두 곳을 인텔리제이로 바꿔주면 된다. apply를 누르고 ok를 눌러 저장한 뒤 다시 빌드하면 깔끔하게 에러문구 없이 돌아가는 걸 볼 수 있다. 그냥 심심해서 깔아본거라 별 타격 없었지만 업데이트하라고 문구가 떠도 함부로 업데이트하지 말자. 시간 날려먹을 수 있다.
생성 : 사물이 생겨남, 사물이 생겨 이뤄지게 함 / 생성자 : 어떤 것을 만들어내는 사람? 자바의 생성자 : 객체 생성 시 항상 실행되는 것으로 객체를 초기화하기 위해 맨 처음 실행되는 메서드. 객체의 속성에 대한 초기값을 설정하는 데 사용된다. A 클래스에서 B 클래스에 있는 메서드나 변수를 사용하려면 어떻게 해야 할까? B 클래스의 요소들을 쓸 수 있도록 B 클래스의 객체를 생성하면 된다. 예를 들어서 Person이라는 클래스를 만들고, 이 클래스의 전역변수로 나이와 이름을 받는 변수를 만든뒤 두 값을 받아서 출력하는 메서드를 Person 클래스에 만든다고 하자. 그럼 아래와 같은 형태가 될 것이다. public class Person { int age; String name; public Pers..
Thread(쓰레드) : 실, (이야기 등의) 가닥 / 맥락, (실 등을) 꿰다 컴퓨팅에서의 쓰레드 : 어떤 프로그램(특히 프로세스) 내에서 실행되는 흐름의 단위. 일반적으로 한 프로그램은 하나의 쓰레드를 갖고 있지만 프로그램 환경에 따라 둘 이상의 쓰레드를 동시 실행할 수 있다. 이런 실행 방식을 멀티쓰레드라고 한다. (출처 - 한글 위키백과) 컴퓨팅에서의 쓰레드 - 실행 쓰레드는 일반적으로 OS의 일부인 스케줄러에 의해 독립적으로 관리할 수 있는 프로그래밍된 명령의 최소 순서다. 쓰레드 및 프로세스의 구현은 OS에 따라 다르지만, 대부분 쓰레드는 프로세스의 구성요소다. 한 프로세스 안에 여러 쓰레드가 있어서 동시 실행되고 메모리 같은 리소스를 공유할 수 있지만, 서로 다른 프로세스에선 리소스를 공유하..
가끔 이클립스를 쓰다 보면 이 클래스에 대해 공식 홈페이지에선 뭐라고 설명하는지 확인하고 싶을 때가 있다. 자바독스라고 구글링해서 홈페이지를 들어가던가, 바탕화면에 웹 페이지 바로가기 만들어둔걸 더블클릭하면 되는데....귀찮다. 게다가 일일이 클릭해서 타고타고 들어가야 하는 구조라서 더더욱 귀찮다. 이런 경우를 대비해서인지는 모르겠지만 이클립스 안에서 자바독스를 볼 수 있게 해놨다. 먼저 내 경우는 콘솔창이 보통 이 상태로 되어 있다. 콘솔 결과만 볼 수 있게 해놨다. 이 상태에서 자바 독스를 볼 수 있게 설정하려면, 위에서 Window -> Show View -> Javadoc을 누르면 된다. 그럼 콘솔창 왼쪽에 이렇게 Javadoc 탭이 생기는 걸 볼 수 있다. 이 상태에서 시험 삼아 String 클..
FileInputStream : InputStream 클래스를 상속받은 자식 클래스, 하드 디스크 상에 있는 파일로부터 바이트 단위의 입력을 받는 클래스다. 출발 지점과 도착 지점을 연결하는 통로(스트림)을 생성한다. 생성자의 인자로 File 객체를 주거나 파일명을 직접 String 형태로 줄 수 있다. 일반적으로 파일명을 String 꼴로 주는 경우가 많은데 파일이 존재하지 않을 가능성도 있어 Exception 처리가 필요. FileOutputStream : OutputStream 클래스를 상속받은 자식 클래스, 파일로 바이트 단위의 출력을 내보내는 클래스. Sink 스트림의 일종으로 3개의 생성자가 중복 정의되어 있다. FileInputStream의 생성자와 거의 같은 형태인데 하나 더 있는 생성자의..
변경사항) 2021.02.23 사진 첨부 2021.09.12 내용 추가 21.09.12) 윈도우를 사용한다면 윈도우 키 > "환경 변수"라고 입력하면 '시스템 환경 변수 편집'이라는 탭이 나온다. 이 상태에서 바로 엔터를 입력하면 2번째 사진이 나온다. 환경 변수를 건드려주면 해결되는 에러다. 먼저 내 컴퓨터를 우클릭해 속성을 누르면 아래 화면이 나온다. 나오지 않는다면 위의 내용대로 환경 변수 창을 열자. 설정 변경을 클릭하면 아래 팝업이 나온다. 고급 탭을 누른 다음 환경 변수를 클릭한다. 아래를 보면 시스템 변수 항목이 있는데, 이 중에서 CLASSPATH 변수를 더블클릭해 내용을 아래 문구로 바꾸고 적용을 누른다. %JAVA_HOME%\lib;. lib 뒤에 ";."을 입력해주면 내가 기존에 설정..
21.06.15) 자바 삭제 절차 추가, 자바 14에서 16으로 업그레이드 설치 집컴에 깔았던 이클립스로 작성한 자바 파일을 cmd로 컴파일하려는데 별 시도를 다 해봐도 먹히지를 않았다. 그래서 자바와 이클립스를 전부 완전삭제 후 자바부터 재설치하고 환경변수를 다시 잡고자 했다. 혹시 모르니 이렇게 설치 과정을 글로 남겨서 나중에 필요하면 또 보려고 한다. 먼저 이클립스를 삭제했다. 이클립스를 지우려면 별 건 없고 C 드라이브의 사용자(난 Users 폴더다) 폴더로 들어가서 아래 폴더들을 전부 삭제해주면 된다. 총 4개다. .p2 .eclipse eclipse eclipse-workspace 점이 붙어있는 폴더는 안 보일 수 있다. 그럴 땐 폴더 설정에서 숨김 항목란을 체크 해제해주면 된다. 찾아가는 방..