자바

    TextView에 Layout_gravity 설정하는 법

    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) textView.getLayoutParams(); params.gravity = Gravity.CENTER; textView.setLayoutParams(params); 1번째줄. 해당 레이아웃에 있는 레이아웃 속성들을 얻어와서 2번째줄. 레이아웃 그래비티를 설정하고 3번째줄. 다시 레이아웃 속성을 설정하는 행위 첫번째 줄에서 형변환을 한 이유는 ViewGroup에서는 layout 속성을 설정 할 수 없기 때문이다. 비슷한 레이아웃으로 형변환하여 해당 레이아웃의 속성을 사용하는 형태로 진행한다. 다른 View들도 비슷하다.

    프린스턴 대학교 코세라 알고리즘 1

    알고리즘 배우는 주된 이유 아직 해결하지못한 문제를 해결할 수 있게하기위함. 지적자극을 주는데 흥미있음. 나쁜 프로그래머는 코드를 따지지만 좋은 프로그래머는 자료구조와 알고리즘을 따집니다. 알고리즘은 계산 모델이며, 알고리즘 모델은 과학분야에 있어 수학모델을 대체한다. 반복구문, 배열, 함수, 객체지향, 재귀 호출이 선행과정. Union find 동적 연결 문제 메모리 사용량 분석등.. Quick Find / Quick Union 알고리즘 유용한 알고리즘 개발하기위해 필요한 것 1. 문제를 모델링 수학적모델 설계 - 수학적 모델 입증 동적연결성 문제(Dynamic Connectivity) union-find에 대한 추상적인 모델 객체에 0부터 N-1까지 번호를 붙일것 매핑함으로써 검색 심볼에 대해 유리해..

    Maven Project 빌드 시 (CLI 환경) 각종 설명 및 팁

    Maven Project 빌드 시 (CLI 환경) 각종 설명 및 팁

    CLI 환경에서 메이븐 프로젝트를 만들 시 선행조건 - 메이븐 설치 - 메이븐이 제시하는 폴더 구조를 만들어주어야함 - pom.xml 정의 https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html Maven – Maven in 5 Minutes Java 9 or later By default your version of Maven might use an old version of the maven-compiler-plugin that is not compatible with Java 9 or later versions. To target Java 9 or later, you should at least use version 3...

    자바 익명클래스와 자바 람다 (Java Anonymous class, Java Lambda) 1편

    자바 익명클래스와 자바 람다 (Java Anonymous class, Java Lambda) 1편

    자바의 람다는 익명클래스와 매우 비슷한 모습을 하고있다. 그러나 둘은 아주 다르다. 익명클래스 일단 익명클래스는 어쨌거나 사용할 때 보통 객체와 동일하게 힙에 할당이 된다. 메인메소드 내에서 익명클래스를 사용하면 컴파일 시에 $1, $2 등과 같은 순서대로 클래스파일이 생성이 된다. 예시로, 평범한 인터페이스를 하나 선언한다. 추상클래스나 일반 클래스도 상관없다. interface Test{ public int getNum(); } 그 후, 메인에서 바로 사용하기 위해 재정의를 해준다. public class LambdaTest { public static void main(String[] args) { Test t1 = new Test(){ public int num = 10; public int ge..

    JAVA Exception 예외, 사용자 정의 예외처리 만드는법

    자바의 예외처리는 조금 특별하다. 사용자가 직접 예외를 만들 수도 있다. 간단하게 Exception을 상속받아서 사용자 정의 예외를 만들수 있다. Exception의 종류는 두 종류로 나뉜다, Checked Exception - 컴파일 타임에 체크, Unchecked Exception - RuntimeException 를 상속받아서 런타임에 체크 사용자 정의 Exception // 사용자 정의 Exception 클래스 public class CustomException extends Exception { public CustomeException(String message) { super(message); } } 예외 객체를 이렇게 만들어주고 Exception 실행부 public class MainExc..

    Comparable, Comparator를 이용한 객체간 크기 비교

    오늘은 객체 간 비교를 위한 인터페이스를 살펴보도록 하겠다. Comparable CompareTo() 재정의 이것은 같은 객체끼리 비교하는 것을 의미한다. 특히 기본 객체 자료형들은 이것을 상속받아 구현하였으며, 우리가 아는 Number를 상속받은 객체자료형은 값의 크고 작음을 비교하고, String의 경우 사전적 비교를 한다. 객체 내부에 명확한 값이 있어서 비교를 할 땐 이 인터페이스를 구현한다. public class ComparableMain { public static void main(String[] args){ System.out.println(new String("b").compareTo("a")); // 1 } } Comparator compare() 재정의 이것은 정렬규칙 그 자체를 의..

    Reflection 이란 ? JAVA Reflection, Reflect Class, RTTI

    오늘은 Reflection에 대해서 이야기 해보려고 한다. Reflection 개요 JVM에는 RTTI 시스템이 내장되어있다. RTTI란 RunTime Type Information의 줄임말인데, 실행시간에 타입의 정보를 알아내는 것이라고 볼 수 있다. 이는 자바에서 쉽게 사용할 수 있도록 클래스화 시켜놓기도 하였다. 보통 클래스를 통해 객체의 정보를 알아 낼 수 있는데, 클래스가 아닌 동적으로 메모리에 생성된 객체를 통해 클래스의 정보를 알아내는 것을 Reflection이라고 볼 수 있다. API문서를 보면 reflect 패키지 내부에 있는 클래스들이 있다. 위에 설명한 RTTI를 이용할 수 있게 만들어진 클래스들이며, 이 클래스는 생성한 객체의 인스턴스 타입, 메소드를 '동적'으로 접근하게 해주는 J..

    아파치(apache) 톰캣(Tomcat) 설정법(JSP, Servlet 사용 전)

    아파치(apache) 톰캣(Tomcat) 설정법(JSP, Servlet 사용 전)

    혹시 개인적으로 따로 세팅할 일이 생길까봐 포스팅을 하기로 마음 먹었다. 요새 자바 개발하느라 바빠서 블로그에 포스팅을 많이 못했는데 시간날 때 마다 한번씩 하기로 했다. 사전에 이클립스를 다운받았다는 가정 하에 아파치 톰캣 설치부터 진행한다. 일단 아파치 홈페이지에서 톰캣을 다운로드 받는다. 이클립스를 켜서 Window -> Show View -> Other 을 눌러준다. Other를 눌렀다면 여러 탭이 나올텐데, 아래로 내리면 Server 폴더가 있고 눌러보면 또 Server가 있다. Server를 눌러주면 된다. 나는 사전에 이미 아래쪽에 Servers 탭을 꺼내놨다. 아래에 Servers라는 탭이 보이기만 하면된다. 이 탭 꺼내려고 여태 3장이나 되는 사진을 게시했다. 저 파란글씨를 눌러서 새 서..