자바 7

[Java] Buffer의 구조와 주요 메소드 다루기

Java NIO Buffer는 Channel과 상호작용할때 사용된다. Channel에서 Buffer로 데이터를 읽어들일 수 있고, 다시 Channel로 쓰여질 수 있다. Channel을 통하지 않고 Buffer를 직접 다룰 수도 있는데, Buffer의 구조와 주요 메소드들을 살펴보면서 알아보도록 하겠다. Buffer의 구조 Buffer는 데이터를 읽고, 쓸 수 있는 메모리 블록이다. 그리고 커서 역할을 하는 다음 3개의 속성 값들을 가지고 있다. capacity: 버퍼의 사이즈 position limit Buffer는 읽기, 쓰기 모드로 나뉘어지는데 각 모드에 따라 커서가 하는 일을 살펴보자. 쓰기 모드 (Write Mode) [ ][ ][ ][ ][ ]. ⭡ ⭡ position limit, capaci..

Javadoc 알고 쓰기

Java 수업때 가장 등한시했던 부분이 바로 Javadoc이었는데 이제 정말 필요한 상황이 왔다. 코드를 작성하는 시간보다 코드를 다시 보고, 다른사람에게 설명하는데 쓰는시간이 배로 많다. 잘 작성된 Javadoc은 이런 비효율적인 일을 줄여줄 수 있다. 기계인간 Johngrib님의 포스팅과 javadoc 문서를 참고했다. 예시 코드는 Android Source Code다. 작성 원칙 코드의 역할을 3초안에 파악할 수 있도록하는 것이 목적이다. 가독성이 중요하다. 세부 구현은 언제든지 바뀔 수 있으므로 구현에 대한 내용은 적지 않는다. 루프를 돌아서 반환한다던가 하는 설명 @deprecated /** * Main Sidecar interface definition that will be used by t..

[Linux] 자바 버전 변경하기

JAVA 16버전을 사용하는 서버에서 안드로이드 빌드를 하는걸 구현하는 도중 "jlink executable /usr/lib/jvm/java-16-openjdk-amd64/bin/jlink does not exist."라는 오류가 발생했었는데, java-11-openjdk 아래에만 jlink가 설치되어 있었다. 그래서 16에서 11로 버전을 변경하게되었는데, 방법을 살펴보자. 1-1. 빠르고 쉬운 방법 update-alternatives를 이용하면된다. $ update-alternatives --config java 대체 항목 java에 대해 (/usr/bin/java 제공) 2개 선택이 있습니다. 선택 경로 우선순? 상태 ---------------------------------------------..

마인크래프트 가이드 앱 개발기 2편 "왠 Python?"

오랜만에 2편을 써본다. 아무도 안기다렸지만 ㅎㅎㅎㅎ '~'방학을 맞아서 유저들에게 약속했던 7월 대규모 업데이트를 하려 다시 안드로이드 스튜디오를 켰다.그동안 코딩스타일을 배워 한 층 더 업그레이드 된 눈으로 다시 코드를 보니 엉망이었다.앱 특성상 아이템을 추가할 일이 많은데, 아이템 추가하기가 번거롭고 힘들게 되어있었다.그래서! 더욱 편하게 아이템을 추가하기 위해 나에게 조금 더 나은 인터페이스를 제공하기로 했다. 리팩토링이전에는 아이템을 추가하려면 layout에서 아이템 아이콘을 추가하고, 개별 아이템마다 onclick="아이템이름"다는작업을 한 뒤에, 아이템 정보가 담겨있는 ItemDB를 모아놓은 ArrayList인 ItemDBList에도 정보를 업데이트 해야 했다.그러나 아이템이 300개가 넘다..

안드로이드 아름다운 카드뷰(Card View) 리스트 만들기 - (3)

이번 강의에서는 Card View에 이미지를 적용 시키는 방법과, 개별 클릭 이벤트를 처리하는 방법에 대해 알아 볼 것이다.나는 이미지 URL을 이용해 이미지를 불러올 것이기 때문에 마음 편하게 라이브러리를 사용했다.이미지 관련 라이브러리 중 유명한 것은 Picasso와 Glide가 있는데, 둘 다 사용법은 비슷하고 성능도 좋다. 이미지 라이브러리인 Picasso를 사용하기 위해Gradle에 다음 코드를 한 줄 추가한다. build.gradle (Module : app)dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompa..

객체 지향 프로그래밍, 자바

한 학기 동안 학교에서 Java강의를 들으면서 정리한 내용이다.간단히 자바에대해 파악하기 좋다. 00 Introduction 없음 01 Basic Concepts and a Sample 1. 언어의 분류- 기계어 (machine language)- 어셈블리어 (assembly language)- 절차적 언어 / 비절차적 언어 (procedural / nonprocedural language) 2. 자바의 특징- 1991년 SUN 마이크로 시스템즈의 James Gosling에 의해 탄생- 플랫폼 독립적, 적은 메모리 사용- Write Once, Run Everywhere- 소형 기기, 인터넷의 발달과 함께 성장- JVM 상에서 동작- 객체 지향, 객체를 기본 단위로 디자인 3. 클래스- Java에서 객체를..

Java 요일 구하기 계산 예제 / 소스 코드

1900년 1월 1일은 월요일이라는 점을 이용하여 요일 을 계산하는 프로그램이다. 아래 소스코드를 보면1) 연/월/일을 입력 받는 main()2) 구한 요일을 출력하는 PrintDay()3) 그 달은 총 몇일인지 계산하여 리턴하는 MonthDays()4) 그 날이 어떤 요일인지 계산하여 'X'요일을 리턴하는 DayofDate() 로 이루어져있다는 것을 알 수 있다. 계산 방법은 기준일자인 1900년 1월 1일로 부터 입력 받은 날짜까지 총 몇일 지났는지 알아낸다음,그 날짜를 7로 나눈 나머지에 따라 일/월/화/수/목/금/토 요일을 계산하는 것이다.일자 계산에는 1/3/5/7/8/10/12 월이라면 31일, 아니라면 30일, 평년 2월달이라면 28일, 윤년 2월달이라면 29일로 조건에 따라 날짜가 들어가도..