본문 바로가기

개발/자바 Java36

[Java][기타 언어들] Instanceof 에 대해서 개요아... (이 멍청이... 멍청한 나...) 여태까지 instanceof 를 보면서 무슨 생각을 했는지 모르겠다. instance of 라는 말 그대로 영어이다. A instance of B 라는 말이니까... (정확히는 A is an instance of B) B 의 인스턴스 인 것이 맞나요? 라는 비교용 메서드 인 것이다. (왜 이렇게 단순히 생각하지 못했을까...) 인스턴스 란? 인스턴스는 보통 생성된 것을 의미하다. 메모리를 차지하는 것 이라고 볼 수 있고, 클래스로 만든 것 이라고 볼 수 있다. (클래스가 아니어도 무언가로 생성된 것 이라는 의미로 볼 수 있다) 클래스 A 가 있다면, A a = new A() // Java 류 var a:A = A() // Kotlin 류 와 같은 구문이 있.. 2019. 3. 13.
[Java] JAVA - JDK - JRE - Java EE - Java ME - Java SE - Java FX 1. * Java SE: 표준적으로 쓰이는 Java 버전이다. swing 등을 포함하고 있다. CUI, GUI 의 프로그래밍을 위한 언어이다. 여기에 몇가지 기능들이 더 추가되어 있다고 보면 된다. * Java EE (or J2EE): Java Enterprise Edition . 엔터프라이즈 에디션(=상용버전) 이다. Java SE 에서 서버와 연관된 기능들이 추가된 플랫폼이다. JSP, EJB, JNDI, JSTL, Servlet, JDBC 등이 포함된 플랫폼이다. * Java ME: Java Micro Edtion. (예전에는 Java Mobile Edition) 모바일 같은 장치 용이다. * Java FX (지금은 거의 쓰이지 않음): Rici 환경을 구성하기 위한 플랫폼이다. 스크립팅으로 구현하.. 2016. 6. 17.
[JAVA] Double Float 형의 오차 개요 그냥 /100 한 후에 * 100 을 한 것 뿐인데 오차가 생긴다. 본문 double doubleA = 3.4; doubleA = doubleA / 100 \* 100; System.out.println(doubleA); 이렇게만 하여도 값은. 3.4000000000000004 이런식으로 출력이 된다. 여태 몰랐는데... Float 는 어떨까 싶었다. https://stackoverflow.com/questions/3413448/double-vs-bigdecimal 해결 BigDecimal을 이용한다고 한다. // 나눗셈 BigDecimal bd1 = new BigDecimal("10"); BigDecimal bd2 = new BigDecimal("3"); String a = bd1.divide(b.. 2016. 6. 11.
[Java] (error) error : java.lang.UnsupportedClassVersionError error : java.lang.UnsupportedClassVersionError 이라는 에러가 발생했다. 400 에러 페이지 였나 여기서 이런 에러 내용이 출력이 되었다. 보아하니, 클라이언트에서 컴파일된 class 파일이 서버의 jdk 버전과 안 맞아서 발생하는 문제였다. 즉 개발상태의 이클립스에서는 최신버전의 jdk 를 쓰고 있었는데, 서버의 jdk 버전이 낮다보니 읽을 수 없다는.. 그런 내용인 듯 하다. 이클립스 에서 프로젝트 설정 중에 보면, [java compiler] 라는 항목이 있는데, 여기서 버전을 맞춰주면 된다. 2016. 6. 7.
[Java] webservlet annotation @WebServlet({"/CalculatorController",""})public class CalculatorController extends HttpServlet {...} 위와 같은 경우에 @WebServlet 이라는 annotation 이 생겼다. 프레임워크에만 있는 개념이라고 생각했는데, 그냥 이클립스 최신 버전에서 톰캣도 최신버전으로 깔고, 일반 웹어플리케이션 만드는 과정인데도 annotation 이 생겼다. 아마도 기본적으로도 사용이 되는 부분인 듯 하다. 이클립스에서는 [New] - [Servlet] 해서 만들게 되면 자동으로 annotation 이 생겨 있다. @WebServlet("/CalculatorController") 이런 형태로 생기게 되는 것인데, 주소를 하나만 사용할 것이.. 2016. 6. 7.
[자바 Java] XML 값가져오기 개요일시적으로 XML 에서 데이터를 읽어와서 DB 를 생성하기 위한 목적으로 만든 소스 입니다. 대충 이렇게 하니 되는구나 를 보시고, 좋은 소스들은 검색해보시기 바랍니다. 본문 작업환경 : Android Studio 2.1 JDK : 1.8.0_66 테스트일자: 2016-05-01 소스 출처 : 구글에서 막 검색해서 짜깁고 짜깁다가, 결국은 한줄한줄 테스트를 거치면서 완성한 소스. ㅠㅠ 퍼온 소스들은 미묘하게 잘 안 되어서...환경의 차이인가? xml 형태 예시 item 1 item 2 item 3 소스 예시 public void assignData(String uri){ try{ DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFacto.. 2016. 5. 1.
[Java] String 문제. StringBuffer, StringBuilder 등 Java 를 쓰다보면, StringBuffer 와 StringBuilder 등을 만나게 된다. 다른 OOP 언어를 써도 이런 경우가 발생할 수가 있다. StringBuffer 가 나은지, StringBuilder 가 나은지 를 떠나서. 왜 이런 경우가 발생하는지에 대해서 이야기를 해보고자 한다. 여기서 하는 말은 모두 추상적인 상상으로 기술하는 내용이다. 우리가 깊숙히 들어갈 필요는 없이 상상 만으로 짐작해 볼 수가 있다. 문자열 a = "가나다라마바사아자차카타파하" 라는 구문이 있다고 하자. 이 문자열은 길이가 명확하다. 14글자 이고, 이것은 byte 로 치환하면 일정한 바이트가 나올 것이다. 이것은 메모리에 넣어두기가 매우 유용하다. 짐작적으로 볼 때에, 이러한 고정된 문자열은 1) 클래스안에 같이.. 2016. 4. 29.
자바 와 서블릿 자바 언어는 Sun 사에서 나왔고, 현재 Sun 사는 Oracle 로 인수되었다. Oracle은 Oracle 데이터베이스를 구축하는 것을 주로 하는 회사 이다. (몇년전에 아이언맨 영화 보는 중에 Oracle 로고가 나와서 깜짝 놀랐던 기억이 난다. ㅎㄷㄷ 돈이 얼마나 남길래...) 자바는 일종의 C언어 처럼 프로그램을 만들 수 있는 언어이다. C언어 중 비쥬얼언어의 경우는 윈도우에서 동작한다고 보면 되는데. 자바의 경우는 JVM 이 설치되어있는 경우 동작하게 된다. JVM 은 자바 버츄얼 머신 인가... 가상 환경 이라고 생각하면 된다. 자바 언어가 일반적으로 구동되는 것이 아니고, JVM 이 구동이 되면서 그 위에서 동작한다. JDK 라고 하는 게 있는데 이것은 개발키트 를 말하는 것이고, java .. 2011. 7. 29.
rs.getDate 와 rs.getTimestamp() 의 차이 개발버젼에서 잘되던 것이 갑자기 서버에서 다르게 동작한다? 시분초까지 잘 가져오던 메소드가 서버에서는 날짜 까지만 가져와버리더군요. 원인을 찾아보니 rs.getDate 로 되어있던 부분이 오라클 버젼 혹은 JDBC 버젼에 따라서, rs.getTimestamp 로 써야 하는 경우가 있는 것 같습니다. 자세한 것은 좀더 테스트를 해본 후에 적어봐야할 것 같습니다 : ) 2011. 2. 17.
JAVA_변수 형 변환 Long -> String String s = Long.toString(val); Int -> String String s = Integer.toString(val); Float -> String String s = Float.toString(val); Integer -> int Integer val = 11; int month = val.intValue(); String -> int int i = Integer.parseInt("123"); String -> Integer Integer i = Integer.valueOf("123"); String -> Long long L = Long.parseLong("123"); 2011. 1. 31.