아래와 같이 두개의 LinkedHashMap 이 있다고 가정한다.LinkedHashMap aMap = { name=kildong, age=22, gender=female };LinkedHashMap bMap = { name=nara, age=25, gender=male }; (tip! 만약, mybatis를 이용해 db쿼리문에서 값을 받아와서 LinkedHashMap에 넣고자 한다면 오라클에선 nvl을 써서 null값도 다른값을 넣어서 다 갖고오는 방식으로 두 LinkedHashMap의 키의 갯수와 이름들은 반드시 맞춰줘야 함) 이제, 키의 갯수와 이름이 동일한 두개의 맵의 값을 비교해보자.ArrayList diffList = new ArrayList();Set aKeys = aMap.keySet();S..
xpath를 사용하면 원하는 태그의 value만 추출하기가 수월한데, 서칭결과 내 로컬에 있는 xml 파일들만으로 예제가 나와있었다.나의 경우는 외부 url에서 xml 파싱해와서 거기서 원하는 태그의 값만 뽑아오고 싶었던 상황. [전체흐름]외부 url xml 파싱 -> 파싱결과를 readLine을 통해 전체 xml을 String으로 형변환 -> 해당 String을 xpath를 통해 원하는 값만 추출 외부 url로 얻어온 xml홍길동20programmerfemale java import 경로 import javax.xml.xpath.XPath;import javax.xml.xpath.XPathConstants;import javax.xml.xpath.XPathFactory; java 코드URL obj = ..
이번 프로젝트 때, 해쉬맵에 (키, 값 : no, count) 구조로 넣어두었는데, 그 중 count가 제일 높은 숫자인 no를 뽑아와야됐었다. 맵 엔트리를 써서 가능했다. Map map = new HashMap(); //임의로 맵에 값 넣음 (No, count수)map.put(1,5);map.put(2,3);map.put(5,4); for (Map.Entry entry : map.entrySet()) { if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) {maxEntry = entry; //compareTo를 이용해 제일 높은 map값이 maxEntry에 저장됨 }} //이러면 maxEntry에 최대 count수를 ..
일단 내 환경은 Spring MVC 였고, restful한 url 사용, Mybatis, MySQL를 사용하는 환경이었다. 카페24에 db 연동(연결,접속)을 하려는데 자꾸 500 에러가 발생.catalina.out 을 열어서 로그를 확인해 보니 Access denied 에러 발생.구글을 다 뒤져보고, 카페24에 문의글도 남겼지만 결국 해결 못함. 나같은 사람이 또 있을까봐 남겨둔다.카페24 호스팅 db연동 AtoZ 매뉴얼 ** 카페 24 호스팅 후 DB (MySQL) 연결하는 법 1) 일단 내가 호스팅한 웹에 붙이고자 하는 DB를 통채로 Export하여 ~.sql 파일로 만들어둠(백업 --> 해당 방법의 자세한 내용은 MySQL export 하는법 찾아보면 됨). 2) 카페24의 '서비스 접속관리 > ..
제네릭스란?ArrayList arrList = new ArrayList(); 우리가 객체를 생성할 때,ArrayList arrList = new ArrayList(); 위와 같이 생성했었다. 그렇다면 제네릭스로 선언하는건 또 뭘까? 물론 기존 방식대로 객체를 사용해도 당장은 문제가 없다. 하지만 형 변환에서 문제가 생긴다. 제네릭스를 사용하지 않는다면,ArrayList arrList = new ArrayList(); //제네릭스를 생략하면 arrList는 Object형 객체로 생성 됨 arrList.add("Hi");arrList.add("World"); String hi = (String)arrList.get(0);String world = (String)arrList.get(1); 이런식으로 해당 값..
System 클래스의 스트림 멤버들 package java.lang; public class System{public static PrintStream out; //표준출력public static InputStream in; //표준입력public static PrintStream err; //표준에러출력//생략} System.out.println(""):System.in.read();System.err.println(""); 콘솔입력의 3단계InputStreamReader r = new InputStreamReader(System.in);BufferedReader b = new BufferedReader(r); String userInput = b.readLine(); System.out.println..
public class HelloWorld { public static void main(String args[]) {System.out.println("Hello, World!");}} 1. HelloWorld 라는 클래스 선언2. public static void main(String args[])1) public은 접근제어자, 외부 클래스에서 사용 가능하다는 의미.2) static은 객체 생성 전에 메모리가 생성되어 객체를 생성할 필요 없음.3) void는 리턴할 반환형이 없을때. (리턴 자료형이 없음).4) (String args[])는 main 함수의 매개변수로 String형 배열을 매개변수로 받음.5) main은 한번 실행되며, 가장먼저 실행됨. main메소드가 끝나면 프로그램도 종료됨. ma..
공통점추상클래스와 인터페이스 모두는 구현부가 없는(몸체가 없는) 메소드를 포함하는 것이다. 차이점추상클래스는몸체가 없는 추상메소드를 하나이상 포함하지만, 일반 메소드(몸체있는 메소드)들도 클래스 내부에 선언할 수 있다. 인터페이스는몸체가 없는 메소드들만 선언해둘 수 있다.(일반 메소드 선언하면 안됨) 추상클래스는해당 추상클래스를 상속받은 자식 클래스에서 추상 메소드를 전부 오버라이딩(재정의) 할 필요는 없고, 필요한 것만 할 수 있다. (이때 자식클래스에서 오버라이딩 안한 추상 메소드들은 그냥 추상 메소드로 남는다.)인터페이스는 해당 인터페이스를 implements한 모든 클래스들에게서 인터페이스 안에있는 모든 메소드들의 구현을 해야한다. 하나의 메소드라도 구현하는걸 빠뜨리게 되면 에러가 난다. 결론즉,..
public 과 private는 이전에 다루었다.그렇다면 protected란 정확히 무엇일까?? 상속에서, 부모클래스를 상속받은 자식클래스는, 부모클래스에 있는 모든 변수 및 메소드에 접근이 가능하지만 딱 하나!! 접근할 수 없는게 있다.바로 private 접근제어자가 붙은 변수와 메소드인데, private의 특성이 외부클래스에서 접근이 불가능하게 하는것이기 때문에 이해가 간다. 그럼 평소에는 private 접근제어자가 붙은것 처럼 사용되다가, 상속받은 자식 클래스에서 만큼은 public 처럼 동작하게 하고 싶을떄는 어떻게 할까? 답은 protected 이다. protected 접근제어자는 평소에는 private 처럼 변수나 메소드가 타 클래스에서 직접적으로 . 을 이용해 호출하는 것을 막지만, 자신을 ..
스태틱(변수 및 메소드)은 여러개의 객체를 만들었어도 메모리 공간이 딱 하나인 것을 의미한다 스태틱(변수 및 메소드) 호출방법은 2가지.1. 객체 생성(new로) 후 접근2. 객체 생성 전 접근 일반적인 변수나 메소드들은 객체생성 후 접근이 가능하다.그 말은 객체가 생성된 후에 변수의 메모리가 생긴다는 의미인데,스태틱은 특이하게도 객체 생성 전에도 접근이 가능하다. --> 결국 스태틱은 객체 생성 전에 메모리가 생긴다는 얘기가 된다. 하단의 예시를 보자public class StaticObj () { public static String staticVar = "스태틱변수 테스트";} 1.객체 생성 후 접근 -> 객체를 생성하여 해당 객체의 이름으로 StaticVar 변수에 접근하는 방법StaticObj ..