일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- reflection
- Proxy
- Keep-Alive
- http/1.1
- cookie
- Java
- unmodifiableList
- Session
- singleton
- Reference
- chunked
- clone
- getRequestURI
- Content-Length
- urlclassloader
- http
- toString
- object
- InvocationHandler
- Transfer-Encoding
- Today
- Total
목록JAVA (11)
pungjoo
0. 들어 가면서 꽤나 오래전부터 한글 깨짐에 대한 질문을 1년에 서너 차례 받곤 합니다. 한글이 깨져 보이는데 영향을 주는 요인으로는 'font'와 언어적인 'encoding type' 또는 'protocol'에 대한 이해 부족에서 비롯합니다. web page의 경우 x. code에 기술된 한글은 깨지지 않는 것 같으나 database에서 얻은 값은 깨지는 것 같다. x. code에 기술된 한글과 database에서 얻어 값은 잘 보이나 사용자가 입력한 값은 깨지는 것 같다. x. code에 기술된 한글은 깨지고 datatbase에 얻은 값은 깨지지 않는다 x. 등등... 1. 준비운동 우리는 한국 사람이고 한국어를 모국어 사용합니다. 해서 주변에 있는 분들과 대화를 할때 '자 이제 부터 내가 하는 말..
0. 들어가면서 통상 객체의 필드의 내용을 확인 하는 용도로 System.out.println( someClass.toString() ); 을 많이 이용합니다. 그러나 toString을 Override를 하지 않으면 'className@hashcode' 값이됩니다. 1. 준비 운동 package info.yeonwoo.edu; public class User { private Stringname; private intage; private Stringaddress; public String getName() { return name; } public void setName( String name ) { this.name = name; } public int getAge() { return age; } p..
0. 들어가면서 Collections class에는 unmodifiable류의 method가 존재합니다. 즉, 특정상황에 return되는 객체의 특정 method는 사용하지 못 하도록 강제하고 싶을 때 사용합니다. 1. 준비 운동 package info.yeonwoo.edu; import java.util.ArrayList; import java.util.List; public class WarmingUp { private static List getData() { ArrayList data = new ArrayList(); data.add("pungjoo"); data.add("siyeon"); data.add("siwoo"); return data; } public static void main(St..
0. 들어가면서 일반적으로 singleton에 대해 설명하는 글을 보면 JVM상에 유일하게 인스턴화된 객체라고 표현합니다. 그러나 이는 엄밀히 말하면 JVM상에 classloader에 따른 유일하게 인스턴화된 객체가 맞는 표현입니다. 주의 : 싱글 인스턴를 만드는 방법을 설명하는 글이 아닙니다. 1. 경험 tomcat기준으로 1개의 process(jvm)에는 기본적으로 1개의 context를 정의해 사용하나 여러개의 context를 등록해 uri path로 구분해 서비스할 수 있습니다. 이런 경우에 과연 각각 context마다 WEB-INF/classes에 놓여 있는 singleton class가 jvm하에서 유일할까요? 어쩌구 저쩌구 2. 프로젝트 만들기 ( 편의상 이클립스 사용 ) 다음과 같이 2개의..
0. 들어 가면서. 흔히들 유연성을 갖기 위해서 요즘은 interface를 작성하고 해당 interface를 implement한 본연의 class를 작성을 많이 합니다. 어쩌구 저저구 - 작성중... 1. 준비 운동 다음과 같은 Foo interface가 있을 경우 개발을 할 당시 초기화를 어떻게 할까? package info.yeonwoo.edu.proxy; public interface Foo { public void setName( String name ); public String getName(); public void setAddress( String address); public String getAddress(); } 일반적으로 다음과 같이 Foo interface를 상속해 class를 생..
들어가면서 Clone이란 무엇일까요? 단일세포 또는 개체로부터 무성적인 증식에 의하여 생긴 유전적으로 동일한 세포군 또는 개체군을 말한다.중요합니다. 유전적.. 뜻은 명확히 모르겠지만 어떤 형태적인 느낌이 듭니다.. Java에서 clone(복제)이 의미하는 것은 무엇일까요? Copy Vs Clone(Shadow Copy) 이런 저런 정보(객체/field)를 소유하고 있는 객체를 어느 시점에 세포 분열(clone)을 통해서 2개의 객체로 만들어 서로 다른 길을 걷게 할때 clone을 일반적으로 사용하려고들 합니다. 이때 조건은 2개로 분열된 객체가 소유하고 있는 정보(객체)에 대한 변경을 가했을때 다른 한 객체에게 영향을 주지 않아야 합니다. 만약 영향을 받을 것이라면 애초에 복제 할 필요가 없겠지요. (..
들어가면서 final의 용도는 큰 줄기에서는 '한번 정의된 레퍼런스를 변경 할 수 없다.'입니다. 이 final은 아래와 같이 3가지 case로 볼 수 있습니다. class 확장(extend) 및 mehotd override를 제한 package com.pungjoo.edu; final public class SomeClass { public static void main(String[] args) { new SomeClass(){ //-> A }; } } 위와 같이 final public( 또는 public final )으로 class를 선언하면 extend를 할 수 없게 됩니다. 즉, 해당 class에 대한 변경(?)을 허용하지 않습니다. 컴파일시에 'A' 라인에서 'cannot inherit fro..
들어 가면서 일반적으로 스프링을 쓰는 환경에서 VIEW PAGE인 JSP PAGE에서 request.getRequestURI()를 사용하면 원하는 URI를 얻지 못 합니다. 즉, 유입 URI를 돌려 주는 것이 아니라 controller에서 정의한 PAGE를 얻게 되어 결국에는 사용자가 입력한 실제 URI를 얻을 수 없게 됩니다. 그래서 일반적으로 controller에서 getRqeustURI()한 결과를 request.setAttribute(key, value)를 통해서 Value를 설정하고 VIEW PAGE인 JSP PAGE에서 getAttribute( key )를 사용합니다.. 정말 얻을 수 없을까? 자자... servlet spec을 정의하는 양반들이 바보였을까? Case 명세서 springfram..
인지 Failed to invoke last-modified method 발생하며 StackOverFlow 발생. 일반적인 해결 방안 @Override public long getLastModified(HttpServletRequest request) { return -1; } 왜 그럴까? get 위와 같이 get이라는 method로 설정하게되면 내부적으로 'Recurrsive'가 발생하게 되어 종국에는 'Failed to invoke last-modified method'라는 메시지 발생. 분석 우선 org/springframework/web/servlet/mvc/multiaction/MultiActionController.java의 registerLastModifiedMethodIfExists pri..
들어가면서 java는 call by value일까요? call by reference일 까요? 책이나 여타 문서를 보면 대부분 call by value라고 쓰여 있고 개중에는 반쪽짜리 call by reference라고 쓰여 있습니다. 어떤 책/문서에는 call by reference라고 쓰여 있기도 하고... 퀴즈 package com.pungjoo.edu; public class ReferenceVSvalue { private String message = null; private int data = 0; public ReferenceVSvalue(String message, int init) { this.message = message; this.data = init; } public static ..