본문 바로가기
반응형

Language/Java42

unicode 문제 해결(\u003d 등) \u003d 의 문제 발생..;; 찾아보니 Gson으로 Json을 가지고 놀다가도 발생할 수 있으며, http로 가져와서 String에 담아줄 때도 발생할 수 있다. 1. http로 가져와서 String에 담았는데 유니코드가 박혀있을 때!jsonData = StringEscapeUtils.unescapeJava(jsonData);2. Gson을 사용했는데 유니코드가 박혀있을 때!// Gson gson = new Gson(); 말고 아래처럼 disableHtmlEscaping() 사용! Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String noEscapeStr = gson.toJson(queryCodeList).toString(); 다른.. 2015. 1. 12.
[문제] Java main함수에서 static 키워드가 없다면?? package kr.pe.acet; public class MainTest { // public static void main(String[] args) { public void main(String[] args) { // TODO Auto-generated method stub String test = "This is test!"; System.out.println(test); } } 위의 코드에서 main부분에 static 이 없다면?? 1) compile은 된다. run은 X 2) compile조차 안된다.(당근 run도 X) 3) compile은 안되나 run은 된다.당신의 선택은????답은 코멘트로!! ㅋㅋ - END - 2014. 7. 4.
Mac에서 Jdk8 설치 되는 장소! /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home AceTui-MacBook-Pro:~ AceT$ /usr/libexec/java_home -v 1.6/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home AceTui-MacBook-Pro:~ AceT$ /usr/libexec/java_home -v 1.8 /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home - END - 2014. 7. 2.
Version Interface [이미지 출처 - 웹툰 작가 꿀똥이] 인터페이스를 바꾸고 싶은데..바꿀 수 없는 경우에는 어떻게 해야할까?인터페이스에 어떤 연산을 추가하고 싶을 때가 바로 그런 경우다.새로운 인터페이스를 선언해서 기존 인터페이스를 확장(상속)한 후 새로운 연산을 추가할 수는 있다.반드시 다운캐스트해서 사용해야 한다는 점에 주의하자!출처 : 켄트 벡의 구현 패턴 중에서!내용을 바탕으로 코드로 구현해봄! ㅎㅎㅎ 2014. 6. 19.
[Java] JVM 메모리 구조 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.아래의 그 중 주요한 3가지 영역이다. [참고 : cv-클래스변수, lv - 지역변수, iv - 인스턴스 변수를 뜻함.]1) 메소드 영역 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이때 그 클래스의 클래스 변수(Class Variable)도 이 영역에 함께 생성 된다. 2) 힙(heap) 인스턴스가 생성되는 공간, 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다. 즉, 인스턴스 변수(Instance Variable).. 2014. 5. 15.
sort 관련(vo) 이번 포스팅은 sort 관련 입니다. 특히, vo sortting 하는 것을 한번 알아 보겠습니다. 우선 테스트로 vo를 만들어 List에 담고나서 제대로 담겼는지 size를 한번 재보도록 하겠습니다. [간단 테스트 소스 작성 시작!] @Test public void insertVo(){testList = new ArrayList();System.out.println("List Size(1) :"+testList.size());for(int i=0; i < 2; i++){testVo = new TestVo();if(i == 0){ testVo.setIndexKey("DSP001"); testVo.setSortStandard("330");}else{testVo.setIndexKey("DSP002");tes.. 2014. 3. 19.
단어 카운트 - 첫번째에 걸리는 것만.. 상황 : log 파일이 있다고 가정 해 보자. 내가 원하는 단어가 이 파일안에 전체 몇개가 있는지 또는 패턴으로 이루어진 로그 파일이기때문에 첫 단어별로 카운트를 셀 수 도 있을 것이다. 고로 여기에서 해보고자 하는 것은 로그 파일을 분석하기 위해 단어별로 카운트를 세어보려고 한다. [파일 내용 : 대충 어디서 긁어왔다..] 다운로드 : [org.mybatis.spring.SqlSessionUtils][ INFO] - Creating a new SqlSession[org.mybatis.spring.SqlSessionUtils][ INFO] - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4ccdd1f] was not registere.. 2014. 3. 19.
[Ace-T의 기초튼튼] for문 잘 알고 쓰자 [Ace-T의 기초튼튼] for문 잘 알고 쓰자 for문을 조금만 수정하면 좋은 성능을 낼 수가 있다. 간단하게 알아보도록 하자. 배열, List, Vector등등 for문안에서 size, length 등을 구하지 말고, 미리 구한 뒤에 for문 안에서 써먹으면 성능이 좋아짐을 알 수가 있다. package kr.pe.acet; public class ForTest { public long forCase01(){ int loopCnt = 10000000; Vector vc = new Vector(); for(int i=0; i > loopCnt; i++){ vc.add("P"+i); } Long startTime1=System.nanoTime(); for(int a=0; a < vc.size(); a++.. 2013. 12. 16.
java 정규표현식 - String의 숫자문자 검증 정규표현식..신입사원 첫 프로젝트에 나가 했던 작업이 다국어 문서(xml, text 등)를 파싱하여 수집데이터를 만드는 작업이였는데그 작업 중에 정규표현식을 썼던 기억이 난다. anyways~~~ 이번에는 String에서 4자리는 문자, 3자리는 숫자인지 확인하는 작업이다.아래 참고소스를 보면 java.util.regex.Pattern을 import한 뒤 Pattern.matches를 사용 하였다.그 안에는 ^ : 문자열의 시작을 알림[A-Z] : 대문자를 뜻함. [a-z]는 소문자{4} : 4자리 [0-9] : 숫자를 뜻함.{3} : 3자리 참 쉽죠잉? 참고소스(Junit)import static org.junit.Assert.*; import java.util.regex.Pattern; import .. 2013. 9. 12.
[Eclipse] comment 자동으로 생성하기 이클립스에서 코멘트를 단축기를 통해서 자동으로 남겨보자~!! [1] Window > Preferences [2] Java > Code Style > Code Templates [3] Types는 Class쪽 코멘트!! Edit를 통해 Pattern을 설정하면 된다. ex) Types -> Edit /** * @FileName : ${file_name} * @Project : ${project_name} * @Date : ${date} * @작성자 : ${user} * @변경이력 : * @프로그램 설명 : */ [4] Methods는 Method쪽 코멘트!! Edit를 통해 Pattern을 설정하면 된다. ex) Methods -> Edit /** * @Method Name : ${enclosing_met.. 2013. 8. 23.
replace / replaceFirst, Caused by: java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0 이런...내가 잘못 학습을 한건가... replace가 하나만 치환이 되어지는 것이고 replaceAll이 전부 치환 시키는 것으로 알고 있었다..-_-; 그런데..replace를 사용했을 경우 전부 치환이 되어지는 것이다..ㅠ_ㅠ... 그래서 혹시나 해서 봤더니...replaceFirst가 있네....OTL ?를 찾아서 내가 원하는 문자열로 치환하고 싶었다. 아래와 같이 오류가 발생했다. Caused by: java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0 바로..? 라는 특수문자는 그냥 사용 할 수가 없다. 소스는 아래와 같다. String nowParam = getParameterValueString();.. 2013. 8. 1.
번들 property 만들기 리소스번들쪽에서 쓰일 property 파일 만들기~ 뭐..별거 없다 ㅋㅋ; /** * encode - * @param * @return * @returnType * @author taeha.park * @version OSS R1.1 * @created 2013. 4. 29. 오전 10:28:58 * @updated */ @Test public void bundleTest() { String dir = "d:\\MessageResources_ko.properties"; String key = "ACET.E0000002"; String value = "{0}은(는) 필수{1}항목?is that right?."; String changeCode = ""; try { changeCode = encode(val.. 2013. 5. 10.
JMS란? JMS?? Java Message Service~!! 엔터프라이즈 기술에 대한 자바의 개념은 대폭 확대되어~~~ 1) JNDI(Java Naming and Directory Interface) : 디렉토리 서비스 2) JMX(Java Management Extensions) : 네트워크 컴퓨터 장치에 접근 3) JMS(Java Message Service) : 각기 다른 메시지 기반 미들웨어(Message Oriented Middleware) 제품에 접근하기 위함 등이 있으며 그 중 JMS에 대해서 알아보겠다. 자바 메시지 서비스는 엔터프라이즈 메시징 벤더가 유연하고 보편적이면서 세련된 프로그래밍 모델을 자바 애플리케이션에 제공할 수 있도록 지원하기 위해 마련 된 자바 api 이다. 엔터프라이즈 메시징 .. 2013. 1. 7.
MySQL+Apache Tomcat 6.0 JNDI Datasource How to 데이터소스를 설정 해주는 것은 많이 있다. 그 중에 톰캣을 가지고 데이터소스 연동하는 것을 해보겠다. Apache Tomcat 6.0 데이터베이스는 MySQL 이다. 참고 사이트 : http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html 필요사항 JDBC Driver Connector/J 3.0.11-stable (the official JDBC Driver) 다운을 받은 뒤에 Before you proceed, don't forget to copy the JDBC Driver's jar into $CATALINA_HOME/lib. 톰캣 홈쪽에 lib에 넣어준다. 뭐..그전에 MySQL과 Web어플리케이션이 있어야하겠다. 2.. 2012. 12. 12.
JNDI란 정확히 뭔데?? 2012/11/12 - [Language/Java] - [용어] JNDI JNDI...(Java Naming and Directory Interface) 이름만으로는 도저히..@_@;;; 뭐하는 건지 자세히는 모르겠다. 그냥 이름과 디렉토리로 어떻게 하는건가???? 라는 물음표만 남을뿐.. JNDI is a standard interface to naming and directory services for enterprise applications 음... 위의 영어로 된 내용도 너무 추상적이다--;;; 대충 엔터프라이즈 애플리케이션을 위한 네이밍과 디렉토리 서비스 표준 인터페이스이다..라고만 대충 알고 우선은 넘어가자!! Learn the concepts of naming services(네이밍 서비스.. 2012. 12. 12.
[용어] JNDI [참고 그림1] 1. 사전전 의미 JNDI (Java Naming and Directory Interface) JNDI는 자바 프로그램들을 DNS, LDAP 및 NDS 등과 같은 네이밍/디렉토리 서비스에 연결하기 위한 썬의 API이다. 애플리케이션은 JNDI API에 작성되어 있으며, 디렉토리 드라이버는 JNDI SPI (Service Provider Interface)에 작성되어 있다. JNDI는 썬의 J2EE 플랫폼의 일부이다. 2. JNDI 서비스의 종류 - LDAP(Lightweight Directory Access Protocol) : 네트워크 디렉토리 서비스의 표준인 x.500을 위한 경량화 프로토콜 - DNS(Domain Name System) : 인터넷 네이밍 시스템, 컴퓨터 이름(도메인).. 2012. 11. 12.
Failed to create the Java Virtual Machine 오류현상 자바 버추얼 머신! JVM의 path를 지정해주면 해결된다.^-^ eclipse.ini 파일을 열어서 아래의 내용을 추가해준다. -vm C:\Program Files\Java\jdk1.6.0_34\jre\bin - 끝 - 2012. 9. 7.
자바 보안 [1. 자바 보안] 2012.05.29 출처 : 해킹과 보안 (주)사이버출판사 - class loadiing : 실행시에 클래스를 동적으로 로드 - 코드 스푸핑(code spoofing) : class loading press를 가로채서 악성 클래스를 넣어 공격 함. - 보호 도메인(Protection Domains) : 현재 자바 보안 모델의 핵심, 도메인이란, 보안을 적용할 운영 환경의 한 부분을 나타낸다. 보호 도메인 내에서 실행되는 클래스들은 이들과 관련된 특수한 퍼미션을 가진다. 보안 도메인 제공 => 코드소스+퍼미션(보안정책) 클래스로더(코드 소스로부터 클래스들을 로드) -> 클래스 로더가 바이트 검증기 호출(검증 오퍼레이션 수행, 타입 검사, 스택 활용 검사, 클래스 파일 포맷 검사 등) 로.. 2012. 6. 4.
쓰레드(스윙사용) 아래는 소스이다~~!! 스윙+쓰레드를 이용~~ 참고 스크린샷 2012. 3. 9.
이클립스 팁 프로젝트 import 하기 음..파일만 import해봤었는데.. 프로젝트들을 import하는 기능이 있었네 ㅎㅎㅎ 초간단 tip..ㅎㅎㅎ Existing Projects into Workspace 로 하면 프로젝트를 import할수있다^^good~~ 2012. 2. 24.
[Study 01] Java 문자열 simple source 자바..기초반 supporter가 되었다;ㅁ; public class emartStudy07 { /** * @2012.01.30 Emart Team Study */ public static void main(String[] args) { // TODO Auto-generated method stub // 문자열 시작 ////////////////////// String str2=""; String path="C:\\dev\\workspace"; String str1 = new String("안녕하세요"); str2="문자열\"공부\" 시작!"; // 1) 문자열 결합 하기 System.out.println("============== 문자열 결합 start =================="); Syst.. 2012. 1. 30.
반응형